[jboss-cvs] JBossAS SVN: r100129 - in trunk/management/src/main/java/org/jboss/management/j2ee: deployers and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jan 29 11:03:54 EST 2010
Author: thomas.diesler at jboss.com
Date: 2010-01-29 11:03:53 -0500 (Fri, 29 Jan 2010)
New Revision: 100129
Modified:
trunk/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java
trunk/management/src/main/java/org/jboss/management/j2ee/WebModule.java
trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java
trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java
trunk/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java
trunk/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java
Log:
Prevent NPEs when J2EEServer MBean is not registered
Modified: trunk/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java
===================================================================
--- trunk/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java 2010-01-29 15:51:31 UTC (rev 100128)
+++ trunk/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java 2010-01-29 16:03:53 UTC (rev 100129)
@@ -62,6 +62,10 @@
ObjectName jsr77Name = null;
ObjectName j2eeServerName = J2EEDomain.getDomainServerName(mbeanServer);
+ // Cannot create the module if the J2EEServer MBean is not registered
+ if (j2eeServerName == null)
+ return null;
+
// First get the deployement descriptor
if (url != null && url.getFile().endsWith(".xml"))
{
Modified: trunk/management/src/main/java/org/jboss/management/j2ee/WebModule.java
===================================================================
--- trunk/management/src/main/java/org/jboss/management/j2ee/WebModule.java 2010-01-29 15:51:31 UTC (rev 100128)
+++ trunk/management/src/main/java/org/jboss/management/j2ee/WebModule.java 2010-01-29 16:03:53 UTC (rev 100129)
@@ -42,12 +42,10 @@
* @author <a href="mailto:thomas.diesler at jboss.org">Thomas Diesler</a>
* @version $Revision$
*/
-public class WebModule extends J2EEModule
- implements WebModuleMBean
+public class WebModule extends J2EEModule implements WebModuleMBean
{
- private static final String[] eventTypes = {NotificationConstants.OBJECT_CREATED,
- NotificationConstants.OBJECT_DELETED};
+ private static final String[] eventTypes = { NotificationConstants.OBJECT_CREATED, NotificationConstants.OBJECT_DELETED };
// Attributes ----------------------------------------------------
private static Logger log = Logger.getLogger(WebModule.class);
@@ -76,26 +74,25 @@
* @param pURL URL path to the local deployment of the module (where to find the DD file)
* @param webContainerName the JBoss web container mbean name
*/
- public static ObjectName create(MBeanServer mbeanServer,
- String earName,
- String warName,
- URL pURL,
- ObjectName webContainerName)
+ public static ObjectName create(MBeanServer mbeanServer, String earName, String warName, URL pURL, ObjectName webContainerName)
{
String webXml = null;
String jbossWebXml = null;
ObjectName jsr77ParentName = null;
ObjectName lCreated = null;
ObjectName j2eeServerName = J2EEDomain.getDomainServerName(mbeanServer);
+
+ // Cannot create the module if the J2EEServer MBean is not registered
+ if (j2eeServerName == null)
+ return null;
+
ObjectName jsr77Name = null;
try
{
// Get the J2EEServer name
Hashtable props = j2eeServerName.getKeyPropertyList();
- String j2eeServer = props.get(J2EEManagedObject.TYPE) + "=" +
- props.get("name");
+ String j2eeServer = props.get(J2EEManagedObject.TYPE) + "=" + props.get("name");
-
if (earName == null)
{
// If there is no ear use the J2EEServer as the parent
@@ -104,31 +101,25 @@
else
{
// Query for the J2EEApplication matching earName
- ObjectName lApplicationQuery = new ObjectName(J2EEDomain.getDomainName() + ":" +
- J2EEManagedObject.TYPE + "=" + J2EETypeConstants.J2EEApplication + "," +
- "name=" + earName + "," +
- j2eeServer + "," +
- "*");
+ ObjectName lApplicationQuery = new ObjectName(J2EEDomain.getDomainName() + ":" + J2EEManagedObject.TYPE + "=" + J2EETypeConstants.J2EEApplication + ","
+ + "name=" + earName + "," + j2eeServer + "," + "*");
Set lApplications = mbeanServer.queryNames(lApplicationQuery, null);
if (lApplications.isEmpty())
{
- lCreated = J2EEApplication.create(mbeanServer,
- earName,
- null);
+ lCreated = J2EEApplication.create(mbeanServer, earName, null);
jsr77ParentName = lCreated;
} // end of if ()
else if (lApplications.size() == 1)
{
- jsr77ParentName = (ObjectName) lApplications.iterator().next();
+ jsr77ParentName = (ObjectName)lApplications.iterator().next();
} // end of if ()
}
// Get the J2EE deployement descriptor
webXml = J2EEDeployedObject.getDeploymentDescriptor(pURL, J2EEDeployedObject.WEB);
// Get the JBoss Web deployement descriptor
- jbossWebXml = J2EEDeployedObject.getDeploymentDescriptor(pURL,
- J2EEDeployedObject.JBOSS_WEB);
+ jbossWebXml = J2EEDeployedObject.getDeploymentDescriptor(pURL, J2EEDeployedObject.JBOSS_WEB);
}
catch (Exception e)
{
@@ -139,11 +130,9 @@
try
{
// Get JVM of the j2eeServer
- String[] jvms = (String[]) mbeanServer.getAttribute(j2eeServerName,
- "javaVMs");
+ String[] jvms = (String[])mbeanServer.getAttribute(j2eeServerName, "javaVMs");
- WebModule webModule = new WebModule(warName, jsr77ParentName, jvms, webXml,
- webContainerName, jbossWebXml);
+ WebModule webModule = new WebModule(warName, jsr77ParentName, jvms, webXml, webContainerName, jbossWebXml);
jsr77Name = webModule.getObjectName();
mbeanServer.registerMBean(webModule, jsr77Name);
//remember if we created our parent, if we did we have to kill it on destroy.
@@ -173,7 +162,7 @@
{
mbeanServer.unregisterMBean(jsr77Name);
log.debug("Remove JSR-77 WebModule: " + jsr77Name);
- ObjectName jsr77ParentName = (ObjectName) fakeJ2EEApps.get(jsr77Name);
+ ObjectName jsr77ParentName = (ObjectName)fakeJ2EEApps.get(jsr77Name);
if (jsr77ParentName != null)
{
log.debug("Remove fake JSR-77 parent Application: " + jsr77ParentName);
@@ -198,10 +187,8 @@
* @param webContainerName the JBoss web container service name for the war
* @param jbossWebDD the jboss-web.xml descriptor text
*/
- public WebModule(String warName, ObjectName j2eeAppName, String[] jvms,
- String webDD, ObjectName webContainerName, String jbossWebDD)
- throws MalformedObjectNameException,
- InvalidParentException
+ public WebModule(String warName, ObjectName j2eeAppName, String[] jvms, String webDD, ObjectName webContainerName, String jbossWebDD)
+ throws MalformedObjectNameException, InvalidParentException
{
super(J2EETypeConstants.WebModule, warName, j2eeAppName, jvms, webDD);
this.jbossWebDD = (jbossWebDD == null ? "" : jbossWebDD);
@@ -228,7 +215,7 @@
{
if (pIndex >= 0 && pIndex < servletNames.size())
{
- return (String) servletNames.get(pIndex);
+ return (String)servletNames.get(pIndex);
}
else
{
@@ -249,8 +236,7 @@
public void addChild(ObjectName pChild)
{
String lType = J2EEManagedObject.getType(pChild);
- if (J2EETypeConstants.Servlet.equals(lType)
- )
+ if (J2EETypeConstants.Servlet.equals(lType))
{
servletNames.add(pChild.getCanonicalName());
}
@@ -296,10 +282,7 @@
public String toString()
{
- return "WebModule[ " + super.toString() +
- ", Servlets: " + servletNames +
- ", JBoss-Web-DD: " + jbossWebDD +
- " ]";
+ return "WebModule[ " + super.toString() + ", Servlets: " + servletNames + ", JBoss-Web-DD: " + jbossWebDD + " ]";
}
// Package protected ---------------------------------------------
@@ -314,8 +297,8 @@
{
Hashtable parentKeys = new Hashtable();
Hashtable parentProps = jsr77ParentName.getKeyPropertyList();
- String parentName = (String) parentProps.get("name");
- String j2eeType = (String) parentProps.get(J2EEManagedObject.TYPE);
+ String parentName = (String)parentProps.get("name");
+ String j2eeType = (String)parentProps.get(J2EEManagedObject.TYPE);
// Check if parent is a J2EEServer or J2EEApplication
if (j2eeType.equals(J2EETypeConstants.J2EEApplication) == false)
@@ -328,7 +311,7 @@
{
// J2EEApplication
parentKeys.put(J2EETypeConstants.J2EEApplication, parentName);
- String j2eeServerName = (String) parentProps.get(J2EETypeConstants.J2EEServer);
+ String j2eeServerName = (String)parentProps.get(J2EETypeConstants.J2EEServer);
parentKeys.put(J2EETypeConstants.J2EEServer, j2eeServerName);
}
@@ -340,4 +323,3 @@
// Inner classes -------------------------------------------------
}
-
Modified: trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java
===================================================================
--- trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java 2010-01-29 15:51:31 UTC (rev 100128)
+++ trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java 2010-01-29 16:03:53 UTC (rev 100129)
@@ -34,6 +34,8 @@
/**
* Abstract jsr77 deployer.
*
+ * [TODO] Add meaningful javadoc. What is this supposed to do?
+ *
* @param <T> exact input type
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
Modified: trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java
===================================================================
--- trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java 2010-01-29 15:51:31 UTC (rev 100128)
+++ trunk/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java 2010-01-29 16:03:53 UTC (rev 100129)
@@ -29,6 +29,8 @@
/**
* Abstract vfs jsr77 deployer.
*
+ * [TODO] Add meaningful javadoc. What is this supposed to do?
+ *
* @param <T> exact input type
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
Modified: trunk/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java
===================================================================
--- trunk/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java 2010-01-29 15:51:31 UTC (rev 100128)
+++ trunk/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java 2010-01-29 16:03:53 UTC (rev 100129)
@@ -35,6 +35,8 @@
/**
* Service module jsr77 deployer.
*
+ * [TODO] Add meaningful javadoc. What is this supposed to do?
+ *
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
public class ServiceModuleJSR77Deployer extends AbstractVFSJSR77Deployer<ServiceDeployment>
@@ -50,17 +52,17 @@
if (sarName != null)
{
log.debug("Created ServiceModule: " + sarName);
- }
- List<ServiceMetaData> beans = metaData.getServices();
- if (beans != null && beans.isEmpty() == false)
- {
- for (ServiceMetaData bean : beans)
+ List<ServiceMetaData> beans = metaData.getServices();
+ if (beans != null && beans.isEmpty() == false)
{
- ObjectName mbeanName = bean.getObjectName();
- // Create JSR-77 MBean
- MBean.create(server, sarName.toString(), mbeanName);
- log.debug("Create MBean, name: " + mbeanName + ", SAR Module: " + sarName);
+ for (ServiceMetaData bean : beans)
+ {
+ ObjectName mbeanName = bean.getObjectName();
+ // Create JSR-77 MBean
+ MBean.create(server, sarName.toString(), mbeanName);
+ log.debug("Create MBean, name: " + mbeanName + ", SAR Module: " + sarName);
+ }
}
}
}
@@ -71,7 +73,7 @@
if (beans != null && beans.isEmpty() == false)
{
ListIterator<ServiceMetaData> iter = beans.listIterator(beans.size());
- while(iter.hasPrevious())
+ while (iter.hasPrevious())
{
ObjectName name = iter.previous().getObjectName();
try
Modified: trunk/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java
===================================================================
--- trunk/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java 2010-01-29 15:51:31 UTC (rev 100128)
+++ trunk/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java 2010-01-29 16:03:53 UTC (rev 100129)
@@ -48,40 +48,43 @@
ObjectName webModuleService = extractRootObjectName(server, unit, metaData); // TODO
String earName = FactoryUtils.findEarParent(unit);
ObjectName jsr77Name = WebModule.create(server, earName, warName, unit.getRoot().toURL(), webModuleService);
- putObjectName(unit, WebModule.class.getName(), jsr77Name);
- Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
- for (ObjectName servletName : servlets)
+ if (jsr77Name != null)
{
- try
+ putObjectName(unit, WebModule.class.getName(), jsr77Name);
+ Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
+ for (ObjectName servletName : servlets)
{
- createServlet(server, unit, jsr77Name, servletName);
+ try
+ {
+ createServlet(server, unit, jsr77Name, servletName);
+ }
+ catch (Throwable e)
+ {
+ log.debug("Failed to create JSR-77 servlet: " + servletName, e);
+ }
}
- catch (Throwable e)
- {
- log.debug("Failed to create JSR-77 servlet: " + servletName, e);
- }
}
}
protected void undeployJsr77(MBeanServer server, VFSDeploymentUnit unit, JBossWebMetaData metaData)
{
ObjectName jsr77Name = removeObjectName(unit, WebModule.class.getName());
- log.debug("Destroy module: " + jsr77Name);
- Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
- for (ObjectName servletName : servlets)
+ if (jsr77Name != null)
{
- try
+ log.debug("Destroy module: " + jsr77Name);
+ Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
+ for (ObjectName servletName : servlets)
{
- destroyServlet(server, unit, servletName);
+ try
+ {
+ destroyServlet(server, unit, servletName);
+ }
+ catch (Throwable e)
+ {
+ log.debug("Failed to destroy JSR-77 servlet: " + servletName, e);
+ }
}
- catch (Throwable e)
- {
- log.debug("Failed to destroy JSR-77 servlet: " + servletName, e);
- }
- }
- if (jsr77Name != null)
- {
WebModule.destroy(server, jsr77Name);
}
}
More information about the jboss-cvs-commits
mailing list