[jboss-cvs] JBossAS SVN: r62139 - branches/Branch_5_0/system/src/main/org/jboss/system/server/profileservice/hotdeploy.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 5 13:36:56 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-04-05 13:36:56 -0400 (Thu, 05 Apr 2007)
New Revision: 62139

Modified:
   branches/Branch_5_0/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java
Log:
Check for incomplete deployments after each scan

Modified: branches/Branch_5_0/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java
===================================================================
--- branches/Branch_5_0/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java	2007-04-05 16:50:45 UTC (rev 62138)
+++ branches/Branch_5_0/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java	2007-04-05 17:36:56 UTC (rev 62139)
@@ -29,8 +29,14 @@
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.IncompleteDeploymentException;
+import org.jboss.deployers.spi.IncompleteDeployments;
+import org.jboss.deployers.spi.IncompleteDeploymentsBuilder;
 import org.jboss.deployers.spi.deployment.MainDeployer;
 import org.jboss.deployers.spi.structure.DeploymentContext;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.logging.Logger;
 import org.jboss.profileservice.spi.ModificationInfo;
 import org.jboss.profileservice.spi.Profile;
@@ -58,6 +64,10 @@
    // Private Data --------------------------------------------------
    /** The MainDeployer used to deploy modifications */
    private MainDeployer mainDeployer;
+   private Kernel kernel;
+   /** The controller */
+   private KernelController controller;
+
    /** The ProfileService used to determine modified deployments */
    private ProfileService profileService;
 
@@ -86,6 +96,27 @@
       this.mainDeployer = deployer;
    }
 
+   public Kernel getKernel()
+   {
+      return kernel;
+   }
+
+   public void setKernel(Kernel kernel)
+   {
+      this.kernel = kernel;
+      this.controller = kernel.getController();
+   }
+
+   public KernelController getController()
+   {
+      return controller;
+   }
+
+   public void setController(KernelController controller)
+   {
+      this.controller = controller;
+   }
+
    public ProfileService getProfileService()
    {
       return profileService;
@@ -269,6 +300,7 @@
             {
                Thread.currentThread().setContextClassLoader(tcl);
                mainDeployer.process();
+               checkIncomplete();
             }
             finally
             {
@@ -299,6 +331,22 @@
 
    // Private -------------------------------------------------------
    /**
+    * Check whether we are incomplete
+    * TODO: this should be elsewhere 
+    * 
+    * @throws DeploymentException the deployment exception
+    */
+   protected void checkIncomplete() throws DeploymentException
+   {
+      if( controller == null )
+         return;
+
+      IncompleteDeployments incomplete = IncompleteDeploymentsBuilder.build(mainDeployer, controller);
+      if (incomplete.isIncomplete())
+         throw new IncompleteDeploymentException(incomplete);
+   }
+
+   /**
     * Current workaround for JBAS-4206
     */
    private ClassLoader getTCL(Profile activeProfile)




More information about the jboss-cvs-commits mailing list