You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ac...@apache.org on 2006/08/02 11:10:28 UTC
svn commit: r427935 - in
/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi:
framework/DeploymentService.java management/BaseSystemService.java
management/ManagementContext.java
Author: aco
Date: Wed Aug 2 02:10:28 2006
New Revision: 427935
URL: http://svn.apache.org/viewvc?rev=427935&view=rev
Log:
Fix for javax.management.InstanceNotFoundException when shutting down system services. refer to LBFUSE-283
- Added an unregisterSystemService to properly unregister SM system services.
Minor fixes.
- Remove unnecessary null checking in DeploymentService.java
- Called super.init in BaseSystemService.java to update the state of the bean
Modified:
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/DeploymentService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/DeploymentService.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/DeploymentService.java?rev=427935&r1=427934&r2=427935&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/DeploymentService.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/DeploymentService.java Wed Aug 2 02:10:28 2006
@@ -233,18 +233,18 @@
sa.shutDown();
} catch (Exception e) {
}
+
String result = null;
- if (sa != null) {
- String assemblyName = sa.getName();
- registry.unregisterServiceAssembly(assemblyName);
- ServiceUnitLifeCycle[] sus = sa.getDeployedSUs();
- if (sus != null) {
- for (int i = 0;i < sus.length; i++) {
- undeployServiceUnit(sus[i]);
- }
+ String assemblyName = sa.getName();
+ registry.unregisterServiceAssembly(assemblyName);
+ ServiceUnitLifeCycle[] sus = sa.getDeployedSUs();
+ if (sus != null) {
+ for (int i = 0;i < sus.length; i++) {
+ undeployServiceUnit(sus[i]);
}
- FileUtil.deleteFile(sa.getEnvironment().getRootDir());
}
+ FileUtil.deleteFile(sa.getEnvironment().getRootDir());
+
return result;
} catch (Exception e) {
log.info("Unable to undeploy assembly", e);
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java?rev=427935&r1=427934&r2=427935&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java Wed Aug 2 02:10:28 2006
@@ -50,13 +50,14 @@
public void init(JBIContainer container) throws JBIException {
this.container = container;
container.getManagementContext().registerSystemService(this, getServiceMBean());
+ super.init();
}
public void shutDown() throws JBIException {
stop();
super.shutDown();
if (container != null && container.getManagementContext() != null) {
- container.getManagementContext().unregisterMBean(this);
+ container.getManagementContext().unregisterSystemService(this);
}
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java?rev=427935&r1=427934&r2=427935&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java Wed Aug 2 02:10:28 2006
@@ -208,7 +208,7 @@
/**
* Lookup a JBI Installable Component by its unique name.
*
- * @param name - is the name of the BC or SE.
+ * @param componentName - is the name of the BC or SE.
* @return the JMX object name of the component's LifeCycle MBean or null.
*/
public ObjectName getComponentByName(String componentName) {
@@ -426,8 +426,7 @@
/**
* Create an ObjectName
- * @param domain
- *
+ * @param props
* @return the ObjectName
*/
public ObjectName createObjectName(Map props) {
@@ -562,6 +561,7 @@
*/
public void registerSystemService(BaseSystemService service, Class interfaceType) throws JBIException {
try {
+
String name = service.getName();
if (systemServices.containsKey(name)) {
throw new JBIException("A system service for the name " + name + " is already registered");
@@ -582,10 +582,28 @@
}
/**
+ * Unregister a System service
+ *
+ * @param service
+ * @throws JBIException
+ */
+ public void unregisterSystemService(BaseSystemService service) throws JBIException {
+ String name = service.getName();
+ if (!systemServices.containsKey(name)) {
+ throw new JBIException("A system service for the name " + name + " is not registered");
+ }
+ ObjectName objName = (ObjectName)systemServices.remove(name);
+ if (log.isDebugEnabled()) {
+ log.debug("Unregistering system service: " + objName);
+ }
+ unregisterMBean(objName);
+ }
+
+ /**
* Unregister an MBean
*
* @param name
- * @throws JMException
+ * @throws JBIException
*/
public void unregisterMBean(ObjectName name) throws JBIException {
try{
@@ -601,7 +619,7 @@
* Unregister an MBean
*
* @param bean
- * @throws JMException
+ * @throws JBIException
*/
public void unregisterMBean(Object bean) throws JBIException {
for (Iterator i = beanMap.entrySet().iterator();i.hasNext();) {
@@ -626,7 +644,7 @@
AttributeInfoHelper helper = new AttributeInfoHelper();
helper.addAttribute(getObjectToManage(), "bindingComponents", "Get list of all binding components");
helper.addAttribute(getObjectToManage(), "engineComponents", "Get list of all engine components");
- helper.addAttribute(getObjectToManage(), "pojoComponents", "Get list of all pojo components");
+ helper.addAttribute(getObjectToManage(), "pojoComponents", "Get list of all pojo components");
helper.addAttribute(getObjectToManage(), "systemInfo", "Return current version");
helper.addAttribute(getObjectToManage(), "systemServices", "Get list of system services");
return AttributeInfoHelper.join(super.getAttributeInfos(), helper.getAttributeInfos());