Author: gnodet
Date: Mon Oct 23 01:29:48 2006
New Revision: 466946
URL: http://svn.apache.org/viewvc?view=rev&rev=466946
Log:
Fix mbeans unregistration (endpoints and SAs) at server shutdown
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointRegistry.java
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyRegistry.java
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/servicedesc/ExternalEndpoint.java
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointRegistry.java?view=diff&rev=466946&r1=466945&r2=466946
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointRegistry.java
(original)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointRegistry.java
Mon Oct 23 01:29:48 2006
@@ -197,7 +197,7 @@
} else {
String key = getKey(serviceEndpoint);
internalEndpoints.remove(key);
- unregisterEndpoint(key);
+ unregisterEndpoint(serviceEndpoint);
}
fireEvent(serviceEndpoint,
EndpointEvent.INTERNAL_ENDPOINT_UNREGISTERED);
}
@@ -369,8 +369,8 @@
* @param externalEndpoint the external endpoint to be deregistered; must
be non-null.
*/
public void unregisterExternalEndpoint(ComponentNameSpace cns,
ServiceEndpoint externalEndpoint) {
- externalEndpoints.remove(getKey(externalEndpoint));
- unregisterEndpoint(getKey(externalEndpoint));
+ ExternalEndpoint ep = (ExternalEndpoint)
externalEndpoints.remove(getKey(externalEndpoint));
+ unregisterEndpoint(ep);
fireEvent(externalEndpoint,
EndpointEvent.EXTERNAL_ENDPOINT_UNREGISTERED);
}
@@ -498,8 +498,8 @@
* @param fromEp
*/
public void unregisterEndpointConnection(QName fromSvc, String fromEp) {
- unregisterEndpoint(getKey(fromSvc, fromEp));
LinkedEndpoint ep = (LinkedEndpoint)
linkedEndpoints.remove(getKey(fromSvc, fromEp));
+ unregisterEndpoint(ep);
fireEvent(ep, EndpointEvent.LINKED_ENDPOINT_UNREGISTERED);
}
@@ -529,25 +529,22 @@
}
private void registerEndpoint(AbstractServiceEndpoint serviceEndpoint) {
- String key = getKey(serviceEndpoint);
try {
Endpoint endpoint = new Endpoint(serviceEndpoint, registry);
ObjectName objectName =
registry.getContainer().getManagementContext().createObjectName(endpoint);
registry.getContainer().getManagementContext().registerMBean(objectName,
endpoint, EndpointMBean.class);
- endpointMBeans.put(key, endpoint);
+ endpointMBeans.put(serviceEndpoint, endpoint);
} catch (JMException e) {
logger.error("Could not register MBean for endpoint", e);
}
}
- private void unregisterEndpoint(String key) {
- Endpoint ep = (Endpoint) endpointMBeans.remove(key);
- if (ep != null) {
- try {
-
registry.getContainer().getManagementContext().unregisterMBean(ep);
- } catch (JBIException e) {
- logger.error("Could not unregister MBean for endpoint", e);
- }
+ private void unregisterEndpoint(AbstractServiceEndpoint se) {
+ Endpoint ep = (Endpoint) endpointMBeans.remove(se);
+ try {
+ registry.getContainer().getManagementContext().unregisterMBean(ep);
+ } catch (JBIException e) {
+ logger.error("Could not unregister MBean for endpoint", e);
}
}
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyRegistry.java?view=diff&rev=466946&r1=466945&r2=466946
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyRegistry.java
(original)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyRegistry.java
Mon Oct 23 01:29:48 2006
@@ -122,6 +122,12 @@
ServiceAssemblyLifeCycle salc = (ServiceAssemblyLifeCycle)
serviceAssemblies.remove(name);
if (salc != null) {
try {
+ ServiceUnitLifeCycle[] sus = salc.getDeployedSUs();
+ if (sus != null) {
+ for (int i = 0; i < sus.length; i++) {
+ registry.unregisterServiceUnit(sus[i].getKey());
+ }
+ }
registry.getContainer().getManagementContext().unregisterMBean(salc);
} catch (JBIException e) {
log.error("Unable to unregister MBean for service assembly",
e);
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/servicedesc/ExternalEndpoint.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/servicedesc/ExternalEndpoint.java?view=diff&rev=466946&r1=466945&r2=466946
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/servicedesc/ExternalEndpoint.java
(original)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-core/src/main/java/org/apache/servicemix/jbi/servicedesc/ExternalEndpoint.java
Mon Oct 23 01:29:48 2006
@@ -71,18 +71,4 @@
return se.getServiceName();
}
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return se.equals(obj);
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return se.hashCode();
- }
-
}