[jboss-cvs] JBossAS SVN: r112128 - branches/JBPAPP_5_1_JBPAPP-6716/system-jmx/src/main/org/jboss/deployment.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 25 15:19:25 EDT 2011
Author: bmaxwell
Date: 2011-08-25 15:19:25 -0400 (Thu, 25 Aug 2011)
New Revision: 112128
Modified:
branches/JBPAPP_5_1_JBPAPP-6716/system-jmx/src/main/org/jboss/deployment/MainDeployer.java
Log:
[JBPAPP-6716] adding ManagementView and fixing listDeployed*
Modified: branches/JBPAPP_5_1_JBPAPP-6716/system-jmx/src/main/org/jboss/deployment/MainDeployer.java
===================================================================
--- branches/JBPAPP_5_1_JBPAPP-6716/system-jmx/src/main/org/jboss/deployment/MainDeployer.java 2011-08-25 16:24:17 UTC (rev 112127)
+++ branches/JBPAPP_5_1_JBPAPP-6716/system-jmx/src/main/org/jboss/deployment/MainDeployer.java 2011-08-25 19:19:25 UTC (rev 112128)
@@ -53,12 +53,15 @@
import org.jboss.bootstrap.spi.ServerConfig;
import org.jboss.deployers.client.spi.DeployerClient;
import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.spi.management.KnownDeploymentTypes;
+import org.jboss.deployers.spi.management.ManagementView;
import org.jboss.deployers.structure.spi.DeploymentContext;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.structure.spi.main.MainDeployerStructure;
import org.jboss.deployers.vfs.spi.client.VFSDeployment;
import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.managed.api.ManagedDeployment;
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.system.server.ServerConfigLocator;
import org.jboss.util.file.Files;
@@ -87,6 +90,7 @@
/** The controller */
private KernelController controller;
private DeployerClient delegate;
+ private ManagementView managementView;
private Map<URL, String> contextMap = Collections.synchronizedMap(new HashMap<URL, String>());
/** The deployment factory */
@@ -265,11 +269,13 @@
*/
public Collection listDeployed()
{
- synchronized (deploymentList)
- {
- log.debug("deployment list string: " + deploymentList);
- return new ArrayList(deploymentList);
- }
+// synchronized (deploymentList)
+// {
+// log.debug("deployment list string: " + deploymentList);
+// return new ArrayList(deploymentList);
+// }
+
+ return getDeployed();
}
/**
@@ -310,7 +316,15 @@
*/
public String listDeployedAsString()
{
- return "<pre>" + listDeployed() + "</pre>";
+ try
+ {
+ return "<pre>" + listDeployed() + "</pre>";
+ }
+ catch(Exception e)
+ {
+ // return exception ?
+ return "<pre>" + e.toString() + "</pre>";
+ }
}
/**
@@ -1492,4 +1506,88 @@
}
return sdi;
}
+
+ // Helper Methods for JBPAPP-6716 - we are calling the KernelController because if we had used injection we would need to change the MBean interface,
+ // which could cause backwards compatibilty issues for customers who are utilizing the current EAP 5.x MainDeployerMBean interface
+ private ManagementView getManagementView()
+ {
+ if(managementView == null)
+ managementView = (ManagementView) controller.getInstalledContext("ManagementView").getTarget();
+
+ return managementView;
+ }
+
+ private Collection getDeployed() throws RuntimeException
+ {
+ try
+ {
+ List<ManagedDeployment> managedDeployments = getAllDeployments();
+ List<DeploymentInfo> deploymentInfos = new ArrayList<DeploymentInfo>(managedDeployments.size());
+
+ // convert from ManagedDeployment object to DeploymentInfo object
+ for(ManagedDeployment md : managedDeployments)
+ {
+ try
+ {
+ DeploymentInfo di = new DeploymentInfo(new URL(md.getName()), null, null);
+ di.state = org.jboss.deployment.DeploymentState.getDeploymentState(md.getDeploymentState().toString());
+ deploymentInfos.add(di);
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ return deploymentInfos;
+ }
+ catch(Exception e)
+ {
+ log.error("Error getting deployments from ManagementView", e);
+ throw new RuntimeException(e);
+ }
+ }
+
+ private List<ManagedDeployment> getAllDeployments() throws Exception
+ {
+ getManagementView().reload();
+ List<ManagedDeployment> managedDeployments = new LinkedList<ManagedDeployment>();
+
+ for (KnownDeploymentTypes type : KnownDeploymentTypes.values())
+ {
+ log.debug("type: " + type.getType());
+ Set<ManagedDeployment> deployments = getManagementView().getDeploymentsForType(type.getType());
+ managedDeployments.addAll(deployments);
+ }
+
+ return managedDeployments;
+ }
+
+ private boolean isDeployed(String url, DeploymentState state) throws Exception
+ {
+ String simple_name = getFilenameFromURL(url);
+
+ List<ManagedDeployment> managedDeployments = getAllDeployments();
+
+ for(ManagedDeployment deployment : managedDeployments)
+ {
+ log.debug("SimpleName: "+deployment.getSimpleName());
+ log.debug("\tState: "+deployment.getDeploymentState());
+ if( simple_name.equals(deployment.getSimpleName()) )
+ {
+// return deployment.getDeploymentState().toString().equals("STARTED");
+ if(state == null)
+ return true;
+ else
+ return deployment.getDeploymentState().toString().equals(state);
+ }
+ }
+ return false;
+ }
+
+ private String getFilenameFromURL( String url )
+ {
+ String[] split_url = url.split("/");
+
+ return split_url[split_url.length - 1];
+ }
}
More information about the jboss-cvs-commits
mailing list