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

New CXF endpoints introduced by a container-upgrade are not visible in Fabric8 HTTP gateway without restarting it

XMLWordPrintable

    • % %
    • Hide

      1. Install Fuse 6.2.1 R4; fabric-create

      2. Create two versions of a profile "fred". One is empty, and the other
      specifies the "rest" quickstart (which exposes an endpoint at /cxf/crm)

      profile-create fred
      profile-create --version 1.1 --parent feature-cxf fred
      profile-edit --feature cxf-jaxrs fred 1.1
      profile-edit --feature swagger fred 1.1
      profile-edit --bundle mvn:io.fabric8.quickstarts/cxf-rest/1.2.0.redhat-621159 fred 1.1

      So now we have version 1.0 and 1.1 of "fred," the latter of which has some
      code added.

      3. Create an HTTP gateway

      container-create-child root gateway
      container-add-profile gateway gateway-http

      4. Create a container "fred1" with profile "fred" (in version 1.0)

      container-create-child --profile fred root fred1

      5. It is not expected at this time that the /cxf/rest endpoint is exposed
      via the gateway, because version 1.0 of the "fred" profile does not have
      this code applied. This can be confirmed by a request of host:9000.

      6. Upgrade the "fred1" container to bring in the "rest" application

      container-upgrade 1.1 fred1

      7. You can verify, if necessary, that the cxf-rest bundle is installed and
      active:

      JBossFuse:admin@fred1> list -t 0 -l |grep quick
      [ 117] [Active ] [Created ] [ 80] mvn:io.fabric8.quickstarts/cxf-rest/1.2.0.redhat-621159

      8. Make a request on host:9000. Note that the /cxf/crm endpoint is still
      not visible.

      9. Restart the gateway container. Note that /cxf/crm is now visible.

      Show
      1. Install Fuse 6.2.1 R4; fabric-create 2. Create two versions of a profile "fred". One is empty, and the other specifies the "rest" quickstart (which exposes an endpoint at /cxf/crm) profile-create fred profile-create --version 1.1 --parent feature-cxf fred profile-edit --feature cxf-jaxrs fred 1.1 profile-edit --feature swagger fred 1.1 profile-edit --bundle mvn:io.fabric8.quickstarts/cxf-rest/1.2.0.redhat-621159 fred 1.1 So now we have version 1.0 and 1.1 of "fred," the latter of which has some code added. 3. Create an HTTP gateway container-create-child root gateway container-add-profile gateway gateway-http 4. Create a container "fred1" with profile "fred" (in version 1.0) container-create-child --profile fred root fred1 5. It is not expected at this time that the /cxf/rest endpoint is exposed via the gateway, because version 1.0 of the "fred" profile does not have this code applied. This can be confirmed by a request of host:9000. 6. Upgrade the "fred1" container to bring in the "rest" application container-upgrade 1.1 fred1 7. You can verify, if necessary, that the cxf-rest bundle is installed and active: JBossFuse:admin@fred1> list -t 0 -l |grep quick [ 117] [Active ] [Created ] [ 80] mvn:io.fabric8.quickstarts/cxf-rest/1.2.0.redhat-621159 8. Make a request on host:9000. Note that the /cxf/crm endpoint is still not visible. 9. Restart the gateway container. Note that /cxf/crm is now visible.

      When a container-upgrade operation introduces new CXF endpoints into a running container, the fabric HTTP gateway does not see these changes until it is restarted. For example, suppose that version 1.1 of some profile specifies some bundle that exposes a CXF endpoint, while version 1.0 does not. A container-upgrade from 1.0 to 1.1 does not make the new endpoint available until the gateway is restarted.

              pantinor@redhat.com Paolo Antinori
              rhn-support-kboone Kevin Boone
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: