|
It appears we don't need the unique name introduced by
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 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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ODE-568is introduced byODE-345.ODEServer maintains a map of axis services. The key of this map used to be the process endpoint. However
ODE-345has 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.