Hi Valentin,
Thanks a lot for answer me...
Well, but actually I'm trying just to consuming the service
(embedderService, that is blueprint managed) that is exposed by another
bundle and it is already setup and running by the tycho-surefire-plugin.
In my test, that is instantiated by the same plugin, I'm trying to get a
reference to this service, using the blueprint annotations.
So, are you telling me that the test class must be instantiated by the
blueprint runtime before to be able to automatically get a reference to
another bundle service ?
if so, it makes sense not being working :)
cheers
Cristiano
On 14/06/11 08:05, Valentin Mahrwald wrote:
Hi Christiano,
if I understand correctly you are using Blueprint annotation (or xml) for your
test bundle !?
I haven't seen any one do that and I doubt that would work since the test class
would be instantiated by the test runtime and not the Blueprint runtime, so
they would live in the wrong container unless there is some bridging mechanism
you have defined yourself.
Usually, in an integration test people consume services provided by other
bundles, which often are blueprint managed, rather than having the test being
blueprint managed (although that would be nice :).
Does that makes sense for the symptoms you are seeing?
Regards,
Valentin
On 14 Jun 2011, at 11:15, Cristiano Gavião wrote:
Please, could someone, at least, tell me if I'm using the blueprint annotations
in the right way on my test class?
thanks
On 10/06/11 19:15, Cristiano Gavião wrote:
Hi guys,
I need a little help here.
I'm using Aries Blueprint on my Equinox project. Everything is running well
except my integration tests.
I'm using Tycho as building system and tycho-surefire-plugin to run the tests.
I can start the integration tests properly, Aries is being activated and the
beans and services is being created properly.
18:43:53.459 [Blueprint Extender: 1] DEBUG o.a.a.b.c.BlueprintContainerImpl -
Running blueprint container for bundle org.jbehave.osgi.equinox.commands in
state Create
18:43:53.748 [Blueprint Extender: 2] DEBUG o.a.a.b.c.BlueprintContainerImpl -
Running blueprint container for bundle org.jbehave.osgi.services in state
Created
But I can't make my test pass :(
this is the context.xml for one service:
<reference id="embedderService"
interface="org.jbehave.osgi.services.EmbedderService" />
<bean id="commandProviderImpl"
class="org.jbehave.osgi.equinox.commands.CoreCommandProvider">
<property name="embedderService" ref="embedderService" />
<property name="injectedBundleContext" ref="blueprintBundleContext" />
</bean>
<service id="commandService" ref="commandProviderImpl"
interface="org.eclipse.osgi.framework.console.CommandProvider">
</service>
And that is my test (I've tried configuration with xml and now with annotations
withou success):
@Bean(id="CoreCommandProviderTest")
public class CoreCommandProviderTest {
@Inject(ref="commandProviderImpl")
private CoreCommandProvider commandProvider;
@Test
public void ensureCommandServiceIsRegistered() {
// assert bundle is not null
Bundle bundle = FrameworkUtil.getBundle(CoreCommandProvider.class);
assertThat("CoreCommand bundle is not installed", bundle,
is(notNullValue()));
// asserts that test bundle is installed
assertThat("CoreCommand was not inject by Blueprint DI",
commandProvider,
is(notNullValue()));
} ....
what I'm doing wrong ?
thanks a lot
Cristiano