You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2019/10/29 05:28:00 UTC
[jira] [Resolved] (CAMEL-14099) Mocking OSGi Services failes using
classes
[ https://issues.apache.org/jira/browse/CAMEL-14099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-14099.
---------------------------------
Resolution: Won't Fix
> Mocking OSGi Services failes using classes
> ------------------------------------------
>
> Key: CAMEL-14099
> URL: https://issues.apache.org/jira/browse/CAMEL-14099
> Project: Camel
> Issue Type: Bug
> Components: camel-blueprint
> Affects Versions: 2.21.0
> Environment: Camel 2.21.0 on Karaf 4.2.0
> Reporter: Christian Eve
> Priority: Minor
> Labels: test
>
> Using Camel with OSGi Blueprint XML, mocking OSGi services in the test class extending CamelBlueprintTestSupport does not work under some speical circumstances.
> In the blueprint.xml, there is the following code:
> {code:java}
> <bean class=com.myexample.FooBar" id="foobar">
> <property name="foo" ref="foo" />
> </bean>
> <bean class="com.myexample.FooImpl" id="foo"/>
> <reference id="fooBarReference" component-name="foobar" interface="com.myexample.FooImpl" ext:proxy-method="classes" />
> {code}
> The execution on the Karaf server works fine.
> Mocking the service 'FooImpl' in the test class failes with
> _java.lang.RuntimeException: Gave up waiting for BlueprintContainer from bundle "FooTest" at com.myexample.test.FooTest.setUp(FooTest.java:49)_
> The mock setup is done this way:
> {code:java}
> protected void addServicesOnStartup(Map<String, KeyValueHolder<Object, Dictionary>> services) {
> FooImpl foo = Mockito.mock(FooImpl.class);
> services.put(FooImpl.class.getCanonicalName(), asService(foo, null));
> super.addServicesOnStartup(services);
> }
> {code}
> Using an interface as reference instead of a class, the mock works fine:
> blueprint.xml:
> {code:java}
> <reference id="foo" interface="com.myexample.FooInterface" />
> {code}
> Mock in test class:
> {code:java}
> protected void addServicesOnStartup(Map<String, KeyValueHolder<Object, Dictionary>> services) {
> FooInterface foo = Mockito.mock(FooImpl.class);
> services.put(FooInterface.class.getCanonicalName(), asService(foo, null));
> super.addServicesOnStartup(services);
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)