[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