[jboss-cvs] JBossAS SVN: r87586 - in projects/microcontainer/branches/Branch_2_0: aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans and 19 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Apr 20 12:28:53 EDT 2009
Author: alesj
Date: 2009-04-20 12:28:53 -0400 (Mon, 20 Apr 2009)
New Revision: 87586
Added:
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/api/annotations/MCAnnotations.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/AnnotationPluginFilter.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/MethodAnnotationPluginFilter.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/PropertyAnnotationPluginFilter.java
Modified:
projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/GenericBeanAspectFactory.java
projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MixinData.java
projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/SchemaPrinter.java
projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/TestSchemaResolver.java
projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectFactoryWithDependencyTest.java
projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/support/ParentLastURLClassLoader.java
projects/microcontainer/branches/Branch_2_0/build/
projects/microcontainer/branches/Branch_2_0/build/pom.xml
projects/microcontainer/branches/Branch_2_0/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java
projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java
projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/deployment/support/NullifyTestBean1.java
projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/inject/test/InjectionValueCallbackTestCase.java
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanNoInstall.xml
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanWithSupply.xml
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallDependencyXMLTestCase2.xml
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallSelfDependencyXMLTestCase1.xml
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataWithClassloaderTestCase.xml
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/SuperDemandAnnotationTestCase.xml
projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/xml-test/org/jboss/test/kernel/annotations/test/override/testSetsOverride.xml
projects/microcontainer/branches/Branch_2_0/pom.xml
projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringMicrocontainerTestDelegate.java
projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringSchemaTestDelegate.java
Log:
Merge with trunk.
Still leaving jmx out.
Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/GenericBeanAspectFactory.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/GenericBeanAspectFactory.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/GenericBeanAspectFactory.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -25,12 +25,8 @@
import org.jboss.aop.InstanceAdvisor;
import org.jboss.aop.advice.GenericAspectFactory;
import org.jboss.aop.joinpoint.Joinpoint;
-import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
-import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
import org.jboss.beans.metadata.plugins.factory.GenericBeanFactory;
-import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.beans.metadata.spi.factory.BeanFactory;
-import org.jboss.kernel.plugins.config.Configurator;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
import org.jboss.logging.Logger;
Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MixinData.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MixinData.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/main/java/org/jboss/aop/microcontainer/beans/metadata/MixinData.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -23,12 +23,14 @@
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
+ at XmlType(propOrder= {})
public class MixinData
{
String mixin;
Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/SchemaPrinter.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/SchemaPrinter.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/SchemaPrinter.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -51,7 +51,7 @@
@SuppressWarnings("unchecked")
public static String printSchema(SchemaBinding schemaBinding)
{
- String nsURI = (String) schemaBinding.getNamespaces().iterator().next();
+ String nsURI = schemaBinding.getNamespaces().iterator().next();
StringBuilder builder = new StringBuilder();
builder.append("<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n");
if (XMLConstants.NULL_NS_URI.equals(nsURI) == false)
Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/TestSchemaResolver.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/TestSchemaResolver.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/aop/junit/TestSchemaResolver.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -49,7 +49,7 @@
public void addSchemaBinding(SchemaBinding schemaBinding)
{
schemaBinding.setSchemaResolver(this);
- String nsURI = (String) schemaBinding.getNamespaces().iterator().next();
+ String nsURI = schemaBinding.getNamespaces().iterator().next();
bindings.put(nsURI, schemaBinding);
if (log.isTraceEnabled())
{
Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectFactoryWithDependencyTest.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectFactoryWithDependencyTest.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/beans/test/AspectFactoryWithDependencyTest.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -51,7 +51,6 @@
{
deploy(getFile1());
- POJO dependency = (POJO)getBean("Dependency");
DependencyFactoryAspect.invoked = null;
POJO pojo = (POJO)getBean("Bean");
int ret = pojo.method(2);
@@ -76,7 +75,7 @@
{
try
{
- Object o = getBean(name);
+ getBean(name);
fail("Should not have found '" + name + "'");
}
catch (Exception expected)
Modified: projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/support/ParentLastURLClassLoader.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/support/ParentLastURLClassLoader.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/aop-mc-int/src/test/java/org/jboss/test/microcontainer/support/ParentLastURLClassLoader.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -26,7 +26,6 @@
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
-import java.net.URLConnection;
/**
*
@@ -77,7 +76,7 @@
}
String resourceName = name.replace('.', '/') + ".class";
URL mine = delegate.findResource(resourceName);
- URL parents = parent.getResource(resourceName);
+ parent.getResource(resourceName);
if (mine == null || mine.equals(parent))
{
return delegate.loadClass(name);
@@ -92,7 +91,6 @@
private byte[] loadBytes(String name, String resourceName)
{
InputStream in = delegate.getResourceAsStream(resourceName);
- byte[] bytes = null;
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Property changes on: projects/microcontainer/branches/Branch_2_0/build
___________________________________________________________________
Name: svn:ignore
- local.properties
output
target
jboss-microcontainer.iml
+ local.properties
output
target
jboss-microcontainer.iml
jboss-microcontainer-dist.iml
Modified: projects/microcontainer/branches/Branch_2_0/build/pom.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/build/pom.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/build/pom.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -25,32 +25,37 @@
and configuration.
</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-2</version>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- <configuration>
- <finalName>jboss-microcontainer-${project.version}</finalName>
- <descriptors>
- <descriptor>src/assembly/dist.xml</descriptor>
- <descriptor>src/assembly/dist-with-deps.xml</descriptor>
- <descriptor>src/assembly/src.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <profiles>
+ <profile>
+ <id>dist</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-2</version>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attached</goal>
+ </goals>
+ <configuration>
+ <finalName>jboss-microcontainer-${project.version}</finalName>
+ <descriptors>
+ <descriptor>src/assembly/dist.xml</descriptor>
+ <descriptor>src/assembly/dist-with-deps.xml</descriptor>
+ <descriptor>src/assembly/src.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
<dependencies>
<dependency>
Modified: projects/microcontainer/branches/Branch_2_0/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -1039,6 +1039,7 @@
Set<ControllerContext> resolved = resolveContexts(unresolved, toState, trace);
if (resolved.isEmpty() == false)
{
+ Set<ControllerContext> toProcess = new HashSet<ControllerContext>();
for (ControllerContext context : resolved)
{
Object name = context.getName();
@@ -1054,22 +1055,54 @@
}
else
{
- try
+ toProcess.add(context);
+ }
+ }
+ try
+ {
+ if (toProcess.isEmpty() == false)
+ {
+ for (Iterator<ControllerContext> iter = toProcess.iterator(); iter.hasNext(); )
{
- if (trace)
- log.trace("Dependencies resolved " + name + " for " + toState.getStateString());
+ ControllerContext context = iter.next();
+ iter.remove();
+ Object name = context.getName();
+ try
+ {
+ if (fromState.equals(context.getState()) == false)
+ {
+ if (trace)
+ log.trace("Skipping already installed " + name + " for " + toState.getStateString());
+ }
+ else
+ {
+ if (trace)
+ log.trace("Dependencies resolved " + name + " for " + toState.getStateString());
- if (incrementState(context, trace))
+ if (incrementState(context, trace))
+ {
+ resolutions = true;
+ if (trace)
+ log.trace(name + " " + toState.getStateString());
+ }
+
+ }
+ }
+ finally
{
- resolutions = true;
- if (trace)
- log.trace(name + " " + toState.getStateString());
+ installing.remove(context);
}
}
- finally
- {
+ }
+ }
+ finally
+ {
+ // If we get here something has gone seriously wrong,
+ // but try to tidyup as much state as possible
+ if (toProcess.isEmpty() == false)
+ {
+ for (ControllerContext context : toProcess)
installing.remove(context);
- }
}
}
}
Modified: projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/AbstractDependencyTest.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -60,7 +60,7 @@
super.setUp();
controller = new AbstractController();
Ordering.resetOrder();
- enableTrace("org.jboss.dependency");
+ //enableTrace("org.jboss.dependency");
}
protected ControllerContext assertInstall(TestDelegate delegate) throws Throwable
Modified: projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/dependency/src/test/java/org/jboss/test/dependency/controller/test/RecursiveControllerActionTestCase.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -115,13 +115,41 @@
assertContext(context.child, ControllerState.INSTALLED);
}
+ public void testInstallMany() throws Throwable
+ {
+ TestDelegate[] delegates = new TestDelegate[3];
+ RecursiveControllerContext[] contexts = new RecursiveControllerContext[delegates.length];
+ TestDelegate other = new TestDelegate("Other ");
+ for (int i = 0; i < delegates.length; ++i)
+ {
+ delegates[i] = new TestDelegate("InstallTestRecursive " + i);
+ contexts[i] = new RecursiveControllerContext(delegates[i], this);
+ DependencyItem item = new AbstractDependencyItem(delegates[i].getName(), other.getName(), ControllerState.CREATE, ControllerState.CONFIGURED);
+ contexts[i].getDependencyInfo().addIDependOn(item);
+ assertInstall(contexts[i], ControllerState.CONFIGURED);
+ }
+
+ TestControllerContext otherContext = new TestControllerContext(other);
+ assertInstall(otherContext, ControllerState.INSTALLED);
+
+ for (int i = 0; i < delegates.length; ++i)
+ {
+ assertContext(contexts[i], ControllerState.INSTALLED);
+ }
+ }
+
public void installChild(RecursiveControllerContext context) throws Throwable
{
+ if (++depth > 1)
+ throw new IllegalStateException("Should not recurse depth=" + depth);
TestDelegate delegate = new TestDelegate(context.getName() + "Child");
context.child = new RecursiveControllerContext(delegate, null);
assertInstall(context.child, ControllerState.INSTALLED);
+ depth--;
}
+ int depth = 0;
+
public void uninstallChild(RecursiveControllerContext context)
{
try
Copied: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/api/annotations/MCAnnotations.java (from rev 87584, projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/api/annotations/MCAnnotations.java)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/api/annotations/MCAnnotations.java (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/api/annotations/MCAnnotations.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.beans.metadata.api.annotations;
+
+import java.lang.annotation.Annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Possible IoC annotations.
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+public @interface MCAnnotations
+{
+ /**
+ * Possible annotation classes.
+ *
+ * @return the possible annotation classes
+ */
+ Class<? extends Annotation>[] value() default {};
+
+ /**
+ * Should we ignore IoC annotations lookup.
+ *
+ * @return true if we should ignore IoC annotations scan, false otherwise
+ */
+ boolean ignore() default false;
+}
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -33,6 +33,7 @@
import org.jboss.beans.info.spi.BeanAccessMode;
import org.jboss.beans.metadata.api.model.AutowireType;
import org.jboss.beans.metadata.api.model.InjectOption;
+import org.jboss.beans.metadata.api.model.FromContext;
import org.jboss.beans.metadata.plugins.AbstractAnnotationMetaData;
import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
@@ -1063,6 +1064,17 @@
return new AbstractInjectionValueMetaData();
}
+ /**
+ * Create abstract dependency metadata.
+ *
+ * @param name the name
+ * @return abstract dependency value metadata
+ */
+ protected AbstractInjectionValueMetaData createAbstractInjectionValueMetaData(Object name)
+ {
+ return new AbstractInjectionValueMetaData(name);
+ }
+
public ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, AutowireType autowire, InjectOption option, SearchInfo search)
{
AbstractInjectionValueMetaData result = createAbstractInjectionValueMetaData();
@@ -1079,6 +1091,17 @@
return result;
}
+ public ValueMetaData createFromContextInject(FromContext fromContext, Object contextName, ControllerState dependentState, SearchInfo search)
+ {
+ AbstractInjectionValueMetaData result = createAbstractInjectionValueMetaData(contextName);
+ result.setFromContext(fromContext);
+ if (dependentState != null)
+ result.setDependentState(dependentState);
+ if (search != null)
+ result.setSearch(search);
+ return result;
+ }
+
@SuppressWarnings("unchecked")
public Collection<ValueMetaData> createCollection(String collectionType, String elementType)
{
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -30,6 +30,7 @@
import org.jboss.beans.info.spi.BeanAccessMode;
import org.jboss.beans.metadata.api.model.AutowireType;
+import org.jboss.beans.metadata.api.model.FromContext;
import org.jboss.beans.metadata.api.model.InjectOption;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
@@ -1722,6 +1723,53 @@
public abstract ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, AutowireType autowire, InjectOption option, SearchInfo search);
/**
+ * Create from context injection.
+ *
+ * @param fromContext from context enum
+ * @return the from context injection
+ */
+ public ValueMetaData createFromContextInject(FromContext fromContext)
+ {
+ return createFromContextInject(fromContext, null);
+ }
+
+ /**
+ * Create from context injection.
+ *
+ * @param fromContext from context enum
+ * @param contextName the context name
+ * @return the from context injection
+ */
+ public ValueMetaData createFromContextInject(FromContext fromContext, Object contextName)
+ {
+ return createFromContextInject(fromContext, contextName, null);
+ }
+
+ /**
+ * Create from context injection.
+ *
+ * @param fromContext from context enum
+ * @param contextName the context name
+ * @param dependentState the state of the injected context
+ * @return the from context injection
+ */
+ public ValueMetaData createFromContextInject(FromContext fromContext, Object contextName, ControllerState dependentState)
+ {
+ return createFromContextInject(fromContext, contextName, dependentState, null);
+ }
+
+ /**
+ * Create from context injection.
+ *
+ * @param fromContext from context enum
+ * @param contextName the context name
+ * @param dependentState the state of the injected context
+ * @param search the search info
+ * @return the from context injection
+ */
+ public abstract ValueMetaData createFromContextInject(FromContext fromContext, Object contextName, ControllerState dependentState, SearchInfo search);
+
+ /**
* Create a new collection
*
* @return the collection
Copied: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/AnnotationPluginFilter.java (from rev 87584, projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/annotations/AnnotationPluginFilter.java)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/AnnotationPluginFilter.java (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/AnnotationPluginFilter.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.kernel.plugins.annotations;
+
+/**
+ * Filter annotation plugins.
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+interface AnnotationPluginFilter
+{
+ /**
+ * Do we accept the plugin.
+ *
+ * @param plugin the current plugin
+ * @return true if we match the plugin, false otherwise
+ */
+ boolean accept(MetaDataAnnotationPlugin plugin);
+}
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -25,11 +25,19 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.beans.metadata.api.annotations.MCAnnotations;
import org.jboss.logging.Logger;
import org.jboss.metadata.spi.MetaData;
import org.jboss.metadata.spi.signature.ConstructorSignature;
@@ -41,6 +49,8 @@
import org.jboss.reflect.spi.ConstructorInfo;
import org.jboss.reflect.spi.FieldInfo;
import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.TypeInfoFactory;
+import org.jboss.reflect.spi.TypeInfo;
/**
* Common bean annotation handler.
@@ -51,14 +61,18 @@
*/
public abstract class CommonAnnotationAdapter<T extends MetaDataAnnotationPlugin<?, ?>, U>
{
+ /** The log */
protected Logger log = Logger.getLogger(getClass());
- protected Set<T> classAnnotationPlugins = new HashSet<T>();
- protected Set<T> constructorAnnotationPlugins = new HashSet<T>();
- protected Set<T> propertyAnnotationPlugins = new HashSet<T>();
- protected Set<T> methodAnnotationPlugins = new HashSet<T>();
- protected Set<T> fieldAnnotationPlugins = new HashSet<T>();
+ /** The annotation plugins */
+ private final Map<ElementType, Set<T>> pluginsMap = new HashMap<ElementType, Set<T>>();
+ /** The property annotation plugin filter */
+ private static final AnnotationPluginFilter PROPERTY_FILTER = new PropertyAnnotationPluginFilter();
+
+ /** The method annotation plugin filter */
+ private static final AnnotationPluginFilter METHOD_FILTER = new MethodAnnotationPluginFilter();
+
/**
* Add the annotation plugin.
* Breaks down the plugin usage into
@@ -66,7 +80,6 @@
*
* @param plugin the annotation plugin
*/
- @SuppressWarnings("unchecked")
public void addAnnotationPlugin(T plugin)
{
if (plugin == null)
@@ -81,29 +94,23 @@
if (annotation.getAnnotation(Retention.class) == null)
log.warn("Annotation " + annotation + " missing @Retention annotation!");
- Set supported = plugin.getSupportedTypes();
+ Set<ElementType> supported = plugin.getSupportedTypes();
if (supported == null || supported.isEmpty())
throw new IllegalArgumentException("Null or empty support types: " + plugin);
- if (supported.contains(ElementType.TYPE))
+ synchronized (pluginsMap)
{
- classAnnotationPlugins.add(plugin);
+ for (ElementType type : supported)
+ {
+ Set<T> plugins = pluginsMap.get(type);
+ if (plugins == null)
+ {
+ plugins = new HashSet<T>();
+ pluginsMap.put(type, plugins);
+ }
+ plugins.add(plugin);
+ }
}
- if (supported.contains(ElementType.CONSTRUCTOR))
- {
- constructorAnnotationPlugins.add(plugin);
- }
- if (supported.contains(ElementType.METHOD))
- {
- if (plugin instanceof PropertyAware)
- propertyAnnotationPlugins.add(plugin);
- else
- methodAnnotationPlugins.add(plugin);
- }
- if (supported.contains(ElementType.FIELD))
- {
- fieldAnnotationPlugins.add(plugin);
- }
}
/**
@@ -120,25 +127,20 @@
if (supported == null || supported.isEmpty())
throw new IllegalArgumentException("Null or empty support types: " + plugin);
- if (supported.contains(ElementType.TYPE))
+ synchronized (pluginsMap)
{
- classAnnotationPlugins.remove(plugin);
+ for (ElementType type : supported)
+ {
+ Set<T> plugins = pluginsMap.get(type);
+ if (plugins != null)
+ {
+ plugins.remove(plugin);
+
+ if (plugins.isEmpty())
+ pluginsMap.remove(type);
+ }
+ }
}
- if (supported.contains(ElementType.CONSTRUCTOR))
- {
- constructorAnnotationPlugins.remove(plugin);
- }
- if (supported.contains(ElementType.METHOD))
- {
- if (plugin instanceof PropertyAware)
- propertyAnnotationPlugins.remove(plugin);
- else
- methodAnnotationPlugins.remove(plugin);
- }
- if (supported.contains(ElementType.FIELD))
- {
- fieldAnnotationPlugins.remove(plugin);
- }
}
/**
@@ -172,6 +174,55 @@
protected abstract Object getName(U handle);
/**
+ * Get plugins.
+ *
+ * @param type the element type to match
+ * @param filter possible plugins filter
+ * @param annotationClasses possible annotations
+ * @return iterable matching plugins
+ */
+ protected Iterable<T> getPlugins(ElementType type, AnnotationPluginFilter filter, Collection<Class<? extends Annotation>> annotationClasses)
+ {
+ Set<T> plugins;
+ synchronized (pluginsMap)
+ {
+ plugins = pluginsMap.get(type);
+ }
+
+ if (plugins == null || plugins.isEmpty())
+ return Collections.emptySet();
+
+ if (filter != null)
+ {
+ List<T> result = new ArrayList<T>();
+ for (T plugin : plugins)
+ {
+ if (filter.accept(plugin) && (annotationClasses == null || annotationClasses.contains(plugin.getAnnotation())))
+ {
+ result.add(plugin);
+ }
+ }
+ return result;
+ }
+ else if (annotationClasses != null)
+ {
+ List<T> result = new ArrayList<T>();
+ for (T plugin : plugins)
+ {
+ if (annotationClasses.contains(plugin.getAnnotation()))
+ {
+ result.add(plugin);
+ }
+ }
+ return result;
+ }
+ else
+ {
+ return plugins;
+ }
+ }
+
+ /**
* Handle apply or cleanup of annotations.
*
* @param info the bean info
@@ -193,9 +244,21 @@
if (trace)
log.trace(getName(handle) + " apply annotations");
+ // limit the annotations
+ MCAnnotations annotations = retrieval.getAnnotation(MCAnnotations.class);
+ if (annotations != null && (annotations.ignore() || annotations.value().length == 0))
+ {
+ if (trace)
+ log.trace("Ignoring annotations lookup: " + annotations);
+
+ return;
+ }
+
+ Collection<Class<? extends Annotation>> annotationClasses = (annotations != null ? Arrays.asList(annotations.value()) : null);
+
// class
ClassInfo classInfo = info.getClassInfo();
- for(T plugin : classAnnotationPlugins)
+ for(T plugin : getPlugins(ElementType.TYPE, null, annotationClasses))
{
if (isApplyPhase)
applyPlugin(plugin, classInfo, retrieval, handle);
@@ -213,7 +276,7 @@
MetaData cmdr = retrieval.getComponentMetaData(cis);
if (cmdr != null)
{
- for(T plugin : constructorAnnotationPlugins)
+ for(T plugin : getPlugins(ElementType.CONSTRUCTOR, null, annotationClasses))
{
if (isApplyPhase)
applyPlugin(plugin, ci, cmdr, handle);
@@ -242,7 +305,7 @@
MetaData cmdr = retrieval.getComponentMetaData(sis);
if (cmdr != null)
{
- for(T plugin : fieldAnnotationPlugins)
+ for(T plugin : getPlugins(ElementType.FIELD, null, annotationClasses))
{
if (isApplyPhase)
applyPlugin(plugin, field, cmdr, handle);
@@ -254,26 +317,36 @@
log.trace("No annotations for field " + field.getName());
}
// apply setter and getter as well - if they exist
- handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getSetter(), "setter");
- handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getGetter(), "getter");
+ handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getSetter(), "setter", annotationClasses);
+ handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getGetter(), "getter", annotationClasses);
}
}
else if (trace)
log.trace("No properties");
+ // get Object's class info - it's cached so it shouldn't take much
+ TypeInfoFactory tif = classInfo.getTypeInfoFactory();
+ TypeInfo objectTI = tif.getTypeInfo(Object.class);
+
+ // method plugins
+ Iterable<T> methodPlugins = null;
+
// methods
Set<MethodInfo> methods = info.getMethods();
if (methods != null && methods.isEmpty() == false)
{
for(MethodInfo mi : methods)
{
- if (visitedMethods.contains(mi) == false)
+ ClassInfo declaringCI = mi.getDeclaringClass();
+ // direct == check is OK
+ if (declaringCI != objectTI && visitedMethods.contains(mi) == false)
{
Signature mis = new MethodSignature(mi);
MetaData cmdr = retrieval.getComponentMetaData(mis);
if (cmdr != null)
{
- for(T plugin : methodAnnotationPlugins)
+ methodPlugins = getPlugins(ElementType.METHOD, METHOD_FILTER, annotationClasses);
+ for(T plugin : methodPlugins)
{
if (isApplyPhase)
applyPlugin(plugin, mi, cmdr, handle);
@@ -301,7 +374,10 @@
MetaData cmdr = retrieval.getComponentMetaData(mis);
if (cmdr != null)
{
- for(T plugin : methodAnnotationPlugins)
+ if (methodPlugins == null)
+ methodPlugins = getPlugins(ElementType.METHOD, METHOD_FILTER, annotationClasses);
+
+ for(T plugin : methodPlugins)
{
if (isApplyPhase)
applyPlugin(plugin, smi, cmdr, handle);
@@ -331,6 +407,7 @@
* @param pi the property info
* @param method the method info
* @param type method type
+ * @param annotationClasses the possible annotation classes
* @throws Throwable for any error
*/
protected void handleMethod(
@@ -341,7 +418,8 @@
Set<MethodInfo> visitedMethods,
PropertyInfo pi,
MethodInfo method,
- String type)
+ String type,
+ Collection<Class<? extends Annotation>> annotationClasses)
throws Throwable
{
if (method == null)
@@ -352,7 +430,7 @@
MetaData cmdr = retrieval.getComponentMetaData(sis);
if (cmdr != null)
{
- for(T plugin : propertyAnnotationPlugins)
+ for(T plugin : getPlugins(ElementType.METHOD, PROPERTY_FILTER, annotationClasses))
{
if (isApplyPhase)
applyPlugin(plugin, pi, cmdr, handle);
Copied: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/MethodAnnotationPluginFilter.java (from rev 87584, projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/annotations/MethodAnnotationPluginFilter.java)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/MethodAnnotationPluginFilter.java (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/MethodAnnotationPluginFilter.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.kernel.plugins.annotations;
+
+/**
+ * Match only true method.
+ */
+class MethodAnnotationPluginFilter extends PropertyAnnotationPluginFilter
+{
+ public boolean accept(MetaDataAnnotationPlugin plugin)
+ {
+ // negate
+ return super.accept(plugin) == false;
+ }
+}
\ No newline at end of file
Copied: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/PropertyAnnotationPluginFilter.java (from rev 87584, projects/microcontainer/trunk/kernel/src/main/java/org/jboss/kernel/plugins/annotations/PropertyAnnotationPluginFilter.java)
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/PropertyAnnotationPluginFilter.java (rev 0)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/annotations/PropertyAnnotationPluginFilter.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.kernel.plugins.annotations;
+
+/**
+ * Match only properties.
+ */
+class PropertyAnnotationPluginFilter implements AnnotationPluginFilter
+{
+ public boolean accept(MetaDataAnnotationPlugin plugin)
+ {
+ return (plugin instanceof PropertyAware);
+ }
+}
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -32,11 +32,13 @@
import junit.framework.Test;
import org.jboss.beans.metadata.api.model.AutowireType;
+import org.jboss.beans.metadata.api.model.FromContext;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
import org.jboss.beans.metadata.plugins.InstallCallbackMetaData;
import org.jboss.beans.metadata.plugins.UninstallCallbackMetaData;
import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
import org.jboss.beans.metadata.spi.AnnotationMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
@@ -992,4 +994,24 @@
assertNotNull(annotations);
assertEquals(1, annotations.size());
}
+
+ public void testFromContextInject() throws Throwable
+ {
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("test");
+ ValueMetaData value = builder.createFromContextInject(FromContext.CONTEXT, "foobar", ControllerState.CREATE, Search.CHILD_ONLY_DEPTH);
+ builder.addPropertyMetaData("someproprerty", value);
+ BeanMetaData bmd = builder.getBeanMetaData();
+
+ Set<PropertyMetaData> properties = bmd.getProperties();
+ assertNotNull(properties);
+ assertEquals(1, properties.size());
+ PropertyMetaData pmd = properties.iterator().next();
+ ValueMetaData vmd = pmd.getValue();
+
+ AbstractInjectionValueMetaData inject = assertInstanceOf(vmd, AbstractInjectionValueMetaData.class);
+ assertEquals(FromContext.CONTEXT, inject.getFromContext());
+ assertEquals("foobar", inject.getUnderlyingValue());
+ assertEquals(ControllerState.CREATE, inject.getDependentState());
+ assertEquals(Search.CHILD_ONLY_DEPTH, inject.getSearch());
+ }
}
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/deployment/support/NullifyTestBean1.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/deployment/support/NullifyTestBean1.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/deployment/support/NullifyTestBean1.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -27,6 +27,7 @@
/**
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
+ at SuppressWarnings("unchecked")
public class NullifyTestBean1
{
public void setSomething(Set set)
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/inject/test/InjectionValueCallbackTestCase.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/inject/test/InjectionValueCallbackTestCase.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/inject/test/InjectionValueCallbackTestCase.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -49,8 +49,9 @@
KernelControllerContext context = getControllerContext("testObject", ControllerState.NOT_INSTALLED);
assertNull(context.getTarget());
assertEquals(context.getState(), ControllerState.NOT_INSTALLED);
-
- change(context, ControllerState.INSTALLED);
+
+ ControllerState state = change(context, ControllerState.INSTALLED);
+ assertEquals(ControllerState.INSTALLED, state);
PropertyInjectTestObject injectee = (PropertyInjectTestObject)context.getTarget();
assertNotNull(injectee);
assertNull(injectee.getTesterInterface());
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanNoInstall.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanNoInstall.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanNoInstall.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -2,7 +2,6 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
- <bean name="Bean" class="org.jboss.test.kernel.controller.support.TestBean">
- </bean>
+ <bean name="Bean" class="org.jboss.test.kernel.controller.support.TestBean"/>
</deployment>
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanWithSupply.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanWithSupply.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/controller/test/InstallErrorTestCase_BeanWithSupply.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -3,6 +3,7 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<bean name="Bean" class="org.jboss.test.kernel.controller.support.TestBean">
+ <supply>TestSupply</supply>
<install bean="Repository1" method="add">
<parameter><this/></parameter>
</install>
@@ -15,7 +16,6 @@
<uninstall bean="Repository2" method="remove">
<parameter><this/></parameter>
</uninstall>
- <supply>TestSupply</supply>
</bean>
</deployment>
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallDependencyXMLTestCase2.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallDependencyXMLTestCase2.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallDependencyXMLTestCase2.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -5,36 +5,36 @@
<install bean="Name1" method="addState" whenRequired="PreInstall">
<parameter><inject fromContext="state"/></parameter>
</install>
+ <install bean="Name1" method="addState" whenRequired="Described">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
+ <install bean="Name1" method="addState" whenRequired="Instantiated">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
+ <install bean="Name1" method="addState" whenRequired="Configured">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
+ <install bean="Name1" method="addState" whenRequired="Create">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
+ <install bean="Name1" method="addState" whenRequired="Start">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
<uninstall bean="Name1" method="removeState" whenRequired="PreInstall">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install bean="Name1" method="addState" whenRequired="Described">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall bean="Name1" method="removeState" whenRequired="Described">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install bean="Name1" method="addState" whenRequired="Instantiated">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall bean="Name1" method="removeState" whenRequired="Instantiated">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install bean="Name1" method="addState" whenRequired="Configured">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall bean="Name1" method="removeState" whenRequired="Configured">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install bean="Name1" method="addState" whenRequired="Create">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall bean="Name1" method="removeState" whenRequired="Create">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install bean="Name1" method="addState" whenRequired="Start">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall bean="Name1" method="removeState" whenRequired="Start">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallSelfDependencyXMLTestCase1.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallSelfDependencyXMLTestCase1.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/dependency/test/InstallSelfDependencyXMLTestCase1.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -5,24 +5,24 @@
<install method="addInstantiated" whenRequired="Instantiated">
<parameter><inject fromContext="state"/></parameter>
</install>
+ <install method="addConfigured" whenRequired="Configured">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
+ <install method="addCreate" whenRequired="Create">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
+ <install method="addStart" whenRequired="Start">
+ <parameter><inject fromContext="state"/></parameter>
+ </install>
<uninstall method="removeInstantiated" whenRequired="Instantiated">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install method="addConfigured" whenRequired="Configured">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall method="removeConfigured" whenRequired="Configured">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install method="addCreate" whenRequired="Create">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall method="removeCreate" whenRequired="Create">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
- <install method="addStart" whenRequired="Start">
- <parameter><inject fromContext="state"/></parameter>
- </install>
<uninstall method="removeStart" whenRequired="Start">
<parameter><inject fromContext="state"/></parameter>
</uninstall>
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataWithClassloaderTestCase.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataWithClassloaderTestCase.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataWithClassloaderTestCase.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -2,6 +2,10 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
+ <classloader>
+ <bean name="cl" class="org.jboss.test.kernel.deployment.support.NullClassLoader" />
+ </classloader>
+
<bean name="SimpleObject1" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<constructor>
<bean name="simple1" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean" />
@@ -22,10 +26,6 @@
</property>
</bean>
- <classloader>
- <bean name="cl" class="org.jboss.test.kernel.deployment.support.NullClassLoader" />
- </classloader>
-
<bean name="SimpleObject4" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<property name="beans">
<list>
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/SuperDemandAnnotationTestCase.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/SuperDemandAnnotationTestCase.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/org/jboss/test/kernel/deployment/test/SuperDemandAnnotationTestCase.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -15,8 +15,8 @@
<bean name="SuperDemandAnnotationPlugin" class="org.jboss.test.kernel.deployment.support.SuperDemandAnnotationPlugin" />
<bean name="Manager" class="org.jboss.test.kernel.deployment.support.SomeCacheTreeManager">
+ <annotation>@org.jboss.test.kernel.deployment.support.SuperDemand(demand="Partition", whenRequired="Configured", dependentState="Start")</annotation>
<property name="clusteredCache"><inject bean="HAPartitionCacheHandler" property="cache"/></property>
- <annotation>@org.jboss.test.kernel.deployment.support.SuperDemand(demand="Partition", whenRequired="Configured", dependentState="Start")</annotation>
</bean>
<bean name="HAPartitionCacheHandler" class="org.jboss.test.kernel.deployment.support.HAPartitionCacheHandler"/>
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/xml-test/org/jboss/test/kernel/annotations/test/override/testSetsOverride.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/xml-test/org/jboss/test/kernel/annotations/test/override/testSetsOverride.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/resources/xml-test/org/jboss/test/kernel/annotations/test/override/testSetsOverride.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -3,8 +3,8 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<bean name="Tester" class="org.jboss.test.kernel.annotations.support.SetsAnnotationTester">
+ <depends>deployer</depends>
<demand>deployer</demand>
- <depends>deployer</depends>
<supply>somesupply</supply>
</bean>
Modified: projects/microcontainer/branches/Branch_2_0/pom.xml
===================================================================
--- projects/microcontainer/branches/Branch_2_0/pom.xml 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/pom.xml 2009-04-20 16:28:53 UTC (rev 87586)
@@ -31,14 +31,14 @@
</modules>
<properties>
- <version.jboss.common.core>2.2.10.GA</version.jboss.common.core>
+ <version.jboss.common.core>2.2.12.GA</version.jboss.common.core>
<version.jboss.logging.spi>2.0.5.GA</version.jboss.logging.spi>
<version.jboss.logging.log4j>2.0.5.GA</version.jboss.logging.log4j>
- <version.jbossxb>2.0.0.GA</version.jbossxb>
- <version.jboss.man>2.0.0.GA</version.jboss.man>
- <version.jboss.vfs>2.1.0.GA</version.jboss.vfs>
- <version.javassist>3.9.0.GA</version.javassist>
- <version.jboss.aop>2.0.0.SP1</version.jboss.aop>
+ <version.jbossxb>2.0.1.CR1</version.jbossxb>
+ <version.jboss.man>2.1.0.CR8</version.jboss.man>
+ <version.jboss.vfs>2.2.0.M3</version.jboss.vfs>
+ <version.javassist>3.10.0.GA</version.javassist>
+ <version.jboss.aop>2.1.0.CR3</version.jboss.aop>
<version.org.jboss.reflect>2.0.2.GA</version.org.jboss.reflect>
<version.org.jboss.mdr>2.0.1.GA</version.org.jboss.mdr>
<version.org.jboss.test>1.1.1.GA</version.org.jboss.test>
Modified: projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringMicrocontainerTestDelegate.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringMicrocontainerTestDelegate.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringMicrocontainerTestDelegate.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -21,12 +21,12 @@
*/
package org.jboss.test.spring.test;
+import org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer;
import org.jboss.spring.deployment.xml.SpringSchemaInitializer;
import org.jboss.test.kernel.junit.MicrocontainerTestDelegate;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.resolver.MutableSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
-import org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer;
/**
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
@@ -41,10 +41,10 @@
public void setUp() throws Exception
{
SchemaBindingResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
- DefaultSchemaResolver defaultSchemaResolver = (DefaultSchemaResolver) resolver;
- defaultSchemaResolver.addSchemaInitializer("urn:jboss:spring-beans:2.0", new SpringSchemaInitializer());
- defaultSchemaResolver.addSchemaLocation("urn:jboss:spring-beans:2.0", "mc-spring-beans_2_0.xsd");
- defaultSchemaResolver.addSchemaParseAnnotations("urn:jboss:spring-beans:2.0", Boolean.FALSE);
+ MutableSchemaResolver defaultSchemaResolver = (MutableSchemaResolver) resolver;
+ defaultSchemaResolver.mapSchemaInitializer("urn:jboss:spring-beans:2.0", new SpringSchemaInitializer());
+ defaultSchemaResolver.mapSchemaLocation("urn:jboss:spring-beans:2.0", "mc-spring-beans_2_0.xsd");
+ defaultSchemaResolver.setParseXSDAnnotations("urn:jboss:spring-beans:2.0", Boolean.FALSE);
super.setUp();
}
Modified: projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringSchemaTestDelegate.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringSchemaTestDelegate.java 2009-04-20 16:12:11 UTC (rev 87585)
+++ projects/microcontainer/branches/Branch_2_0/spring-int/src/test/java/org/jboss/test/spring/test/TempSpringSchemaTestDelegate.java 2009-04-20 16:28:53 UTC (rev 87586)
@@ -25,7 +25,7 @@
import org.jboss.test.AbstractTestDelegate;
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.resolver.MutableSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
@@ -50,10 +50,10 @@
super.setUp();
unmarshallerFactory = UnmarshallerFactory.newInstance();
resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
- DefaultSchemaResolver defaultSchemaResolver = (DefaultSchemaResolver) resolver;
- defaultSchemaResolver.addSchemaInitializer("urn:jboss:spring-beans:2.0", new SpringSchemaInitializer());
- defaultSchemaResolver.addSchemaLocation("urn:jboss:spring-beans:2.0", "mc-spring-beans_2_0.xsd");
- defaultSchemaResolver.addSchemaParseAnnotations("urn:jboss:spring-beans:2.0", Boolean.FALSE);
+ MutableSchemaResolver defaultSchemaResolver = (MutableSchemaResolver) resolver;
+ defaultSchemaResolver.mapSchemaInitializer("urn:jboss:spring-beans:2.0", new SpringSchemaInitializer());
+ defaultSchemaResolver.mapSchemaLocation("urn:jboss:spring-beans:2.0", "mc-spring-beans_2_0.xsd");
+ defaultSchemaResolver.setParseXSDAnnotations("urn:jboss:spring-beans:2.0", Boolean.FALSE);
}
More information about the jboss-cvs-commits
mailing list