[jboss-cvs] JBossAS SVN: r97040 - in projects/kernel/trunk/kernel: src/main/java/org/jboss/beans/metadata/plugins and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 26 11:31:56 EST 2009
Author: kabir.khan at jboss.com
Date: 2009-11-26 11:31:56 -0500 (Thu, 26 Nov 2009)
New Revision: 97040
Added:
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithOptionalType.xml
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithRequiredType.xml
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testOptionalBeanQualifiers.xml
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleOptionalBeanQualifiers.xml
Removed:
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithWantedType.xml
Modified:
projects/kernel/trunk/kernel/pom.xml
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanQualifierMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectQualifierMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/QualifierType.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassAndQualifierKey.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/QualifiersMdrUtil.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/QualifierTestCase.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/BeanQualifiersTestCase.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase.java
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testCompositeBeanQualifiers.xml
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndCompositeBeanQualifiers.xml
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndSimpleBeanQualifiers.xml
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleBeanQualifiers.xml
Log:
[JBKERNEL-63] Split bean level 'wanted' qualifiers to Optional and Required
Modified: projects/kernel/trunk/kernel/pom.xml
===================================================================
--- projects/kernel/trunk/kernel/pom.xml 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/pom.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -31,8 +31,6 @@
<!--testFailureIgnore>true</testFailureIgnore-->
<excludes>
<exclude>org/jboss/test/kernel/asynchronous/test/**</exclude>
- <exclude>org/jboss/test/kernel/qualifiers/test/**</exclude>
- <exclude>org/jboss/test/kernel/deployment/xml/test/Qualifier*TestCase.*</exclude>
</excludes>
</configuration>
</plugin>
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanQualifierMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanQualifierMetaData.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanQualifierMetaData.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -54,7 +54,11 @@
this.type = type;
if (type == QualifierType.SUPPLIED)
internalSetClassName(QualifiersMdrUtil.SUPPLIED_QUALIFIER_KEY);
+ else if (type == QualifierType.OPTIONAL)
+ internalSetClassName(QualifiersMdrUtil.OPTIONAL_QUALIFIER_KEY);
+ else if (type == QualifierType.REQUIRED)
+ internalSetClassName(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY);
else
- internalSetClassName(QualifiersMdrUtil.WANTED_QUALIFIER_KEY);
+ throw new IllegalArgumentException("NYI " + type);
}
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectQualifierMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectQualifierMetaData.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectQualifierMetaData.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -38,7 +38,7 @@
public AbstractInjectQualifierMetaData()
{
- internalSetClassName(QualifiersMdrUtil.WANTED_QUALIFIER_KEY);
+ internalSetClassName(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY);
}
@Override
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/QualifierType.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/QualifierType.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/QualifierType.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -29,6 +29,7 @@
* @version $Revision: 1.1 $
*/
public enum QualifierType {
- @XmlEnumValue("Supplied") SUPPLIED,
- @XmlEnumValue("Wanted") WANTED
+ @XmlEnumValue("Supplied") SUPPLIED,
+ @XmlEnumValue("Required") REQUIRED,
+ @XmlEnumValue("Optional") OPTIONAL
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -1205,11 +1205,17 @@
}
@Override
- public BeanMetaDataBuilder addWantedQualifiers(Object... qualifiers)
+ public BeanMetaDataBuilder addRequiredQualifiers(Object... qualifiers)
{
- return createQualifiers(QualifierType.WANTED, qualifiers);
+ return createQualifiers(QualifierType.REQUIRED, qualifiers);
}
+ @Override
+ public BeanMetaDataBuilder addOptionalQualifiers(Object... qualifiers)
+ {
+ return createQualifiers(QualifierType.OPTIONAL, qualifiers);
+ }
+
protected BeanMetaDataBuilder createQualifiers(QualifierType type, Object...qualifiers)
{
Set<RelatedClassMetaData> relatedClassMetaDatas = beanMetaData.getRelated();
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -1875,7 +1875,7 @@
/**
* Create qualifiers supplied by the bean. Beans using contextual injection by class
- * that have qualifiers either at the injection point or 'wanted' qualifiers at bean
+ * that have qualifiers either at the injection point or required/optional qualifiers at bean
* level will use these qualifiers to narrow down the set of beans of the required type
* for injection. Note that these qualifiers are stored in the set of related classes so
* take care not to call {@link #setRelated(Set)} after calling this method.
@@ -1889,19 +1889,31 @@
/**
* Create the default set of qualifiers we want this bean to use when doing contextual
- * injection. Only used if there are no qualifiers at the injection point. The qualifiers
- * are used to narrow down the set of beans of the required type for injection. Note that these
- * qualifiers are stored in the set of related classes so take care not to call
- * {@link #setRelated(Set)} after calling this method.
+ * injection. The qualifiers are used to narrow down the set of beans of the required
+ * type for injection. Note that these qualifiers are stored in the set of related classes
+ * so take care not to call {@link #setRelated(Set)} after calling this method.
*
* @see BeanMetaData#getRelated()
* @see #createSuppliedQualifier(Object...)
* @param qualifiers the default qualifiers we want this bean to require
* @return this builder
*/
- public abstract BeanMetaDataBuilder addWantedQualifiers(Object...qualifiers);
+ public abstract BeanMetaDataBuilder addRequiredQualifiers(Object...qualifiers);
/**
+ * Create the default set of optional qualifiers we want this bean to use when doing contextual
+ * injection. The qualifiers are used to narrow down the set of beans of the required
+ * type for injection. Note that these qualifiers are stored in the set of related classes
+ * so take care not to call {@link #setRelated(Set)} after calling this method.
+ *
+ * @see BeanMetaData#getRelated()
+ * @see #createSuppliedQualifier(Object...)
+ * @param qualifiers the default qualifiers we want this bean to require
+ * @return this builder
+ */
+ public abstract BeanMetaDataBuilder addOptionalQualifiers(Object...qualifiers);
+
+ /**
* Create a null value
*
* @return the null value
@@ -2100,7 +2112,7 @@
*
* @see BeanMetaData#isAutowireCandidate()
* @param the qualifiers to use to narrow down beans of the matching type. These will override the ones specified for the
- * whole bean in {@link #addWantedQualifiers(Object...)}
+ * whole bean in {@link #addRequiredQualifiers(Object...)}
* @return the contextual injection
*/
public ValueMetaData createContextualInject(Object...qualifiers)
@@ -2130,7 +2142,7 @@
* @param whenRequired when the injection is required. If null {@link ControllerState#CONFIGURED} is used.
* @param dependentState the required state of the injected bean. If null {@link ControllerState#INSTALLED} is used.
* @param the qualifiers to use to narrow down beans of the matching type. These will override the ones specified for the
- * whole bean in {@link #addWantedQualifiers(Object...)}
+ * whole bean in {@link #addRequiredQualifiers(Object...)}
* @return the contextual injection
*/
public ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, Object...qualifiers)
@@ -2166,7 +2178,7 @@
* @param autowire the autowire type. If null, the type is {@link AutowireType#BY_CLASS}
* @param option the inject option
* @param the qualifiers to use to narrow down beans of the matching type. These will override the ones specified for the
- * whole bean in {@link #addWantedQualifiers(Object...)}
+ * whole bean in {@link #addRequiredQualifiers(Object...)}
* @return the contextual injection
*/
public ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, AutowireType autowire, InjectOption option, Object...qualifiers)
@@ -2185,7 +2197,7 @@
* @param search the search info describing how to search for the injected bean if we have a hierarchy of
* {@link org.jboss.dependency.spi.Controller}s
* @param the qualifiers to use to narrow down beans of the matching type. These will override the ones specified for the
- * whole bean in {@link #addWantedQualifiers(Object...)}
+ * whole bean in {@link #addRequiredQualifiers(Object...)}
* @return the contextual injection
*/
public abstract ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, AutowireType autowire, InjectOption option, SearchInfo search, Object...qualifiers);
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassAndQualifierKey.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassAndQualifierKey.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassAndQualifierKey.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -69,17 +70,13 @@
if (contexts == null || contexts.size() == 0)
return null;
- List<ControllerContext> found;
- if (injectionPointQualifiers != null)
- found = getContextsWithAllQualifiers(injectionPointQualifiers, contexts);
- else
- {
- Set<Object> qualifiers = QualifiersMdrUtil.mergeWantedQualifiersFromMdr(context);
- if (qualifiers == null || qualifiers.size() == 0)
- return getFirstContext(contexts);
+ Set<Object> requiredQualifiers = (injectionPointQualifiers != null) ? injectionPointQualifiers : QualifiersMdrUtil.mergeRequiredQualifiersFromMdr(context);
+ Set<Object> optionalQualifiers = QualifiersMdrUtil.mergeOptionalQualifiersFromMdr(context);
+ if ((requiredQualifiers == null || requiredQualifiers.size() == 0) && (optionalQualifiers == null || optionalQualifiers.size() == 0))
+ return getFirstContext(contexts);
- found = getContextsWithMostQualifiers(qualifiers, contexts);
- }
+ List<ControllerContext> found = getContextWithAllRequiredAndMostOptionalQualifiers(requiredQualifiers, optionalQualifiers, contexts);
+
return getFirstContext(found);
}
@@ -147,7 +144,7 @@
return found;
}
- private List<ControllerContext> getContextsWithMostQualifiers(Set<Object> qualifiers, Set<ControllerContext> contexts)
+ private List<ControllerContext> getContextsWithMostQualifiers(Set<Object> qualifiers, Collection<ControllerContext> contexts)
{
int max = 0;
List<ControllerContext> found = new ArrayList<ControllerContext>();
@@ -198,6 +195,55 @@
return found;
}
+ private List<ControllerContext> getContextWithAllRequiredAndMostOptionalQualifiers(Set<Object> requiredQualifiers, Set<Object> optionalQualifiers, Collection<ControllerContext> contexts)
+ {
+ int max = 0;
+ List<ControllerContext> found = new ArrayList<ControllerContext>();
+
+ for (ControllerContext context : contexts)
+ {
+ Set<Object> suppliedQualifiers = QualifiersMdrUtil.mergeSuppliedQualifiersFromMdr(context);
+
+ int matches = 0;
+ boolean allTargetQualifiersMatched = true;
+ HashSet<Object> required = requiredQualifiers != null ? new HashSet<Object>(requiredQualifiers) : null;
+ if (suppliedQualifiers != null)
+ {
+ allTargetQualifiersMatched = true;
+
+ for (Object supplied : suppliedQualifiers)
+ {
+ if (required != null && required.remove(supplied))
+ {
+ matches++;
+ continue;
+ }
+ else if (optionalQualifiers != null && optionalQualifiers.contains(supplied))
+ {
+ matches++;
+ continue;
+ }
+ allTargetQualifiersMatched = false;
+ break;
+ }
+ }
+
+ if (allTargetQualifiersMatched && (required == null || required.size() == 0))
+ {
+ if (matches > max)
+ {
+ found.clear();
+ found.add(context);
+ max = matches;
+ }
+ else if (matches == max)
+ {
+ found.add(context);
+ }
+ }
+ }
+ return found;
+ }
@Override
protected void toString(JBossStringBuilder buffer)
@@ -205,7 +251,7 @@
buffer.append("class=");
buffer.append(type);
buffer.append(" qualifiers=");
- buffer.append(QualifiersMdrUtil.mergeWantedQualifiersFromMdr(context));
+ buffer.append(QualifiersMdrUtil.mergeRequiredQualifiersFromMdr(context));
}
@Override
@@ -213,8 +259,4 @@
{
toString(buffer);
}
-
-
-
-
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/QualifiersMdrUtil.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/QualifiersMdrUtil.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/QualifiersMdrUtil.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -35,6 +35,7 @@
import org.jboss.metadata.spi.retrieval.MetaDataItem;
import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.util.JBossObject;
import org.jboss.util.collection.ConcurrentSet;
/**
@@ -50,8 +51,12 @@
public final static String SUPPLIED_QUALIFIER_KEY = QualifiersMdrUtil.class.getSimpleName() + "#SUPPLIED_QUALIFIERS";
/** The key under which we will store a contexts wanted qualifier metadata */
- public final static String WANTED_QUALIFIER_KEY = QualifiersMdrUtil.class.getSimpleName() + "#WANTED_QUALIFIERS";
+ public final static String REQUIRED_QUALIFIER_KEY = QualifiersMdrUtil.class.getSimpleName() + "#REQUIRED_QUALIFIERS";
+
+ /** The key under which we will store a contexts required qualifier metadata */
+ public final static String OPTIONAL_QUALIFIER_KEY = QualifiersMdrUtil.class.getSimpleName() + "#OPTIONAL_QUALIFIERS";
+
/**
* Get the wanted qualifiers defined from the bean's metadata or in the Mdr.
* This method is used when creating dependency items, which is before the Mdr
@@ -61,7 +66,23 @@
*/
public static boolean hasWantedQualifiersInParentMdrOrBeanMetaData(KernelControllerContext context)
{
- Set<RelatedClassMetaData> md = getQualifiersMetaData(context, WANTED_QUALIFIER_KEY);
+ Set<RelatedClassMetaData> related = context.getBeanMetaData().getRelated();
+ if (related == null)
+ return false;
+ if (related.size() == 0)
+ return false;
+
+ Set<RelatedClassMetaData> md = null;
+ for (RelatedClassMetaData rcmd : related)
+ {
+ if (rcmd.getClassName().equals(REQUIRED_QUALIFIER_KEY) || rcmd.getClassName().equals(OPTIONAL_QUALIFIER_KEY))
+ {
+ if (md == null)
+ md = new HashSet<RelatedClassMetaData>();
+ md.add(rcmd);
+ }
+ }
+
if (md != null && md.size() > 0)
return true;
@@ -72,7 +93,7 @@
MetaData metaData = repository.getMetaData(key);
if (metaData != null)
{
- if (metaData.getMetaData(WANTED_QUALIFIER_KEY) != null)
+ if (metaData.getMetaData(REQUIRED_QUALIFIER_KEY) != null)
return true;
}
key = key.getParent();
@@ -100,27 +121,30 @@
}
Set<Object> suppliedSet = null;
- Set<Object> wantedSet = null;
+ Set<Object> requiredSet = null;
+ Set<Object> optionalSet = null;
for (RelatedClassMetaData rcmd : qualifiers)
{
- if (rcmd.getClassName().equals(SUPPLIED_QUALIFIER_KEY))
- {
- if (suppliedSet == null)
- suppliedSet = getQualifiersSet(retrieval, SUPPLIED_QUALIFIER_KEY, true);
- for (Object qualifier : rcmd.getEnabled())
- suppliedSet.add(qualifier);
- }
- else if (rcmd.getClassName().equals(WANTED_QUALIFIER_KEY))
- {
- if (wantedSet == null)
- wantedSet = getQualifiersSet(retrieval, WANTED_QUALIFIER_KEY, true);
- for (Object qualifier : rcmd.getEnabled())
- wantedSet.add(qualifier);
- }
+ if (JBossObject.equals(SUPPLIED_QUALIFIER_KEY, rcmd.getClassName()))
+ suppliedSet = addQualifiersToSet(suppliedSet, SUPPLIED_QUALIFIER_KEY, retrieval, rcmd);
+ else if (JBossObject.equals(REQUIRED_QUALIFIER_KEY, rcmd.getClassName()))
+ requiredSet = addQualifiersToSet(requiredSet, REQUIRED_QUALIFIER_KEY, retrieval, rcmd);
+ else if (JBossObject.equals(OPTIONAL_QUALIFIER_KEY, rcmd.getClassName()))
+ optionalSet = addQualifiersToSet(optionalSet, OPTIONAL_QUALIFIER_KEY, retrieval, rcmd);
}
}
}
+ private static Set<Object> addQualifiersToSet(Set<Object> qualifiers, String key, MetaDataRetrieval retrieval, RelatedClassMetaData rcmd)
+ {
+ if (qualifiers == null)
+ qualifiers = getQualifiersSet(retrieval, key, true);
+ for (Object qualifier : rcmd.getEnabled())
+ qualifiers.add(qualifier);
+
+ return qualifiers;
+ }
+
/**
* Removes the qualifiers for a context's bean metadata from the context's MDR metadata.
*
@@ -140,14 +164,17 @@
}
Set<Object> suppliedSet = getQualifiersSet(retrieval, SUPPLIED_QUALIFIER_KEY, false);
- Set<Object> wantedSet = getQualifiersSet(retrieval, WANTED_QUALIFIER_KEY, false);
+ Set<Object> requiredSet = getQualifiersSet(retrieval, REQUIRED_QUALIFIER_KEY, false);
+ Set<Object> optionalSet = getQualifiersSet(retrieval, OPTIONAL_QUALIFIER_KEY, false);
for (RelatedClassMetaData rcmd : qualifiers)
{
Set<Object> targetSet = null;
if (rcmd.getClassName().equals(SUPPLIED_QUALIFIER_KEY) && suppliedSet != null)
targetSet = suppliedSet;
- else if (rcmd.getClassName().equals(WANTED_QUALIFIER_KEY) && wantedSet != null)
- targetSet = wantedSet;
+ else if (rcmd.getClassName().equals(REQUIRED_QUALIFIER_KEY) && requiredSet != null)
+ targetSet = requiredSet;
+ else if (rcmd.getClassName().equals(OPTIONAL_QUALIFIER_KEY) && optionalSet != null)
+ targetSet = optionalSet;
if (targetSet != null)
{
@@ -157,8 +184,10 @@
}
if (suppliedSet != null && suppliedSet.size() == 0)
((MutableMetaData)retrieval).removeMetaData(SUPPLIED_QUALIFIER_KEY, Set.class);
- if (wantedSet != null && wantedSet.size() == 0)
- ((MutableMetaData)retrieval).removeMetaData(WANTED_QUALIFIER_KEY, Set.class);
+ if (requiredSet != null && requiredSet.size() == 0)
+ ((MutableMetaData)retrieval).removeMetaData(REQUIRED_QUALIFIER_KEY, Set.class);
+ if (optionalSet != null && optionalSet.size() == 0)
+ ((MutableMetaData)retrieval).removeMetaData(OPTIONAL_QUALIFIER_KEY, Set.class);
}
}
@@ -175,64 +204,29 @@
}
/**
- * Gets all the wanted qualifiers for the context from the MDR. The returned set combines the qualifiers
+ * Gets all the required qualifiers for the context from the MDR. The returned set combines the qualifiers
* found at all scope levels
*
* @param context the context
* @return the found qualifiers
*/
- public static Set<Object> mergeWantedQualifiersFromMdr(ControllerContext context)
+ public static Set<Object> mergeRequiredQualifiersFromMdr(ControllerContext context)
{
- return mergeQualifiersFromMdr(context, WANTED_QUALIFIER_KEY);
+ return mergeQualifiersFromMdr(context, REQUIRED_QUALIFIER_KEY);
}
-
- private static Set<RelatedClassMetaData> getQualifiersMetaData(KernelControllerContext context, String key)
+ /**
+ * Gets all the optional qualifiers for the context from the MDR. The returned set combines the qualifiers
+ * found at all scope levels
+ *
+ * @param context the context
+ * @return the found qualifiers
+ */
+ public static Set<Object> mergeOptionalQualifiersFromMdr(ControllerContext context)
{
- Set<RelatedClassMetaData> related = context.getBeanMetaData().getRelated();
- if (related == null)
- return null;
- if (related.size() == 0)
- return null;
-
- Set<RelatedClassMetaData> qualifiers = null;
- for (RelatedClassMetaData rcmd : related)
- {
- if (rcmd.getClassName().equals(key))
- {
- if (qualifiers == null)
- qualifiers = new HashSet<RelatedClassMetaData>();
- qualifiers.add(rcmd);
- }
- }
-
- return qualifiers;
+ return mergeQualifiersFromMdr(context, OPTIONAL_QUALIFIER_KEY);
}
- private static Set<Object> getQualifiersSet(MetaDataRetrieval retrieval, String key, boolean create)
- {
- MetaDataItem<?> item = retrieval.retrieveMetaData(key);
- //TODO - The following is not threadsafe
- Set<Object> set = null;
- if (item == null)
- {
- if (create)
- {
- set = new ConcurrentSet<Object>();
- ((MutableMetaData)retrieval).addMetaData(key, set, Set.class);
- }
- else
- {
- return null;
- }
- }
- else
- {
- set = (Set<Object>)item.getValue();
- }
- return set;
- }
-
private static Set<Object> mergeQualifiersFromMdr(ControllerContext context, String key)
{
if (context instanceof KernelControllerContext == false)
@@ -263,4 +257,29 @@
}
return set;
}
+
+ private static Set<Object> getQualifiersSet(MetaDataRetrieval retrieval, String key, boolean create)
+ {
+ MetaDataItem<?> item = retrieval.retrieveMetaData(key);
+ //TODO - The following is not threadsafe
+ Set<Object> set = null;
+ if (item == null)
+ {
+ if (create)
+ {
+ set = new ConcurrentSet<Object>();
+ ((MutableMetaData)retrieval).addMetaData(key, set, Set.class);
+ }
+ else
+ {
+ return null;
+ }
+ }
+ else
+ {
+ set = (Set<Object>)item.getValue();
+ }
+ return set;
+ }
+
}
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/QualifierTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/QualifierTestCase.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/QualifierTestCase.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -108,16 +108,26 @@
}
}
- public void testBeanQualifierWithWantedType() throws Exception
+ public void testBeanQualifierWithRequiredType() throws Exception
{
- RelatedClassMetaData related = getRelated("QualifierBeanWithWantedType.xml");
- assertEquals(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, related.getClassName());
+ RelatedClassMetaData related = getRelated("QualifierBeanWithRequiredType.xml");
+ assertEquals(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY, related.getClassName());
Set<Object> enabled = related.getEnabled();
assertNotNull(enabled);
assertEquals(1, enabled.size());
assertEquals("aop", enabled.iterator().next());
}
+ public void testBeanQualifierWithOptionalType() throws Exception
+ {
+ RelatedClassMetaData related = getRelated("QualifierBeanWithOptionalType.xml");
+ assertEquals(QualifiersMdrUtil.OPTIONAL_QUALIFIER_KEY, related.getClassName());
+ Set<Object> enabled = related.getEnabled();
+ assertNotNull(enabled);
+ assertEquals(1, enabled.size());
+ assertEquals("aop", enabled.iterator().next());
+ }
+
public void testBeanQualifierWithSuppliedType() throws Exception
{
RelatedClassMetaData related = getRelated("QualifierBeanWithSuppliedType.xml");
@@ -152,7 +162,7 @@
ValueMetaData valueMetaData = property.getValue();
assertInstanceOf(valueMetaData, AbstractInjectionValueMetaData.class);
RelatedClassMetaData related = checkRelated(((AbstractInjectionValueMetaData)valueMetaData).getQualifiers());
- assertEquals(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, related.getClassName());
+ assertEquals(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY, related.getClassName());
Set<Object> enabled = related.getEnabled();
assertNotNull(enabled);
assertEquals(2, enabled.size());
@@ -173,7 +183,7 @@
ValueMetaData valueMetaData = params.get(0).getValue();
assertInstanceOf(valueMetaData, AbstractInjectionValueMetaData.class);
RelatedClassMetaData related = checkRelated(((AbstractInjectionValueMetaData)valueMetaData).getQualifiers());
- assertEquals(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, related.getClassName());
+ assertEquals(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY, related.getClassName());
Set<Object> enabled = related.getEnabled();
assertNotNull(enabled);
assertEquals(1, enabled.size());
@@ -191,7 +201,7 @@
ValueMetaData valueMetaData = params.get(0).getValue();
assertInstanceOf(valueMetaData, AbstractInjectionValueMetaData.class);
RelatedClassMetaData related = checkRelated(((AbstractInjectionValueMetaData)valueMetaData).getQualifiers());
- assertEquals(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, related.getClassName());
+ assertEquals(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY, related.getClassName());
Set<Object> enabled = related.getEnabled();
assertNotNull(enabled);
assertEquals(1, enabled.size());
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/BeanQualifiersTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/BeanQualifiersTestCase.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/BeanQualifiersTestCase.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -55,15 +55,13 @@
public void testContextsMDRHasQualifiers() throws Throwable
{
- MemoryMetaDataLoader loader = new MemoryMetaDataLoader(ScopeKey.DEFAULT_SCOPE);
- getMetaDataRepository().getMetaDataRepository().addMetaDataRetrieval(loader);
-
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers("other", "other2");
- bean2Builder.addWantedQualifiers("wanted1");
+ bean2Builder.addSuppliedQualifiers("supplied1", "supplied2");
+ bean2Builder.addRequiredQualifiers("required1");
+ bean2Builder.addOptionalQualifiers("optional1", "optional2", "optional3");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
try
@@ -74,41 +72,52 @@
Set<Object> set = QualifiersMdrUtil.mergeSuppliedQualifiersFromMdr(bean1Context);
assertNull(set);
+ set = QualifiersMdrUtil.mergeRequiredQualifiersFromMdr(bean1Context);
+ assertNull(set);
+
+ set = QualifiersMdrUtil.mergeOptionalQualifiersFromMdr(bean1Context);
+ assertNull(set);
+
set = QualifiersMdrUtil.mergeSuppliedQualifiersFromMdr(bean2Context);
assertNotNull(set);
- assertTrue(set.contains("other"));
- assertTrue(set.contains("other2"));
+ assertTrue(set.contains("supplied1"));
+ assertTrue(set.contains("supplied2"));
assertEquals(2, set.size());
- set = QualifiersMdrUtil.mergeWantedQualifiersFromMdr(bean1Context);
- assertNull(set);
+ set = QualifiersMdrUtil.mergeRequiredQualifiersFromMdr(bean2Context);
+ assertNotNull(set);
+ assertTrue(set.contains("required1"));
+ assertEquals(1, set.size());
- set = QualifiersMdrUtil.mergeWantedQualifiersFromMdr(bean2Context);
+ set = QualifiersMdrUtil.mergeOptionalQualifiersFromMdr(bean2Context);
assertNotNull(set);
- assertTrue(set.contains("wanted1"));
- assertEquals(1, set.size());
+ assertTrue(set.contains("optional1"));
+ assertTrue(set.contains("optional2"));
+ assertTrue(set.contains("optional3"));
+ assertEquals(3, set.size());
}
finally
{
undeploy(bean1Context);
undeploy(bean2Context);
- getMetaDataRepository().getMetaDataRepository().removeMetaDataRetrieval(ScopeKey.DEFAULT_SCOPE);
}
}
public void testContextsMDRHasQualifiersFromAllLevels() throws Throwable
{
MemoryMetaDataLoader loader = new MemoryMetaDataLoader(ScopeKey.DEFAULT_SCOPE);
- loader.addMetaData(QualifiersMdrUtil.SUPPLIED_QUALIFIER_KEY, Collections.singleton("test"), Set.class);
- loader.addMetaData(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, Collections.singleton("wanted1"), Set.class);
+ loader.addMetaData(QualifiersMdrUtil.SUPPLIED_QUALIFIER_KEY, Collections.singleton("supplied1"), Set.class);
+ loader.addMetaData(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY, Collections.singleton("wanted1"), Set.class);
+ loader.addMetaData(QualifiersMdrUtil.OPTIONAL_QUALIFIER_KEY, Collections.singleton("optional1"), Set.class);
getMetaDataRepository().getMetaDataRepository().addMetaDataRetrieval(loader);
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers("other");
- bean2Builder.addWantedQualifiers("wanted2");
+ bean2Builder.addSuppliedQualifiers("supplied2");
+ bean2Builder.addRequiredQualifiers("wanted2");
+ bean2Builder.addOptionalQualifiers("optional2");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
try
@@ -117,26 +126,37 @@
assertBean("bean2", Bean.class);
Set<Object> set = QualifiersMdrUtil.mergeSuppliedQualifiersFromMdr(bean1Context);
assertNotNull(set);
- assertTrue(set.contains("test"));
+ assertTrue(set.contains("supplied1"));
assertEquals(1, set.size());
-
+
+ set = QualifiersMdrUtil.mergeRequiredQualifiersFromMdr(bean1Context);
+ assertNotNull(set);
+ assertTrue(set.contains("wanted1"));
+ assertEquals(1, set.size());
+
+ set = QualifiersMdrUtil.mergeOptionalQualifiersFromMdr(bean1Context);
+ assertNotNull(set);
+ assertTrue(set.contains("optional1"));
+ assertEquals(1, set.size());
+
set = QualifiersMdrUtil.mergeSuppliedQualifiersFromMdr(bean2Context);
assertNotNull(set);
- assertTrue(set.contains("other"));
- assertTrue(set.contains("test"));
+ assertTrue(set.contains("supplied1"));
+ assertTrue(set.contains("supplied2"));
assertEquals(2, set.size());
- set = QualifiersMdrUtil.mergeWantedQualifiersFromMdr(bean1Context);
- assertNotNull(set);
- assertTrue(set.contains("wanted1"));
- assertEquals(1, set.size());
- set = QualifiersMdrUtil.mergeWantedQualifiersFromMdr(bean2Context);
+ set = QualifiersMdrUtil.mergeRequiredQualifiersFromMdr(bean2Context);
assertNotNull(set);
assertTrue(set.contains("wanted1"));
assertTrue(set.contains("wanted2"));
assertEquals(2, set.size());
+ set = QualifiersMdrUtil.mergeOptionalQualifiersFromMdr(bean2Context);
+ assertNotNull(set);
+ assertTrue(set.contains("optional1"));
+ assertTrue(set.contains("optional2"));
+ assertEquals(2, set.size());
}
finally
{
@@ -157,7 +177,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test");
+ targetBuilder.addRequiredQualifiers("test");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -187,7 +207,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test");
+ targetBuilder.addRequiredQualifiers("test");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -203,7 +223,7 @@
}
}
- public void testWantedQualifiersNotIncludingAllBeanQualifiers() throws Throwable
+ public void testRequiredQualifiersNotIncludingAllBeanQualifiers() throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
bean1Builder.addSuppliedQualifiers("test", "other");
@@ -215,7 +235,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test");
+ targetBuilder.addRequiredQualifiers("test");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -231,9 +251,87 @@
}
}
- public void testMoreWantedQualifiersThanBeanQualifiers() throws Throwable
+ public void testOptionalQualifiersOnly() throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addSuppliedQualifiers("test");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addOptionalQualifiers("test");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
+ assertBean("bean1", Bean.class);
+ Bean bean2 = assertBean("bean2", Bean.class);
+ TargetBean target = assertBean("target", TargetBean.class);
+ assertNotNull(target.getBean());
+ assertSame(bean2, target.getBean());
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(bean2Context);
+ undeploy(targetContext);
+ }
+ }
+
+ public void testNoopOptionalQualifiers() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addOptionalQualifiers("test", "mock");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
+ Bean bean1 = assertBean("bean1", Bean.class);
+ TargetBean target = assertBean("target", TargetBean.class);
+ assertNotNull(target.getBean());
+ assertSame(bean1, target.getBean());
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(targetContext);
+ }
+ }
+
+ public void testNoopOptionalQualifiersAndAmbiguity() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addOptionalQualifiers("test", "mock");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
+ assertBean("bean1", Bean.class);
+ assertBean("bean2", Bean.class);
+ assertNoBean("target");
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(bean2Context);
+ undeploy(targetContext);
+ }
+ }
+
+ public void testMoreRequiredQualifiersThanBeanQualifiers() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
@@ -243,10 +341,38 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test", "mock");
+ targetBuilder.addRequiredQualifiers("test", "mock");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
+ assertBean("bean1", Bean.class);
+ assertBean("bean2", Bean.class);
+ assertNoBean("target");
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(bean2Context);
+ undeploy(targetContext);
+ }
+ }
+
+ public void testMoreOptionalQualifiersThanBeanQualifiers() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ bean1Builder.addSuppliedQualifiers("test");
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addSuppliedQualifiers("other");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addOptionalQualifiers("test", "mock");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
Bean bean1 = assertBean("bean1", Bean.class);
assertBean("bean2", Bean.class);
TargetBean target = assertBean("target", TargetBean.class);
@@ -261,22 +387,52 @@
}
}
- public void testMoreWantedQualifiersThanBeanQualifiersMostSelected() throws Throwable
+ public void testRequiredQualifierNotMatchedOptionalMatched() throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers("test", "other");
+ bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers("test");
+ bean2Builder.addSuppliedQualifiers("other");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test", "other", "mock");
+ targetBuilder.addRequiredQualifiers("mock");
+ targetBuilder.addOptionalQualifiers("test");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
+ assertBean("bean1", Bean.class);
+ assertBean("bean2", Bean.class);
+ assertNoBean("target");
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(bean2Context);
+ undeploy(targetContext);
+ }
+ }
+
+ public void testRequiredQualifierMatchedOptionalNotMatched() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ bean1Builder.addSuppliedQualifiers("test");
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addSuppliedQualifiers("other");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addRequiredQualifiers("test");
+ targetBuilder.addOptionalQualifiers("mock");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
Bean bean1 = assertBean("bean1", Bean.class);
assertBean("bean2", Bean.class);
TargetBean target = assertBean("target", TargetBean.class);
@@ -291,19 +447,51 @@
}
}
- public void testMoreWantedQualifiersThanBeanQualifiersMostSelected2() throws Throwable
+ public void testMoreOptionalQualifiersThanBeanQualifiersMostSelected() throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ bean1Builder.addSuppliedQualifiers("test", "other", "another");
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addSuppliedQualifiers("test", "another");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addRequiredQualifiers("test");
+ targetBuilder.addOptionalQualifiers("other", "another", "mock");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
+ Bean bean1 = assertBean("bean1", Bean.class);
+ assertBean("bean2", Bean.class);
+ TargetBean target = assertBean("target", TargetBean.class);
+ assertNotNull(target.getBean());
+ assertSame(bean1, target.getBean());
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(bean2Context);
+ undeploy(targetContext);
+ }
+ }
+
+ public void testMoreOptionalQualifiersThanBeanQualifiersMostSelected2() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers("test", "other");
+ bean2Builder.addSuppliedQualifiers("test", "other", "another");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test", "other", "mock");
+ targetBuilder.addRequiredQualifiers("test");
+ targetBuilder.addOptionalQualifiers("other", "another", "mock");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -321,7 +509,7 @@
}
}
- public void testMoreWantedQualifiersThanBeanQualifiersAmbiguity() throws Throwable
+ public void testMoreOptionalQualifiersThanBeanQualifiersAmbiguity() throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
bean1Builder.addSuppliedQualifiers("test");
@@ -333,7 +521,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- bean1Builder.addWantedQualifiers("test", "other");
+ bean1Builder.addOptionalQualifiers("test", "other");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -360,7 +548,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test");
+ targetBuilder.addRequiredQualifiers("test");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -393,7 +581,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("test", "other");
+ targetBuilder.addRequiredQualifiers("test", "other");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -412,10 +600,10 @@
}
}
- public void testWantedQualifiersFromHigherLevel() throws Throwable
+ public void testRequiredQualifiersFromHigherLevel() throws Throwable
{
MemoryMetaDataLoader loader = new MemoryMetaDataLoader(ScopeKey.DEFAULT_SCOPE);
- loader.addMetaData(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, Collections.singleton("test"), Set.class);
+ loader.addMetaData(QualifiersMdrUtil.REQUIRED_QUALIFIER_KEY, Collections.singleton("test"), Set.class);
getMetaDataRepository().getMetaDataRepository().addMetaDataRetrieval(loader);
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
@@ -440,10 +628,10 @@
}
}
- public void testWantedQualifiersFromHigherLevelAndInstance() throws Throwable
+ public void testOptionalQualifiersFromHigherLevelAndRequiredOnInstance() throws Throwable
{
MemoryMetaDataLoader loader = new MemoryMetaDataLoader(ScopeKey.DEFAULT_SCOPE);
- loader.addMetaData(QualifiersMdrUtil.WANTED_QUALIFIER_KEY, Collections.singleton("test"), Set.class);
+ loader.addMetaData(QualifiersMdrUtil.OPTIONAL_QUALIFIER_KEY, Collections.singleton("test"), Set.class);
getMetaDataRepository().getMetaDataRepository().addMetaDataRetrieval(loader);
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
@@ -456,7 +644,7 @@
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
targetBuilder.setAutowireType(AutowireType.BY_CLASS);
- targetBuilder.addWantedQualifiers("other");
+ targetBuilder.addRequiredQualifiers("other");
KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
try
{
@@ -474,4 +662,39 @@
getMetaDataRepository().getMetaDataRepository().removeMetaDataRetrieval(ScopeKey.DEFAULT_SCOPE);
}
}
+
+ public void testOptionalQualifiersFromHigherLevelResolvingInstanceAmbiguity() throws Throwable
+ {
+ MemoryMetaDataLoader loader = new MemoryMetaDataLoader(ScopeKey.DEFAULT_SCOPE);
+ loader.addMetaData(QualifiersMdrUtil.OPTIONAL_QUALIFIER_KEY, Collections.singleton("test"), Set.class);
+ getMetaDataRepository().getMetaDataRepository().addMetaDataRetrieval(loader);
+
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ bean1Builder.addSuppliedQualifiers("other", "test");
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addSuppliedQualifiers("other");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetBean.class.getName());
+ targetBuilder.setAutowireType(AutowireType.BY_CLASS);
+ targetBuilder.addRequiredQualifiers("other");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+ try
+ {
+ Bean bean1 = assertBean("bean1", Bean.class);
+ assertBean("bean2", Bean.class);
+ TargetBean target = assertBean("target", TargetBean.class);
+ assertNotNull(target.getBean());
+ assertSame(bean1, target.getBean());
+ }
+ finally
+ {
+ undeploy(bean1Context);
+ undeploy(bean2Context);
+ undeploy(targetContext);
+ getMetaDataRepository().getMetaDataRepository().removeMetaDataRetrieval(ScopeKey.DEFAULT_SCOPE);
+ }
+ }
}
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -68,7 +68,7 @@
private <T extends Target> void testSimpleQualifiers(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test");
+ bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
@@ -109,15 +109,15 @@
private <T extends Target> void testNeedsAllQualifiers(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test1", "test2");
+ bean1Builder.addSuppliedQualifiers("test1", "test2");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers(bean2Builder, "test1", "test3", "test2");
+ bean2Builder.addSuppliedQualifiers("test1", "test3", "test2");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
BeanMetaDataBuilder bean3Builder = BeanMetaDataBuilder.createBuilder("bean3", Bean.class.getName());
- bean3Builder.addSuppliedQualifiers(bean3Builder, "test2", "test3");
+ bean3Builder.addSuppliedQualifiers("test2", "test3");
KernelControllerContext bean3Context = deploy(bean3Builder.getBeanMetaData());
KernelControllerContext targetContext = deploy(createTargetMetaData(type, "test1", "test2", "test3"));
@@ -157,11 +157,11 @@
private <T extends Target> void testNoContextHasAllQualifiers(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test");
+ bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers(bean2Builder, "other");
+ bean2Builder.addSuppliedQualifiers("other");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
KernelControllerContext targetContext = deploy(createTargetMetaData(type, "test", "other"));
@@ -197,11 +197,11 @@
private <T extends Target> void testTwoContextsHaveAllRequiredQualifiers(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test1", "test2");
+ bean1Builder.addSuppliedQualifiers("test1", "test2");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers(bean2Builder, "test1", "test2");
+ bean2Builder.addSuppliedQualifiers("test1", "test2");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
KernelControllerContext targetContext = deploy(createTargetMetaData(type, "test1", "test2"));
@@ -237,11 +237,11 @@
private <T extends Target> void testTwoContextsHaveMoreThanRequiredQualifiers(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test1", "test2", "extra1");
+ bean1Builder.addSuppliedQualifiers("test1", "test2", "extra1");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers(bean2Builder, "test1", "test2", "extra2");
+ bean2Builder.addSuppliedQualifiers("test1", "test2", "extra2");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
KernelControllerContext targetContext = deploy(createTargetMetaData(type, "test1", "test2"));
@@ -277,11 +277,11 @@
private <T extends Target> void testBeanQualifiersIgnoredWhenQualifiersPresent(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test");
+ bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers(bean2Builder, "other");
+ bean2Builder.addSuppliedQualifiers("other");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
KernelControllerContext targetContext = deploy(addWantedQualifiers(createTargetMetaData(type, "test"), "ignored"));
@@ -319,11 +319,11 @@
private <T extends Target> void testBeanQualifiersIgnoredWhenQualifiersPresent2(Class<T> targetClass, TargetType type) throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
- bean1Builder.addSuppliedQualifiers(bean1Builder, "test");
+ bean1Builder.addSuppliedQualifiers("test");
KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
- bean2Builder.addSuppliedQualifiers(bean2Builder, "other");
+ bean2Builder.addSuppliedQualifiers("other");
KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
KernelControllerContext targetContext = deploy(addWantedQualifiers(createTargetMetaData(type, "injectionpoint"), "test"));
@@ -344,7 +344,7 @@
private BeanMetaData addWantedQualifiers(BeanMetaData bmd, Object...qualifiers)
{
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(bmd);
- builder.addWantedQualifiers(builder, qualifiers);
+ builder.addRequiredQualifiers(builder, qualifiers);
return builder.getBeanMetaData();
}
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase.java 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase.java 2009-11-26 16:31:56 UTC (rev 97040)
@@ -67,6 +67,16 @@
assertEquals(bean, target.getBean());
}
+ public void testSimpleOptionalBeanQualifiers()
+ {
+ assertBean("bean1", Bean.class);
+ Bean bean = assertBean("bean2", Bean.class);
+ assertBean("bean3", Bean.class);
+
+ TargetBean target = assertBean("target", TargetBean.class);
+ assertEquals(bean, target.getBean());
+ }
+
public void testPropertyAndSimpleBeanQualifiers()
{
assertBean("bean1", Bean.class);
Added: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithOptionalType.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithOptionalType.xml (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithOptionalType.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
+ <qualifier type="Optional">aop</qualifier>
+</bean>
Copied: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithRequiredType.xml (from rev 96942, projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithWantedType.xml)
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithRequiredType.xml (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithRequiredType.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
+ <qualifier type="Required">aop</qualifier>
+</bean>
Deleted: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithWantedType.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithWantedType.xml 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithWantedType.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
- <qualifier type="Wanted">aop</qualifier>
-</bean>
Modified: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testCompositeBeanQualifiers.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testCompositeBeanQualifiers.xml 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testCompositeBeanQualifiers.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -48,7 +48,7 @@
</bean>
<bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetBean">
- <qualifier type="Wanted">
+ <qualifier type="Required">
<javabean xmlns="urn:jboss:javabean:2.0" class="java.lang.String">
<constructor>
<parameter>test1</parameter>
Added: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testOptionalBeanQualifiers.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testOptionalBeanQualifiers.xml (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testOptionalBeanQualifiers.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="bean1" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <qualifier>test1</qualifier>
+ <qualifier>test2</qualifier>
+ </bean>
+
+ <bean name="bean2" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <qualifier>test3</qualifier>
+ <qualifier>test2</qualifier>
+ <qualifier>test1</qualifier>
+ </bean>
+
+ <bean name="bean3" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <qualifier>test</qualifier>
+ </bean>
+
+ <bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetBean">
+ <qualifier type="Required">test1</qualifier>
+ <qualifier type="Required">test2</qualifier>
+ <qualifier type="Required">test3</qualifier>
+ </bean>
+
+</deployment>
Modified: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndCompositeBeanQualifiers.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndCompositeBeanQualifiers.xml 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndCompositeBeanQualifiers.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -28,7 +28,7 @@
</bean>
<bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetPropertyBean">
- <qualifier type="Wanted">
+ <qualifier type="Required">
<javabean xmlns="urn:jboss:javabean:2.0" class="java.lang.String">
<constructor>
<parameter>test1</parameter>
Modified: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndSimpleBeanQualifiers.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndSimpleBeanQualifiers.xml 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testPropertyAndSimpleBeanQualifiers.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -12,8 +12,8 @@
</bean>
<bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetPropertyBean">
- <qualifier type="Wanted">test1</qualifier>
- <qualifier type="Wanted">test2</qualifier>
+ <qualifier type="Required">test1</qualifier>
+ <qualifier type="Required">test2</qualifier>
<property name="bean"><inject/></property>
</bean>
Modified: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleBeanQualifiers.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleBeanQualifiers.xml 2009-11-26 16:26:16 UTC (rev 97039)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleBeanQualifiers.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -18,9 +18,9 @@
</bean>
<bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetBean">
- <qualifier type="Wanted">test1</qualifier>
- <qualifier type="Wanted">test2</qualifier>
- <qualifier type="Wanted">test3</qualifier>
+ <qualifier type="Required">test1</qualifier>
+ <qualifier type="Required">test2</qualifier>
+ <qualifier type="Required">test3</qualifier>
</bean>
</deployment>
Copied: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleOptionalBeanQualifiers.xml (from rev 96942, projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleBeanQualifiers.xml)
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleOptionalBeanQualifiers.xml (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersXmlTestCase#testSimpleOptionalBeanQualifiers.xml 2009-11-26 16:31:56 UTC (rev 97040)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="bean1" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <qualifier>test1</qualifier>
+ <qualifier>test2</qualifier>
+ </bean>
+
+ <bean name="bean2" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <qualifier>test3</qualifier>
+ <qualifier>test2</qualifier>
+ <qualifier>test1</qualifier>
+ </bean>
+
+ <bean name="bean3" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <qualifier>test</qualifier>
+ </bean>
+
+ <bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetBean">
+ <qualifier type="Required">test1</qualifier>
+ <qualifier type="Required">test2</qualifier>
+ <qualifier type="Optional">test3</qualifier>
+ </bean>
+
+</deployment>
More information about the jboss-cvs-commits
mailing list