[jboss-cvs] JBossAS SVN: r99452 - in projects/kernel/trunk: kernel/src/test/java/org/jboss/test/kernel/dependency/support and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 15 06:07:12 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-15 06:07:12 -0500 (Fri, 15 Jan 2010)
New Revision: 99452

Added:
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ScopedTestUtil.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyTestCase.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyXMLTestCase.java
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst10.xml
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst11.xml
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond10.xml
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond11.xml
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall10.xml
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall11.xml
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall12.xml
Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OldAbstractKernelDependencyTest.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyTestCase.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyXMLTestCase.java
Log:
[JBKERNEL-79] Fix OnDemand contexts where dependencies come from a child controller

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-01-15 10:05:32 UTC (rev 99451)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -83,32 +83,32 @@
    private boolean shutdown = false;
 
    /** The controller state model */
-   private AbstractControllerStateModel stateModel = new MapControllerStateModel();
+   private final AbstractControllerStateModel stateModel = new MapControllerStateModel();
    
    /** All contexts by name Map<Object, ControllerContext> */
-   private Map<Object, ControllerContext> allContexts = new ConcurrentHashMap<Object, ControllerContext>();
+   private final Map<Object, ControllerContext> allContexts = new ConcurrentHashMap<Object, ControllerContext>();
 
    /** The contexts by state Map<ControllerState, Set<ControllerContext>> */
-   private Map<ControllerState, Set<ControllerContext>> contextsByState = new ConcurrentHashMap<ControllerState, Set<ControllerContext>>();
+   private final Map<ControllerState, Set<ControllerContext>> contextsByState = new ConcurrentHashMap<ControllerState, Set<ControllerContext>>();
 
    /** The error contexts Map<Name, ControllerContext> */
-   private Map<Object, ControllerContext> errorContexts = new ConcurrentHashMap<Object, ControllerContext>();
+   private final Map<Object, ControllerContext> errorContexts = new ConcurrentHashMap<Object, ControllerContext>();
 
    /** The contexts that are currently being resolved/installed */
-   private Set<ControllerContext> installing = new CopyOnWriteArraySet<ControllerContext>();
+   private final Set<ControllerContext> installing = new CopyOnWriteArraySet<ControllerContext>();
    
    /** The contexts that are currently being installed by the executor */
-   ContextsInstalledByExecutor contextsInstalledByExecutor = new ContextsInstalledByExecutor();
+   private final ContextsInstalledByExecutor contextsInstalledByExecutor = new ContextsInstalledByExecutor();
    
    /** The parent controller */
-   private AbstractController parentController;
+   private volatile AbstractController parentController;
 
    /** The child controllers */
-   private Set<AbstractController> childControllers = new CopyOnWriteArraySet<AbstractController>();
+   private final Set<AbstractController> childControllers = new CopyOnWriteArraySet<AbstractController>();
 
    /** The callback items */
-   private Map<Object, Set<CallbackItem<?>>> installCallbacks = new ConcurrentHashMap<Object, Set<CallbackItem<?>>>();
-   private Map<Object, Set<CallbackItem<?>>> uninstallCallbacks = new ConcurrentHashMap<Object, Set<CallbackItem<?>>>();
+   private final Map<Object, Set<CallbackItem<?>>> installCallbacks = new ConcurrentHashMap<Object, Set<CallbackItem<?>>>();
+   private final Map<Object, Set<CallbackItem<?>>> uninstallCallbacks = new ConcurrentHashMap<Object, Set<CallbackItem<?>>>();
 
    /** Whether an on demand context has been enabled */
    private boolean onDemandEnabled = true;
@@ -120,7 +120,7 @@
    private volatile StateStatistics installStats = null;
 
    /** The context tracker */
-   private AbstractContextRegistry registry;
+   private final AbstractContextRegistry registry;
 
    /**
     * Create an abstract controller
@@ -908,31 +908,51 @@
     */
    protected void enableOnDemand(ControllerContext context, boolean trace) throws Throwable
    {
+      Controller controller = null;
       lockWrite();
       try
       {
          checkShutdown();
 
-         if (ControllerMode.ON_DEMAND.equals(context.getMode()) == false)
-            throw new IllegalStateException("Context is not ON DEMAND: " + context.toShortString());
-
-         // Sanity check
-         getRegisteredControllerContext(context.getName(), true);
-
+         controller = context.getController();
+         
          // Already done
          if (ControllerState.INSTALLED.equals(context.getRequiredState()))
             return;
-         context.setRequiredState(ControllerState.INSTALLED);
 
-         if (trace)
-            log.trace("Enable onDemand: " + context.toShortString());
-
-         onDemandEnabled = true;
+         if (controller == this)
+         {
+            if (ControllerMode.ON_DEMAND.equals(context.getMode()) == false)
+               throw new IllegalStateException("Context is not ON DEMAND: " + context.toShortString());
+            
+            // Sanity check
+            getRegisteredControllerContext(context.getName(), true);
+   
+            context.setRequiredState(ControllerState.INSTALLED);
+   
+            if (trace)
+               log.trace("Enable onDemand: " + context.toShortString());
+         }
       }
       finally
       {
          unlockWrite();
       }
+      
+      if (controller != this)
+      {
+         controller.enableOnDemand(context);
+      }
+      
+      lockWrite();
+      try
+      {
+         onDemandEnabled = true;         
+      }
+      finally
+      {
+         unlockWrite();
+      }
    }
 
    /**
@@ -1037,9 +1057,13 @@
     */
    protected void resolveContexts(boolean trace)
    {
+      boolean wasOnDemandEnabled = false;
       boolean resolutions = true;
       while (resolutions || onDemandEnabled)
       {
+         if (onDemandEnabled)
+            wasOnDemandEnabled = true
+            ;
          onDemandEnabled = false;
          resolutions = false;
          for (ControllerState fromState : stateModel)
@@ -1083,6 +1107,23 @@
             controller.unlockWrite();
          }
       }
+      
+      if (wasOnDemandEnabled)
+      {
+         wasOnDemandEnabled = false;
+         Controller parent = getParentController();
+         if (parent != null)
+         {
+            if (parent instanceof AbstractController == false)
+            {
+               log.warn("Parent is not an instance of AbstractController");
+            }
+            else
+            {
+               ((AbstractController)parent).resolveContexts(trace);
+            }
+         }
+      }
    }
 
    /**
@@ -1503,7 +1544,7 @@
                      ControllerContext other = getContext(name, null);
                      if (other == null)
                      {
-                        log.warn("Could not find dependency while uninstalling on demand contexts for " + item);
+                        log.warn("Could not find dependency '" + name + "' while uninstalling on demand contexts for " + item);
                         continue;
                      }
                      if (other.getMode() != ControllerMode.ON_DEMAND)
@@ -1520,10 +1561,10 @@
                         ControllerContext dependsContext = getContext(dependsOnOtherItem.getName(), null);
                         if (dependsContext == null)
                         {
-                           log.warn("Could not find dependency while uninstalling on demand contexts for " + item);
+                           log.warn("Could not find reverse dependency '" + dependsOnOtherItem.getName() + "' while uninstalling on demand contexts for " + item);
                            continue;
                         }
-                           
+                        
                         ControllerState requiredState = item.getWhenRequired();
                         ControllerState actualState = dependsContext.getState();
                         

Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ScopedTestUtil.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ScopedTestUtil.java	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ScopedTestUtil.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,90 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.kernel.dependency.support;
+
+import java.net.URL;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.dependency.plugins.AbstractController;
+import org.jboss.dependency.spi.Controller;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.test.kernel.AbstractKernelTest;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ScopedTestUtil extends TestUtil
+{
+   public ScopedTestUtil(Kernel kernel, AbstractKernelTest test) throws Throwable
+   {
+      super(kernel, test);
+   }
+
+   @Override
+   public ControllerContext getContext(String name)
+   {
+      return searchForContext(name, null);
+   }
+
+   @Override
+   public ControllerContext getInstalledContext(String name) throws Throwable
+   {
+      return searchForContext(name, ControllerState.INSTALLED);
+   }
+   
+   protected ControllerContext searchForContext(String name, ControllerState state)
+   {
+      Controller main = getKernel().getController();
+      if (main instanceof AbstractController == false)
+         throw new RuntimeException("Unknown controller type " + main);
+         
+      AbstractController mainController = (AbstractController)getKernel().getController();
+      ControllerContext context = mainController.getContext(name, state);
+      if (context != null)
+         return context;
+      
+      for (Controller controller : mainController.getControllers())
+      {
+         if (controller instanceof AbstractController == false)
+            throw new RuntimeException("Unknown controller type");
+         context = ((AbstractController)controller).getContext(name, state);
+         if (context != null)
+            return context;
+      }
+      
+      return null;
+   }
+
+   @Override
+   public void uninstall(String name) throws Throwable
+   {
+      super.uninstall(name);
+   }
+
+   
+}

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java	2010-01-15 10:05:32 UTC (rev 99451)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -117,6 +117,10 @@
       suite.addTest(ScopedDuplicateAliasTestCase.suite());
       suite.addTest(ScopedDuplicateAliasXMLTestCase.suite());
       suite.addTest(ScopedDuplicateAliasAnnotationTestCase.suite());
+      suite.addTest(OnDemandDependencyTestCase.suite());
+      suite.addTest(OnDemandDependencyXMLTestCase.suite());
+      suite.addTest(ScopedOnDemandDependencyTestCase.suite());
+      suite.addTest(ScopedOnDemandDependencyXMLTestCase.suite());
       suite.addTest(OptionalTestCase.suite());
       suite.addTest(OptionalXMLTestCase.suite());
       suite.addTest(OptionalAnnotationTestCase.suite());

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OldAbstractKernelDependencyTest.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OldAbstractKernelDependencyTest.java	2010-01-15 10:05:32 UTC (rev 99451)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OldAbstractKernelDependencyTest.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -33,6 +33,7 @@
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.kernel.Kernel;
 import org.jboss.test.kernel.AbstractKernelTest;
+import org.jboss.test.kernel.dependency.support.ScopedTestUtil;
 import org.jboss.test.kernel.dependency.support.TestUtil;
 import org.jboss.util.Classes;
 
@@ -48,20 +49,29 @@
    private TestUtil util;
    
    /** Whether this is an xml test */
-   private boolean xmltest;
+   private boolean xmlTest;
    
+   /** Whether this test uses scoped controllers */
+   private boolean scoped;
+   
    /** The BeanMetaDatas */
    private BeanMetaData[] beanMetaDatas;
    
    public OldAbstractKernelDependencyTest(String name) throws Throwable
    {
-      this(name, false);
+      this(name, false, false);
    }
    
    public OldAbstractKernelDependencyTest(String name, boolean xmltest) throws Throwable
    {
+      this(name, xmltest, false);
+   }
+   
+   public OldAbstractKernelDependencyTest(String name, boolean xmlTest, boolean scoped)
+   {
       super(name);
-      this.xmltest = xmltest;
+      this.xmlTest = xmlTest;
+      this.scoped = scoped;
    }
 
    protected void setUp() throws Exception
@@ -70,7 +80,10 @@
       try
       {
          Kernel kernel = bootstrap();
-         this.util = new TestUtil(kernel, this);
+         if (scoped)
+            this.util = new ScopedTestUtil(kernel, this);
+         else
+            this.util = new TestUtil(kernel, this);
       }
       catch (Exception e)
       {
@@ -89,7 +102,7 @@
    
    protected ControllerContext install(int number, String name) throws Throwable
    {
-      if (xmltest)
+      if (xmlTest)
       {
          deploy(number);
          return util.getContext(name);
@@ -151,7 +164,7 @@
    
    protected void setBeanMetaDatas(BeanMetaData[] beanMetaDatas)
    {
-      if (xmltest)
+      if (xmlTest)
          return;
       this.beanMetaDatas = beanMetaDatas;
    }
@@ -204,4 +217,13 @@
       //if (xmltest)
       //   enableTrace("org.jboss.xb");
    }
+
+   /**
+    * Get the xmltest
+    * @return the xmltest
+    */
+   public boolean isXmlTest()
+   {
+      return xmlTest;
+   }
 }

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyTestCase.java	2010-01-15 10:05:32 UTC (rev 99451)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyTestCase.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -22,17 +22,21 @@
 package org.jboss.test.kernel.dependency.test;
 
 import java.util.HashSet;
+import java.util.Set;
 
 import junit.framework.Test;
 
+import org.jboss.beans.metadata.plugins.AbstractAnnotationMetaData;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
+import org.jboss.beans.metadata.spi.AnnotationMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.ControllerState;
+import org.jboss.metadata.plugins.scope.DeploymentScope;
 import org.jboss.test.kernel.dependency.support.SimpleBean;
 import org.jboss.test.kernel.dependency.support.SimpleBeanImpl;
 import org.jboss.test.kernel.dependency.support.SimpleBeanWithDependency;
@@ -56,19 +60,21 @@
       super(name);
    }
 
-   public OnDemandDependencyTestCase(String name, boolean xmltest) throws Throwable
+   public OnDemandDependencyTestCase(String name, boolean xmltest, boolean scoped) throws Throwable
    {
-      super(name, xmltest);
+      super(name, xmltest, scoped);
    }
 
    public void testOnDemandDependencyOnDemandFirst() throws Throwable
    {
       onDemandDependencyOnDemandFirst();
 
-      ControllerContext context1 = assertInstall(0, "Name1", ControllerState.DESCRIBED);
-      ControllerContext context2 = assertInstall(1, "Name2");
+      ControllerContext context1 = assertInstall(offSetNumber(0), "Name1", ControllerState.DESCRIBED);
+      ControllerContext context2 = assertInstall(offSetNumber(1), "Name2");
       assertContext("Name1");
       
+      assertControllers(context1, context2);
+      
       SimpleBean bean1 = (SimpleBean) context1.getTarget();
       assertNotNull(bean1);
       assertEquals("String1", bean1.getString());
@@ -88,10 +94,12 @@
    {
       onDemandDependencyOnDemandSecond();
       
-      ControllerContext context2 = assertInstall(1, "Name2", ControllerState.INSTANTIATED);
-      ControllerContext context1 = assertInstall(0, "Name1");
+      ControllerContext context2 = assertInstall(offSetNumber(1), "Name2", ControllerState.INSTANTIATED);
+      ControllerContext context1 = assertInstall(offSetNumber(0), "Name1");
       assertEquals(ControllerState.INSTALLED, context2.getState());
-      
+
+      assertControllers(context1, context2);
+
       SimpleBean bean1 = (SimpleBean) context1.getTarget();
       assertNotNull(bean1);
       assertEquals("String1", bean1.getString());
@@ -111,11 +119,13 @@
    {
       onDemandDependencyReinstall();
 
-      ControllerContext context1 = assertInstall(0, "Name1", ControllerState.DESCRIBED);
-      ControllerContext context2 = assertInstall(1, "Name2");
-      ControllerContext context3 = assertInstall(2, "Name3");
+      ControllerContext context1 = assertInstall(offSetNumber(0), "Name1", ControllerState.DESCRIBED);
+      ControllerContext context2 = assertInstall(offSetNumber(1), "Name2");
+      ControllerContext context3 = assertInstall(offSetNumber(2), "Name3");
       assertContext("Name1");
-      
+
+      assertControllers(context1, context2, context3);
+
       SimpleBean bean1 = (SimpleBean) context1.getTarget();
       assertNotNull(bean1);
       assertEquals("String1", bean1.getString());
@@ -141,7 +151,7 @@
       context2 = assertContext("Name2", ControllerState.INSTANTIATED);
       context3 = assertContext("Name3", ControllerState.INSTANTIATED);
       
-      context1 = assertInstall(0, "Name1");
+      context1 = assertInstall(offSetNumber(0), "Name1");
       assertEquals(ControllerState.INSTALLED, context2.getState());
       assertEquals(ControllerState.INSTALLED, context3.getState());
 
@@ -172,7 +182,7 @@
       assertEquals("String3", bean3.getString());
       assertEquals(bean1, bean3.getSimpleBean());
 
-      context2 = assertInstall(1, "Name2");
+      context2 = assertInstall(offSetNumber(1), "Name2");
       
       bean1 = (SimpleBean) context1.getTarget();
       assertNotNull(bean1);
@@ -204,7 +214,7 @@
       context1 = assertContext("Name1", ControllerState.DESCRIBED);
       assertNull(context1.getTarget());
       
-      context2 = assertInstall(1, "Name2");
+      context2 = assertInstall(offSetNumber(1), "Name2");
       
       bean1 = (SimpleBean) context1.getTarget();
       assertNotNull(bean1);
@@ -215,7 +225,7 @@
       assertEquals("String2", bean2.getString());
       assertEquals(bean1, bean2.getSimpleBean());
 
-      context3 = assertInstall(2, "Name3");
+      context3 = assertInstall(offSetNumber(2), "Name3");
       bean3 = (SimpleBeanWithDependency) context3.getTarget();
       assertNotNull(bean3);
       assertEquals("String3", bean3.getString());
@@ -240,13 +250,36 @@
       attributes2.add(new AbstractPropertyMetaData("string", "String2"));
       attributes2.add(new AbstractPropertyMetaData("simpleBean", new AbstractDependencyValueMetaData("Name1")));
       metaData2.setProperties(attributes2);
+      addAnnotation(metaData2);
 
       AbstractBeanMetaData metaData3 = new AbstractBeanMetaData("Name3", SimpleBeanWithDependencyImpl.class.getName());
       HashSet<PropertyMetaData> attributes3 = new HashSet<PropertyMetaData>();
       attributes3.add(new AbstractPropertyMetaData("string", "String3"));
       attributes3.add(new AbstractPropertyMetaData("simpleBean", new AbstractDependencyValueMetaData("Name1")));
       metaData3.setProperties(attributes3);
+      addAnnotation(metaData3);
 
       setBeanMetaDatas(new BeanMetaData[] { metaData1, metaData2, metaData3});
    }
+   
+   protected void addAnnotation(AbstractBeanMetaData bmd)
+   {
+   }
+   
+   protected int offSetNumber(int i)
+   {
+      return i;
+   }
+   
+   protected void assertControllers(ControllerContext...contexts)
+   {
+      if (contexts.length <= 1)
+         return;
+      
+      for (int i = 1 ; i < contexts.length ; i++)
+      {
+         if (i > 1)
+            assertSame(contexts[i].getController(), contexts[i-1].getController());
+      }
+   }
 }
\ No newline at end of file

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyXMLTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyXMLTestCase.java	2010-01-15 10:05:32 UTC (rev 99451)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/OnDemandDependencyXMLTestCase.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -38,6 +38,6 @@
 
    public OnDemandDependencyXMLTestCase(String name) throws Throwable
    {
-      super(name, true);
+      super(name, true, false);
    }
 }
\ No newline at end of file

Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyTestCase.java	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyTestCase.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,76 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.kernel.dependency.test;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.Test;
+
+import org.jboss.beans.metadata.plugins.AbstractAnnotationMetaData;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.spi.AnnotationMetaData;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.metadata.plugins.scope.DeploymentScope;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ScopedOnDemandDependencyTestCase extends OnDemandDependencyTestCase
+{
+   public static Test suite()
+   {
+      return suite(ScopedOnDemandDependencyTestCase.class);
+   }
+
+   public ScopedOnDemandDependencyTestCase(String name) throws Throwable
+   {
+      super(name, false, true);
+   }
+
+   public ScopedOnDemandDependencyTestCase(String name, boolean xmltest) throws Throwable
+   {
+      super(name, xmltest, true);
+   }
+
+   protected void addAnnotation(AbstractBeanMetaData bmd)
+   {
+      Set<AnnotationMetaData> annotations = new HashSet<AnnotationMetaData>();
+      annotations.add(new AbstractAnnotationMetaData("@" + DeploymentScope.class.getName() + "(\"somedeployment\")"));
+      bmd.setAnnotations(annotations);
+   }
+   
+   protected void assertControllers(ControllerContext...contexts)
+   {
+      if (contexts.length <= 1)
+         return;
+      
+      for (int i = 1 ; i < contexts.length ; i++)
+      {
+         assertNotSame(contexts[0].getController(), contexts[i].getController());
+         if (i > 1)
+            assertSame(contexts[i].getController(), contexts[i-1].getController());
+      }
+   }
+}

Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyXMLTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyXMLTestCase.java	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/ScopedOnDemandDependencyXMLTestCase.java	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,52 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.kernel.dependency.test;
+
+import junit.framework.Test;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ScopedOnDemandDependencyXMLTestCase extends ScopedOnDemandDependencyTestCase
+{
+   public static Test suite()
+   {
+      return suite(ScopedOnDemandDependencyXMLTestCase.class);
+   }
+
+   public ScopedOnDemandDependencyXMLTestCase(String name) throws Throwable
+   {
+      super(name, true);
+   }
+
+   @Override
+   protected void buildMetaData()
+   {
+   }
+   
+   protected int offSetNumber(int i)
+   {
+      return i + 10;
+   }
+}

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst10.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst10.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst10.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name1" class="org.jboss.test.kernel.dependency.support.SimpleBeanImpl" mode="On Demand">
+      <property name="string">String1</property>
+   </bean>
+</deployment>

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst11.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst11.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandFirst11.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name2" class="org.jboss.test.kernel.dependency.support.SimpleBeanWithDependencyImpl">
+      <annotation>@org.jboss.metadata.plugins.scope.DeploymentScope("somedeployment")</annotation>
+      <property name="string">String2</property>
+      <property name="simpleBean"><inject bean="Name1"/></property>
+   </bean>
+</deployment>

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond10.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond10.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond10.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name1" class="org.jboss.test.kernel.dependency.support.SimpleBeanImpl" mode="On Demand">
+      <property name="string">String1</property>
+   </bean>
+</deployment>

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond11.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond11.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyOnDemandSecond11.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name2" class="org.jboss.test.kernel.dependency.support.SimpleBeanWithDependencyImpl">
+       <annotation>@org.jboss.metadata.plugins.scope.DeploymentScope("somedeployment")</annotation>
+       <property name="string">String2</property>
+      <property name="simpleBean"><inject bean="Name1"/></property>
+   </bean>
+</deployment>

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall10.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall10.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall10.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name1" class="org.jboss.test.kernel.dependency.support.SimpleBeanImpl" mode="On Demand">
+      <property name="string">String1</property>
+   </bean>
+</deployment>

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall11.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall11.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall11.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name2" class="org.jboss.test.kernel.dependency.support.SimpleBeanWithDependencyImpl">
+      <annotation>@org.jboss.metadata.plugins.scope.DeploymentScope("somedeployment")</annotation>
+      <property name="string">String2</property>
+      <property name="simpleBean"><inject bean="Name1"/></property>
+   </bean>
+</deployment>

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall12.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall12.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/dependency/test/testOnDemandDependencyReinstall12.xml	2010-01-15 11:07:12 UTC (rev 99452)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Name3" class="org.jboss.test.kernel.dependency.support.SimpleBeanWithDependencyImpl">
+      <annotation>@org.jboss.metadata.plugins.scope.DeploymentScope("somedeployment")</annotation>
+      <property name="string">String3</property>
+      <property name="simpleBean"><inject bean="Name1"/></property>
+   </bean>
+</deployment>




More information about the jboss-cvs-commits mailing list