ODE
  1. ODE
  2. ODE-568

Undeploying a process does not remove corresponding service from ODE axis2

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.3.2
    • Fix Version/s: 1.3.4
    • Component/s: Axis2 Integration
    • Labels:
      None

      Description

      Undeploying a process does not remove corresponding service from axis2
      You can see that webservice in Axis2 service list view.

      http://localhost:8080/ode/axis2-admin/listService
      It requires login. Default login details: admin/axis2

        Issue Links

          Activity

          Hide
          Alexis Midon added a comment -

          New Revision: 813508

          Show
          Alexis Midon added a comment - New Revision: 813508
          Hide
          Alexis Midon added a comment -

          The committed fix revealed an issue: now that org.apache.ode.bpel.iapi.BindingContext#deactivateMyRoleEndpoint uses the right key to deactivate an endpoint, it appears that the undeployment of a retired process deactivates the endpoint of the active version of the same process.

          org.apache.ode.bpel.engine.BpelProcess#deactivate must invoke BindingContext#deactivateMyRoleEndpoint only if the process is ACTIVE.

          Show
          Alexis Midon added a comment - The committed fix revealed an issue: now that org.apache.ode.bpel.iapi.BindingContext#deactivateMyRoleEndpoint uses the right key to deactivate an endpoint, it appears that the undeployment of a retired process deactivates the endpoint of the active version of the same process. org.apache.ode.bpel.engine.BpelProcess#deactivate must invoke BindingContext#deactivateMyRoleEndpoint only if the process is ACTIVE.
          Hide
          Alexis Midon added a comment -

          on the road to 1.3.1

          Show
          Alexis Midon added a comment - on the road to 1.3.1
          Hide
          Alexis Midon added a comment -

          committed in trunk r761436

          Show
          Alexis Midon added a comment - committed in trunk r761436
          Hide
          Alexis Midon added a comment -

          committed in 1.X: r761132

          Show
          Alexis Midon added a comment - committed in 1.X: r761132
          Hide
          Alexis Midon added a comment -

          It appears we don't need the unique name introduced by ODE-345 as the key of the service map.

          Actually, if a service is shared by multiple processes (i.e. <enableSharing/> set in deploy.xml), only one single instance of ODEService is created. [1]
          In other cases, the assumption that different processes hava different service name/port name is valid.

          So

          {service name, port name}

          is a valid key for the service map.

          [1] http://fisheye6.atlassian.com/browse/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?r=APACHE_ODE_1.X#l561

          Show
          Alexis Midon added a comment - It appears we don't need the unique name introduced by ODE-345 as the key of the service map. Actually, if a service is shared by multiple processes (i.e. <enableSharing/> set in deploy.xml), only one single instance of ODEService is created. [1] In other cases, the assumption that different processes hava different service name/port name is valid. So {service name, port name} is a valid key for the service map. [1] http://fisheye6.atlassian.com/browse/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?r=APACHE_ODE_1.X#l561
          Hide
          Alexis Midon added a comment -

          ODE-568 is introduced by ODE-345.

          ODEServer maintains a map of axis services. The key of this map used to be the process endpoint. However ODE-345 has changed the key: now the key is based on the endpoint and on the process conf.

          When a package is undeployed, ODEServer#destroyService (called by BindingContextImpl#deactivateMyRoleEndpoint(Endpoint)) receives only the process endpoint. Consequently no key is matched and the axis service is not removed.

          Show
          Alexis Midon added a comment - ODE-568 is introduced by ODE-345 . ODEServer maintains a map of axis services. The key of this map used to be the process endpoint. However ODE-345 has changed the key: now the key is based on the endpoint and on the process conf. When a package is undeployed, ODEServer#destroyService (called by BindingContextImpl#deactivateMyRoleEndpoint(Endpoint)) receives only the process endpoint. Consequently no key is matched and the axis service is not removed.

            People

            • Assignee:
              Alexis Midon
              Reporter:
              Alexis Midon
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development