[jboss-cvs] JBossAS SVN: r76811 - in projects/jboss-deployers/trunk/deployers-vfs/src: tests/org/jboss/test/deployers/vfs/deployer/bean/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 8 04:42:35 EDT 2008


Author: alesj
Date: 2008-08-08 04:42:34 -0400 (Fri, 08 Aug 2008)
New Revision: 76811

Modified:
   projects/jboss-deployers/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java
   projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/KernelScopeUnitTestCase.java
Log:
[JBDEPLOY-69]; merge the controller context and deployment unit scopes.

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java	2008-08-08 08:15:47 UTC (rev 76810)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/deployer/kernel/BeanMetaDataDeployer.java	2008-08-08 08:42:34 UTC (rev 76811)
@@ -21,6 +21,8 @@
 */
 package org.jboss.deployers.vfs.deployer.kernel;
 
+import java.util.Collection;
+
 import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
 import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaData;
@@ -34,6 +36,8 @@
 import org.jboss.kernel.Kernel;
 import org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.metadata.spi.scope.Scope;
+import org.jboss.metadata.spi.scope.ScopeKey;
 
 /**
  * BeanMetaDataDeployer.<p>
@@ -110,8 +114,11 @@
       }
       KernelControllerContext context = new AbstractKernelControllerContext(null, deployment, null);
       ScopeInfo scopeInfo = context.getScopeInfo();
-      scopeInfo.setScope(unit.getScope());
-      scopeInfo.setMutableScope(unit.getMutableScope());
+      if (scopeInfo != null)
+      {
+         mergeScopes(scopeInfo.getScope(), unit.getScope());
+         mergeScopes(scopeInfo.getMutableScope(), unit.getMutableScope());
+      }
       try
       {
          controller.install(context);
@@ -122,6 +129,27 @@
       }
    }
 
+   /**
+    * Merge scope keys.
+    *
+    * @param contextKey the context key
+    * @param unitKey the unit key
+    */
+   protected static void mergeScopes(ScopeKey contextKey, ScopeKey unitKey)
+   {
+      if (contextKey == null)
+         return;
+      if (unitKey == null)
+         return;
+
+      Collection<Scope> unitScopes = unitKey.getScopes();
+      if (unitScopes == null || unitScopes.isEmpty())
+         return;
+
+      for (Scope scope : unitScopes)
+         contextKey.addScope(scope);
+   }
+
    @Override
    public void undeploy(DeploymentUnit unit, BeanMetaData deployment)
    {

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/KernelScopeUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/KernelScopeUnitTestCase.java	2008-08-08 08:15:47 UTC (rev 76810)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/bean/test/KernelScopeUnitTestCase.java	2008-08-08 08:42:34 UTC (rev 76811)
@@ -21,10 +21,12 @@
 */
 package org.jboss.test.deployers.vfs.deployer.bean.test;
 
+import java.util.Collection;
 import java.util.Collections;
+import java.util.Set;
+import java.util.HashSet;
 
 import junit.framework.Test;
-
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
 import org.jboss.dependency.spi.ControllerContext;
@@ -38,7 +40,8 @@
 import org.jboss.kernel.Kernel;
 import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
 import org.jboss.metadata.spi.MetaData;
-import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
+import org.jboss.metadata.spi.scope.Scope;
+import org.jboss.metadata.spi.scope.ScopeKey;
 import org.jboss.test.deployers.vfs.deployer.AbstractDeployerUnitTest;
 import org.jboss.test.deployers.vfs.deployer.bean.support.Simple;
 import org.jboss.test.deployers.vfs.deployer.bean.support.TestMetaDataBeanDeployer;
@@ -95,8 +98,8 @@
       MainDeployerStructure mds = (MainDeployerStructure) main;
       DeploymentUnit unit = mds.getDeploymentUnit("KernelDeployerTest", true);
       DeploymentUnit component = unit.getComponent("Test");
-      assertEquals(component.getScope(), scopeInfo.getScope());
-      assertEquals(component.getMutableScope(), scopeInfo.getMutableScope());
+      assertScopeKeys(component.getScope(), scopeInfo.getScope());
+      assertScopeKeys(component.getMutableScope(), scopeInfo.getMutableScope());
       
       MetaData md = ctx.getScopeInfo().getMetaData();
       assertEquals(testMetaDataDeployer, md.getMetaData("test"));
@@ -104,4 +107,18 @@
       assertUndeploy(context);
       assertNull(controller.getContext("Test", null));
    }
+
+   /**
+    * Component scopes should be subset of context scopes.  
+    */
+   protected void assertScopeKeys(ScopeKey component, ScopeKey context)
+   {
+      Collection<Scope> componentScopes = component.getScopes();
+      Collection<Scope> contextScopes = context.getScopes();
+
+      Set<Scope> first = new HashSet<Scope>(componentScopes);
+      Set<Scope> second = new HashSet<Scope>(contextScopes);
+      second.retainAll(first);
+      assertEquals(first, second);
+   }
 }




More information about the jboss-cvs-commits mailing list