You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Bradford Fisher <br...@bradfordfisher.com> on 2019/01/21 20:30:26 UTC

Blueprint: not ignoring already created

I'm trying to use a blueprint.xml to initialize my camel routes. From the Camel
Spring Documentation <http://camel.apache.org/spring.html> it looks like
the <package> tag is supposed to ignore any pre-existing route builders
created through the use of the <bean> tag. However, it looks like Camel is
still trying to initialize a new instance of the DirectTestEndpoint.

If I remove the <package> tag, leaving on the <contextScan> tag, everything
works as expected and the DirectTestEndpoint is created with the action.

Is behavior expected with OSGI Blueprint descriptors, or am I doing
something incorrectly?

Thanks in advance!

- Brad

######################################################################
# Example Blueprint
######################################################################

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <bean id="directEndpoint"
class="com.bradfordfisher.test.DirectTestEndpoint">
        <argument ref="action" />
    </bean>

    <bean id="action" class="com.bradfordfisher.test.TestAction" />

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <package>com.bradfordfisher.test</package>
        <contextScan />
        <restConfiguration component="undertow" port="8181" host="0.0.0.0"
/>
    </camelContext>

</blueprint>

######################################################################
# Example Error
######################################################################

Status: Failure

Blueprint

1/21/19 8:25 PM

Exception:

Unable to initialize bean .camelBlueprint.factory.camel-21

org.osgi.service.blueprint.container.ComponentDefinitionException: Unable
to initialize bean .camelBlueprint.factory.camel-21

at
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:593)

at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:703)

at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:666)

at
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90)

at
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360)

at
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:338)

at
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:152)

at
org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:788)

at
org.apache.camel.blueprint.handler.CamelNamespaceHandler$CamelDependenciesFinder.process(CamelNamespaceHandler.java:988)

at
org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:552)

at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:397)

at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:278)

at
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:299)

at
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:268)

at
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:264)

at
org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:254)

at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)

at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)

at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)

at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)

at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)

at
org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)

at
org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)

at
org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)

at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579)

at org.apache.felix.framework.Felix.startBundle(Felix.java:2174)

at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)

at org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:38)

at
org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:65)

at
org.apache.karaf.bundle.command.BundlesCommand.execute(BundlesCommand.java:55)

at
org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84)

at
org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68)

at
org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86)

at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599)

at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526)

at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415)

at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416)

at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229)

at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.camel.RuntimeCamelException:
java.lang.InstantiationException: com.bradfordfisher.test.DirectTestEndpoint

at org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:1736)

at
org.apache.camel.util.ReflectionInjector.newInstance(ReflectionInjector.java:32)

at
org.apache.camel.impl.DefaultInjector.newInstance(DefaultInjector.java:45)

at
org.apache.camel.blueprint.PackageScanRouteBuilderFinder.instantiateBuilder(PackageScanRouteBuilderFinder.java:110)

at
org.apache.camel.blueprint.PackageScanRouteBuilderFinder.appendBuilders(PackageScanRouteBuilderFinder.java:72)

at
org.apache.camel.blueprint.CamelContextFactoryBean.findRouteBuildersByPackageScan(CamelContextFactoryBean.java:325)

at
org.apache.camel.core.xml.AbstractCamelContextFactoryBean.findRouteBuilders(AbstractCamelContextFactoryBean.java:1126)

at
org.apache.camel.core.xml.AbstractCamelContextFactoryBean.setupRoutes(AbstractCamelContextFactoryBean.java:489)

at
org.apache.camel.blueprint.CamelContextFactoryBean.afterPropertiesSet(CamelContextFactoryBean.java:355)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at
org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:331)

at
org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:838)

at
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:591)

... 44 more

Caused by: java.lang.InstantiationException:
com.bradfordfisher.test.DirectTestEndpoint

at java.lang.Class.newInstance(Class.java:427)

at org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:1734)

... 59 more

Caused by: java.lang.NoSuchMethodException:
com.bradfordfisher.test.DirectTestEndpoint.<init>()

at java.lang.Class.getConstructor0(Class.java:3082)

at java.lang.Class.newInstance(Class.java:412)

... 60 more