Camel
  1. Camel
  2. CAMEL-4543

Camel Blueprint support is limited/hardcoded to Aries

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.9.0
    • Fix Version/s: Future
    • Component/s: camel-blueprint, osgi
    • Labels:
      None
    • Environment:

      JBoss 7.0.2

    • Estimated Complexity:
      Unknown

      Description

      Camel Blueprint support is limited/hardcoded to Aries. This makes it impossible to use in JBoss 7 or with another blueprint implementation like Gemini.

      The following classes use various things from Aries.

      • BlueprintContainerRegistry
      • BlueprintPropertiesParser
      • CamelContextFactoryBean
      • CamelProxyFactoryBean
      • CamelNamespaceHandler

      Now obviously the last three are related to the custom namespace handler for Aries.

      It would be good if these were moved into their own module, something like camel-aries-namespace or the like.

      That people can choose to include if they would like to use the custom blueprint namespace handler in Aries. Otherwise the camel-blueprint module should be implementation agnostic and work on all blueprint containers. Not just Aries.

      
      10:18:58,656 ERROR [org.jboss.osgi.framework.internal.FrameworkEventsPlugin] (MSC service thread 1-3) Framework ERROR: org.osgi.framework.BundleException: Cannot resolve bundle resModule: [com.mm.routing.engine:1.0.0.SNAPSHOT]
      	at org.jboss.osgi.framework.internal.ResolverPlugin.resolve(ResolverPlugin.java:157) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
      	at org.jboss.osgi.framework.internal.AbstractBundleState.ensureResolved(AbstractBundleState.java:551) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
      	at org.jboss.osgi.framework.internal.HostBundleState.startInternal(HostBundleState.java:210) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
      	at org.jboss.osgi.framework.internal.AbstractBundleState.start(AbstractBundleState.java:494) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
      	at org.jboss.as.osgi.deployment.BundleStartTracker$1.processService(BundleStartTracker.java:144) [jboss-as-osgi-service-7.0.2.Final.jar:7.0.2.Final]
      	at org.jboss.as.osgi.deployment.BundleStartTracker$1.transition(BundleStartTracker.java:119) [jboss-as-osgi-service-7.0.2.Final.jar:7.0.2.Final]
      	at org.jboss.msc.service.ServiceControllerImpl.invokeListener(ServiceControllerImpl.java:1429) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
      	at org.jboss.msc.service.ServiceControllerImpl.access$2600(ServiceControllerImpl.java:49) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
      	at org.jboss.msc.service.ServiceControllerImpl$ListenerTask.run(ServiceControllerImpl.java:1952) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.7.0]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.7.0]
      	at java.lang.Thread.run(Thread.java:722) [:1.7.0] Caused by: org.jboss.osgi.resolver.XResolverException: Unable to resolve Module[com.mm.routing.engine:1.0.0.SNAPSHOT]: missing requirement [Module[com.mm.routing.engine:1.0.0.SNAPSHOT]] package; (package=org.apache.camel.blueprint) [caused by: Unable to resolve Module[org.apache.camel.camel-blueprint:2.9.0.SNAPSHOT]: missing requirement [Module[org.apache.camel.camel-blueprint:2.9.0.SNAPSHOT]] package; (&(package=org.apache.aries.blueprint)(version>=0.3.0)(!(version>=1.0.0)))]
      	at org.jboss.osgi.resolver.felix.FelixResolver.resolveInternal(FelixResolver.java:117) [jbosgi-resolver-felix-1.0.9.jar:1.0.9]
      	at org.jboss.osgi.resolver.spi.AbstractResolver.resolve(AbstractResolver.java:148) [jbosgi-resolver-spi-1.0.9.jar:1.0.9]
      	at org.jboss.osgi.framework.internal.ResolverPlugin.resolve(ResolverPlugin.java:155) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
      	... 11 more
      

        Activity

        Aaron Whiteside created issue -
        Aaron Whiteside made changes -
        Field Original Value New Value
        Description Camel Blueprint support is limited/hardcoded to Aries. This makes it impossible to use in JBoss 7 or with another blueprint implementation like Gemini.

        The following classes use various things from Aries.

        * BlueprintContainerRegistry
        * BlueprintPropertiesParser
        * CamelContextFactoryBean
        * CamelProxyFactoryBean
        * CamelNamespaceHandler

        Now obviously the last three are related to the custom namespace handler for Aries.

        It would be good if these were moved into their own module, something like camel-aries-namespace or the like.

        That people can choose to include if they would like to use the custom blueprint namespace handler in Aries. Otherwise the camel-blueprint module should be implementation agnostic and work on all blueprint containers. Not just Aries.
        Camel Blueprint support is limited/hardcoded to Aries. This makes it impossible to use in JBoss 7 or with another blueprint implementation like Gemini.

        The following classes use various things from Aries.

        * BlueprintContainerRegistry
        * BlueprintPropertiesParser
        * CamelContextFactoryBean
        * CamelProxyFactoryBean
        * CamelNamespaceHandler

        Now obviously the last three are related to the custom namespace handler for Aries.

        It would be good if these were moved into their own module, something like camel-aries-namespace or the like.

        That people can choose to include if they would like to use the custom blueprint namespace handler in Aries. Otherwise the camel-blueprint module should be implementation agnostic and work on all blueprint containers. Not just Aries.


        {code}

        10:18:58,656 ERROR [org.jboss.osgi.framework.internal.FrameworkEventsPlugin] (MSC service thread 1-3) Framework ERROR: org.osgi.framework.BundleException: Cannot resolve bundle resModule: [com.mm.routing.engine:1.0.0.SNAPSHOT]
        at org.jboss.osgi.framework.internal.ResolverPlugin.resolve(ResolverPlugin.java:157) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
        at org.jboss.osgi.framework.internal.AbstractBundleState.ensureResolved(AbstractBundleState.java:551) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
        at org.jboss.osgi.framework.internal.HostBundleState.startInternal(HostBundleState.java:210) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
        at org.jboss.osgi.framework.internal.AbstractBundleState.start(AbstractBundleState.java:494) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
        at org.jboss.as.osgi.deployment.BundleStartTracker$1.processService(BundleStartTracker.java:144) [jboss-as-osgi-service-7.0.2.Final.jar:7.0.2.Final]
        at org.jboss.as.osgi.deployment.BundleStartTracker$1.transition(BundleStartTracker.java:119) [jboss-as-osgi-service-7.0.2.Final.jar:7.0.2.Final]
        at org.jboss.msc.service.ServiceControllerImpl.invokeListener(ServiceControllerImpl.java:1429) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
        at org.jboss.msc.service.ServiceControllerImpl.access$2600(ServiceControllerImpl.java:49) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
        at org.jboss.msc.service.ServiceControllerImpl$ListenerTask.run(ServiceControllerImpl.java:1952) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.7.0]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.7.0]
        at java.lang.Thread.run(Thread.java:722) [:1.7.0] Caused by: org.jboss.osgi.resolver.XResolverException: Unable to resolve Module[com.mm.routing.engine:1.0.0.SNAPSHOT]: missing requirement [Module[com.mm.routing.engine:1.0.0.SNAPSHOT]] package; (package=org.apache.camel.blueprint) [caused by: Unable to resolve Module[org.apache.camel.camel-blueprint:2.9.0.SNAPSHOT]: missing requirement [Module[org.apache.camel.camel-blueprint:2.9.0.SNAPSHOT]] package; (&(package=org.apache.aries.blueprint)(version>=0.3.0)(!(version>=1.0.0)))]
        at org.jboss.osgi.resolver.felix.FelixResolver.resolveInternal(FelixResolver.java:117) [jbosgi-resolver-felix-1.0.9.jar:1.0.9]
        at org.jboss.osgi.resolver.spi.AbstractResolver.resolve(AbstractResolver.java:148) [jbosgi-resolver-spi-1.0.9.jar:1.0.9]
        at org.jboss.osgi.framework.internal.ResolverPlugin.resolve(ResolverPlugin.java:155) [jbosgi-framework-core-1.0.0.CR8.jar:1.0.0.CR8]
        ... 11 more
        {code}
        Aaron Whiteside made changes -
        Component/s camel-blueprint [ 12313973 ]
        Hide
        Aaron Whiteside added a comment -

        First Patch to remove Aries dependency from BlueprintContainerRegistry

        Show
        Aaron Whiteside added a comment - First Patch to remove Aries dependency from BlueprintContainerRegistry
        Aaron Whiteside made changes -
        Attachment BlueprintContainerRegistry.patch [ 12499047 ]
        Hide
        Aaron Whiteside added a comment -

        Patch that creates a new module called camel-aries-blueprint-support and moves all aries specific stuff into that.

        camel-blueprint no longer depends on any Aries classes.

        Tested camel-blueprint on JBoss 7.0.2 and works wonderfully.

        Haven't been able to test the new camel-aries-blueprint-support jar yet, as I haven't setup ServiceMix or the like..

        Show
        Aaron Whiteside added a comment - Patch that creates a new module called camel-aries-blueprint-support and moves all aries specific stuff into that. camel-blueprint no longer depends on any Aries classes. Tested camel-blueprint on JBoss 7.0.2 and works wonderfully. Haven't been able to test the new camel-aries-blueprint-support jar yet, as I haven't setup ServiceMix or the like..
        Aaron Whiteside made changes -
        Aaron Whiteside made changes -
        Issue Type Bug [ 1 ] Improvement [ 4 ]
        Hadrian Zbarcea made changes -
        Assignee Hadrian Zbarcea [ hadrian ]
        Claus Ibsen made changes -
        Fix Version/s 2.10 [ 12317612 ]
        Fix Version/s Future [ 12315692 ]
        Priority Blocker [ 1 ] Major [ 3 ]
        Claus Ibsen made changes -
        Fix Version/s 2.10.0 [ 12317612 ]
        Hide
        Aaron Whiteside added a comment -

        Bump, any progress on this? Currently we are having to repack the camel-blueprint jar to strip out the Aries specific classes/imports.

        Show
        Aaron Whiteside added a comment - Bump, any progress on this? Currently we are having to repack the camel-blueprint jar to strip out the Aries specific classes/imports.
        Hide
        Aaron Whiteside added a comment - - edited

        Just upgraded to the latest Camel release 2.10.3 and found that Aries specific class usage is more prolific than before.

        The following classes reference Aries.

        • BlueprintCamelContextLookupHelper
        • BlueprintPropertiesParser
        • CamelContextFactoryBean
        • CamelProxyFactoryBean

        Also noticed that it looks like the contents of camel-core-osgi have been included in the camel-blueprint jar.

        Show
        Aaron Whiteside added a comment - - edited Just upgraded to the latest Camel release 2.10.3 and found that Aries specific class usage is more prolific than before. The following classes reference Aries. BlueprintCamelContextLookupHelper BlueprintPropertiesParser CamelContextFactoryBean CamelProxyFactoryBean Also noticed that it looks like the contents of camel-core-osgi have been included in the camel-blueprint jar.
        Hide
        Tom De Wolf added a comment -

        Can this issue be promoted to an earlier release because it seriously limits the use of camel in osgi projects?

        Show
        Tom De Wolf added a comment - Can this issue be promoted to an earlier release because it seriously limits the use of camel in osgi projects?

          People

          • Assignee:
            Hadrian Zbarcea
            Reporter:
            Aaron Whiteside
          • Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:

              Development