Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-4022

osgi:reference workaround for bundle startup problems in fabric profiles no longer works in Fuse 6.2

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • jboss-fuse-6.3
    • jboss-fuse-6.2
    • Karaf
    • None
    • % %
    • Hide

      1. Unpack, build, and deploy the project in attached example.zip
      2. Install Fuse 6.2
      3. fabric:create
      4. profile-import mvn:com.example/example-profile/1.0.0-SNAPSHOT/zip/profile
      5. container-create-child --profile mq-client-default --profile example-adapter.test --version 1.0 root example-child
      6. When child container has started, container-connect to it, and check using "camel:route-list" that the Camel route has started
      7. Stop the child container
      8. Start the child container
      9. Note that the Camel route no longer starts, and the child container log shows

      org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route example-route: Route(example-route)[[From[amq:queue:logging.event]] -> [pro... because of Failed to resolve endpoint: amq://queue:logging.event due to: No component found with scheme: amq
      

      10. container-remove-profile example-child example-adapter.test
      11. container-add-profile example-child example-adapter.test
      12. Note that the Camel route in the child container has now started

      Show
      1. Unpack, build, and deploy the project in attached example.zip 2. Install Fuse 6.2 3. fabric:create 4. profile-import mvn:com.example/example-profile/1.0.0-SNAPSHOT/zip/profile 5. container-create-child --profile mq-client-default --profile example-adapter.test --version 1.0 root example-child 6. When child container has started, container-connect to it, and check using "camel:route-list" that the Camel route has started 7. Stop the child container 8. Start the child container 9. Note that the Camel route no longer starts, and the child container log shows org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route example-route: Route(example-route)[[From[amq:queue:logging.event]] -> [pro... because of Failed to resolve endpoint: amq: //queue:logging.event due to: No component found with scheme: amq 10. container-remove-profile example-child example-adapter.test 11. container-add-profile example-child example-adapter.test 12. Note that the Camel route in the child container has now started
    • 6.3 Sprint 2 (1-Feb - 26-Feb)

    Description

      When a Camel route is specified using Spring XML, as part of a profile to be deployed in fabric, in the past it has proven necessary to add an <osgi:reference> definition to the Spring configuration, to ensure that application components do not start up before system ones (ActiveMQ, CXF). For ActiveMQ, for example, a typical formuation was:

      <osgi:reference id="amqcomp" interface="org.apache.camel.spi.ComponentResolver" filter="(component=amq)" cardinality="1..1"/>

      This formulation no longer works in Fuse 6.2, so applications fail to start more often than not. A workaround is to remove and re-add the application's profile to the container after it has started, but this is inconvenient.

      Attachments

        Issue Links

          Activity

            People

              rhn-support-rkieley Roderick Kieley
              rhn-support-kboone Kevin Boone
              Roman Jakubco Roman Jakubco (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: