[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