[jboss-cvs] JBossAS SVN: r72670 - trunk/ejb3/src/main/org/jboss/ejb3/deployers.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 24 07:14:25 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-04-24 07:14:25 -0400 (Thu, 24 Apr 2008)
New Revision: 72670

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3Deployer.java
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBoss5DeploymentScope.java
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASDepdencyPolicy.java
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASKernel.java
Log:
JBAS-5477, always create a DeploymentScope

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3Deployer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3Deployer.java	2008-04-24 11:03:29 UTC (rev 72669)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3Deployer.java	2008-04-24 11:14:25 UTC (rev 72670)
@@ -136,11 +136,11 @@
          log.debug("********* " + this.getClass().getSimpleName() + " Begin Unit: " + unit.getSimpleName() + " jar: "
                + jar.getName());
          JBoss5DeploymentScope scope = null;
-         VFSDeploymentUnit parent = unit.getParent();
+         VFSDeploymentUnit parent = unit.getTopLevel();
          boolean initScopeDeployment = false;
-         if (parent != null && parent.isAttachmentPresent(JBossAppMetaData.class))
+         if (parent != null)
          {
-            // An ear parent
+            // Check for an existing scope
             scope = (JBoss5DeploymentScope) parent.getAttachment(DeploymentScope.class);
             if (scope == null)
             {
@@ -155,6 +155,7 @@
                parent.addAttachment(DeploymentScope.class, scope);
             }
          }
+
          JBoss5DeploymentUnit du = new JBoss5DeploymentUnit(unit);
          du.setDefaultPersistenceProperties(defaultPersistenceProperties);
          Ejb3JBoss5Deployment deployment = new Ejb3JBoss5Deployment(du, kernel, mbeanServer, unit, scope, metaData, persistenceUnitsMetaData);

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java	2008-04-24 11:03:29 UTC (rev 72669)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java	2008-04-24 11:14:25 UTC (rev 72670)
@@ -48,7 +48,7 @@
    {
       super(ejb3Unit, deploymentScope, metaData, persistenceUnitsMetaData);
       this.jbossUnit = jbossUnit;
-      kernelAbstraction = new JBossASKernel(kernel);
+      kernelAbstraction = new JBossASKernel(kernel, mbeanServer);
 
       // todo maybe mbeanServer should be injected?
       this.mbeanServer = mbeanServer;

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBoss5DeploymentScope.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBoss5DeploymentScope.java	2008-04-24 11:03:29 UTC (rev 72669)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBoss5DeploymentScope.java	2008-04-24 11:14:25 UTC (rev 72670)
@@ -117,9 +117,15 @@
 
    public void register(Ejb3Deployment deployment)
    {
+      // Create the path name relative to the root
       String pathName = deployment.getDeploymentUnit().getRootFile().getPathName();
       if(pathName.startsWith(shortName))
-         pathName = pathName.substring(shortName.length()+1);
+      {
+         if(pathName.length() > shortName.length())
+            pathName = pathName.substring(shortName.length()+1);
+         else
+            pathName = "";
+      }
       deployments.put(pathName, deployment);
    }
 

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASDepdencyPolicy.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASDepdencyPolicy.java	2008-04-24 11:03:29 UTC (rev 72669)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASDepdencyPolicy.java	2008-04-24 11:14:25 UTC (rev 72670)
@@ -34,6 +34,9 @@
 import org.jboss.ejb3.kernel.JNDIKernelRegistryPlugin;
 
 /**
+ * The implementation of the DependencyPolicy used by the jbossas ejb3
+ * related deployers.
+ * 
  * @author Scott.Stark at jboss.org
  * @version $Revision:$
  */

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASKernel.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASKernel.java	2008-04-24 11:03:29 UTC (rev 72669)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/JBossASKernel.java	2008-04-24 11:14:25 UTC (rev 72670)
@@ -67,7 +67,12 @@
 
    public JBossASKernel(Kernel kernel)
    {
+      this(kernel, null);
+   }
+   public JBossASKernel(Kernel kernel, MBeanServer mbeanServer)
+   {
       this.kernel = kernel;
+      this.mbeanServer = mbeanServer;
    }
 
    public MBeanServer getMbeanServer()
@@ -83,14 +88,19 @@
          DeploymentUnit unit, Object service)
    {
       // Look for the kernel deployment
-      KernelDeployment deployment = (KernelDeployment) unit.getAttachment(KernelDeployment.class.getName());
-      if(deployment == null)
+      KernelDeployment deployment = null;
+      if(unit != null)
       {
-         AbstractKernelDeployment akd = new AbstractKernelDeployment();
-         akd.setBeanFactories(new ArrayList<BeanMetaDataFactory>());
-         deployment = akd;
-         deployment.setName(unit.getShortName());
-         unit.addAttachment(KernelDeployment.class.getName(), deployment);
+         deployment = (KernelDeployment) unit.getAttachment(KernelDeployment.class.getName());
+         if(deployment == null)
+         {
+            AbstractKernelDeployment akd = new AbstractKernelDeployment();
+            akd.setBeanFactories(new ArrayList<BeanMetaDataFactory>());
+            deployment = akd;
+            String kdname = unit.getShortName();
+            deployment.setName(kdname);
+            unit.addAttachment(KernelDeployment.class.getName(), deployment);
+         }
       }
 
       // Create the metadata for the bean to install
@@ -121,8 +131,30 @@
       {
          log.info("\t" + smd.getSupply());
       }
-      // Just add the mc bean metadata to the unit
-      deployment.getBeanFactories().add(bean);
+
+      if(unit != null)
+      {
+         // Just add the mc bean metadata to the unit
+         deployment.getBeanFactories().add(bean);
+      }
+      else
+      {
+         // Install directly into the kernel
+         try
+         {
+            try 
+            {
+               kernel.getController().uninstall(name);
+            }
+            catch (IllegalStateException e){}
+                  
+            kernel.getController().install(bean);
+         }
+         catch (Throwable throwable)
+         {
+            throw new RuntimeException(throwable);
+         }
+      }
    }
 
    public void installMBean(ObjectName on, DependencyPolicy dependencies,




More information about the jboss-cvs-commits mailing list