A Camel application for Fuse on Karaf uses Blueprint XML, and has unit tests based on
CamelBlueprintTestSupport. The Blueprint XML refers to services defined by interface and by class:
<reference id="foo" interface="org.test.classes.Foo" />
<reference id="bar" component-name="foobar" interface="org.test.classes.FooImpl" ext:proxy-method="classes">
Since the services referenced do not exist at test time, the test attempts to mock them, by overriding
addServicesOnStartup() and calling:
services.put (Foo.class.getName(), asService(new FooImpl(), null));
services.put (FooImpl.class.getName(), asService(new FooImpl(), null));
The first of these works, whilst the second does not – the test does not start because the service is not instantiated.
It is a characteristic of this problem that the Blueprint code does work correctly when the application is deployed on Karaf, despite the test failure.
- Red Hat Fuse
Other Fuse versions are probably affected
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.