[jboss-cvs] JBossAS SVN: r62016 - trunk/system-jmx/src/main/org/jboss/deployment.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 3 01:56:09 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-04-03 01:56:08 -0400 (Tue, 03 Apr 2007)
New Revision: 62016
Modified:
trunk/system-jmx/src/main/org/jboss/deployment/MainDeployer.java
trunk/system-jmx/src/main/org/jboss/deployment/MainDeployerMBean.java
Log:
Add a check for incomplete deployments after a deploy call
Modified: trunk/system-jmx/src/main/org/jboss/deployment/MainDeployer.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/deployment/MainDeployer.java 2007-04-03 04:52:16 UTC (rev 62015)
+++ trunk/system-jmx/src/main/org/jboss/deployment/MainDeployer.java 2007-04-03 05:56:08 UTC (rev 62016)
@@ -36,7 +36,6 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -47,16 +46,17 @@
import java.util.jar.Attributes;
import java.util.jar.Manifest;
-import javax.management.JMException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.Notification;
import javax.management.ObjectName;
import org.jboss.deployers.plugins.structure.AbstractDeploymentContext;
+import org.jboss.deployers.spi.IncompleteDeploymentException;
+import org.jboss.deployers.spi.IncompleteDeployments;
+import org.jboss.deployers.spi.IncompleteDeploymentsBuilder;
import org.jboss.deployers.spi.structure.DeploymentContext;
-import org.jboss.mx.util.JMXExceptionDecoder;
-import org.jboss.system.ServiceContext;
+import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.system.server.ServerConfig;
import org.jboss.system.server.ServerConfigLocator;
@@ -81,6 +81,8 @@
public class MainDeployer extends ServiceMBeanSupport
implements Deployer, MainDeployerMBean
{
+ /** The controller */
+ private KernelController controller;
private org.jboss.deployers.spi.deployment.MainDeployer delegate;
private Map<URL, String> contextMap = Collections.synchronizedMap(new HashMap<URL, String>());
@@ -146,7 +148,17 @@
{
this.delegate = delegate;
}
-
+
+ public KernelController getController()
+ {
+ return controller;
+ }
+
+ public void setController(KernelController controller)
+ {
+ this.controller = controller;
+ }
+
/** Get the flag indicating whether directory content will be deployed
*
* @return the file copy flag
@@ -793,6 +805,7 @@
delegate.addDeploymentContext(deployment);
deploymentName = deployment.getName();
delegate.process();
+ checkIncomplete();
contextMap.put(url, deploymentName);
}
catch(Exception e)
@@ -1350,56 +1363,6 @@
*/
public void checkIncompleteDeployments() throws DeploymentException
{
- try
- {
- Collection waitingForClasses = new HashSet();
- Collection waitingForDepends = (Collection)server.invoke(serviceController,
- "listIncompletelyDeployed",
- new Object[] {},
- new String[] {});
- Collection allServices = (Collection) server.invoke(serviceController,
- "listDeployed",
- new Object[] {},
- new String[] {});
-
- // Weed services that are waiting for other deployments
- Collection rootCause = new HashSet(waitingForDepends);
- Collection missing = new HashSet();
- for (Iterator i = rootCause.iterator(); i.hasNext();)
- {
- ServiceContext ctx = (ServiceContext) i.next();
- for (Iterator j = ctx.iDependOn.iterator(); j.hasNext(); )
- {
- ServiceContext dependee = (ServiceContext) j.next();
- if (dependee.state != ServiceContext.RUNNING)
- {
- // Add missing mbean
- if (allServices.contains(dependee) == false)
- missing.add(dependee);
- // We are not a root cause
- i.remove();
- break;
- }
- }
- }
- // Add missing mbeans to the root cause
- rootCause.addAll(missing);
-
- IncompleteDeploymentException ide = new IncompleteDeploymentException(
- waitingForClasses,
- waitingForDepends,
- rootCause,
- listIncompletelyDeployed(),
- listWaitingForDeployer());
- if (!ide.isEmpty())
- {
- throw ide;
- } // end of if ()
- }
- catch (JMException jme)
- {
- throw new DeploymentException(JMXExceptionDecoder.decode(jme));
- } // end of try-catch
}
/**
@@ -1431,4 +1394,10 @@
return sdi;
}
+ private void checkIncomplete() throws IncompleteDeploymentException
+ {
+ IncompleteDeployments incomplete = IncompleteDeploymentsBuilder.build(delegate, controller);
+ if (incomplete.isIncomplete())
+ throw new IncompleteDeploymentException(incomplete);
+ }
}
Modified: trunk/system-jmx/src/main/org/jboss/deployment/MainDeployerMBean.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/deployment/MainDeployerMBean.java 2007-04-03 04:52:16 UTC (rev 62015)
+++ trunk/system-jmx/src/main/org/jboss/deployment/MainDeployerMBean.java 2007-04-03 05:56:08 UTC (rev 62016)
@@ -29,6 +29,7 @@
import javax.management.ObjectName;
import org.jboss.deployers.spi.structure.DeploymentContext;
+import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.mx.util.ObjectNameFactory;
import org.jboss.system.ServiceMBean;
@@ -48,6 +49,9 @@
/** set the kernel MainDeployer which will handle deployments */
public void setKernelMainDeployer(org.jboss.deployers.spi.deployment.MainDeployer delegate);
+ public KernelController getController();
+ public void setController(KernelController controller);
+
/** Flag indicating whether directory content will be deployed.
* The default value is taken from the jboss.deploy.localcopy system property. */
boolean getCopyFiles();
More information about the jboss-cvs-commits
mailing list