[jboss-cvs] JBossAS SVN: r64107 - in projects/microcontainer/trunk/kernel/src: resources/tests/org/jboss/test/kernel/deployment/test and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 18 02:15:51 EDT 2007
Author: alesj
Date: 2007-07-18 02:15:51 -0400 (Wed, 18 Jul 2007)
New Revision: 64107
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java
projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
Log:
Additional FromContext impls.
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java 2007-07-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java 2007-07-18 06:15:51 UTC (rev 64107)
@@ -23,6 +23,8 @@
import java.io.Serializable;
import java.lang.reflect.Method;
+import java.util.Set;
+import java.util.Collections;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.metadata.spi.MetaData;
@@ -31,6 +33,7 @@
import org.jboss.util.JBossStringBuilder;
import org.jboss.reflect.plugins.introspection.ReflectionUtils;
import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.beans.info.spi.BeanInfo;
/**
* Inject from controller context:
@@ -51,9 +54,15 @@
/** name */
public static final FromContext NAME = new NameFromContext("name");
+ /** alias */
+ public static final FromContext ALIAS = new AliasFromContext("alias");
+
/** metadata */
public static final FromContext METADATA = new MetaDataFromContext("metadata");
+ /** beaninfo */
+ public static final FromContext BEANINFO = new BeanInfoFromContext("beaninfo");
+
/** scope */
public static final FromContext SCOPE = new ScopeFromContext("scope");
@@ -78,21 +87,25 @@
/**
* Return from type.
*
- * @param optionString type
- * @return InjectionOption instance
+ * @param fromString type
+ * @return FromContext instance
*/
- public static FromContext getInstance(String optionString)
+ public static FromContext getInstance(String fromString)
{
- if (NAME.getFromString().equalsIgnoreCase(optionString))
+ if (NAME.getFromString().equalsIgnoreCase(fromString))
return NAME;
- else if (METADATA.getFromString().equalsIgnoreCase(optionString))
+ else if (ALIAS.getFromString().equalsIgnoreCase(fromString))
+ return ALIAS;
+ else if (METADATA.getFromString().equalsIgnoreCase(fromString))
return METADATA;
- else if (SCOPE.getFromString().equalsIgnoreCase(optionString))
+ else if (BEANINFO.getFromString().equalsIgnoreCase(fromString))
+ return BEANINFO;
+ else if (SCOPE.getFromString().equalsIgnoreCase(fromString))
return SCOPE;
- else if (ID.getFromString().equalsIgnoreCase(optionString))
+ else if (ID.getFromString().equalsIgnoreCase(fromString))
return ID;
else
- return new DynamicFromContext(optionString);
+ return new DynamicFromContext(fromString);
}
/**
@@ -147,6 +160,21 @@
}
}
+ private static class AliasFromContext extends FromContext
+ {
+ private static final long serialVersionUID = 1L;
+
+ public AliasFromContext(String fromString)
+ {
+ super(fromString);
+ }
+
+ public Set<Object> executeLookup(ControllerContext context)
+ {
+ return Collections.unmodifiableSet(context.getAliases());
+ }
+ }
+
private static class MetaDataFromContext extends FromContext<KernelControllerContext>
{
private static final long serialVersionUID = 1L;
@@ -162,6 +190,21 @@
}
}
+ private static class BeanInfoFromContext extends FromContext<KernelControllerContext>
+ {
+ private static final long serialVersionUID = 1L;
+
+ public BeanInfoFromContext(String fromString)
+ {
+ super(fromString);
+ }
+
+ public BeanInfo executeLookup(KernelControllerContext context)
+ {
+ return context.getBeanInfo();
+ }
+ }
+
private static class ScopeFromContext extends FromContext<KernelControllerContext>
{
private static final long serialVersionUID = 1L;
@@ -173,7 +216,8 @@
public ScopeKey executeLookup(KernelControllerContext context)
{
- return context.getScope();
+ ScopeKey key = context.getScope();
+ return key != null ? key.clone() : null;
}
}
@@ -234,6 +278,7 @@
Method method = findMethod(context.getClass());
if (method == null)
throw new IllegalArgumentException("No such getter on context class: " + getFromString());
+ // wrap as immutable?
return ReflectionUtils.invoke(method, context, new Object[]{});
}
}
Modified: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml 2007-07-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml 2007-07-18 06:15:51 UTC (rev 64107)
@@ -10,10 +10,21 @@
<property name="name"><inject fromContext="name"/></property>
</beanfactory>
+ <bean name="alias" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+ <alias>a1</alias>
+ <alias>a2</alias>
+ <alias>a3</alias>
+ <property name="alias"><inject fromContext="alias"/></property>
+ </bean>
+
<bean name="metadata" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
<property name="metadata"><inject fromContext="metadata"/></property>
</bean>
+ <bean name="beaninfo" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+ <property name="beaninfo"><inject fromContext="beaninfo"/></property>
+ </bean>
+
<bean name="scopekey" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
<property name="scopeKey"><inject fromContext="scope"/></property>
</bean>
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java 2007-07-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java 2007-07-18 06:15:51 UTC (rev 64107)
@@ -21,8 +21,11 @@
*/
package org.jboss.test.kernel.deployment.support;
+import java.util.Set;
+
import org.jboss.metadata.spi.MetaData;
import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.beans.info.spi.BeanInfo;
/**
* A simple bean with name
@@ -32,7 +35,9 @@
public class NameAwareBean
{
private String name;
+ private Set<Object> alias;
private MetaData metadata;
+ private BeanInfo beaninfo;
private ScopeKey scopeKey;
private Object dynamic;
@@ -80,4 +85,24 @@
{
this.dynamic = dynamic;
}
+
+ public Set<Object> getAlias()
+ {
+ return alias;
+ }
+
+ public void setAlias(Set<Object> alias)
+ {
+ this.alias = alias;
+ }
+
+ public BeanInfo getBeaninfo()
+ {
+ return beaninfo;
+ }
+
+ public void setBeaninfo(BeanInfo beaninfo)
+ {
+ this.beaninfo = beaninfo;
+ }
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java 2007-07-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java 2007-07-18 06:15:51 UTC (rev 64107)
@@ -21,10 +21,13 @@
*/
package org.jboss.test.kernel.deployment.test;
+import java.util.Set;
+
import junit.framework.Test;
import org.jboss.test.kernel.deployment.support.NameAwareBean;
import org.jboss.beans.metadata.spi.factory.BeanFactory;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.metadata.spi.MetaData;
import org.jboss.metadata.spi.scope.ScopeKey;
@@ -59,11 +62,25 @@
assertNotNull(b4);
assertEquals("set_name_factory", b4.getName());
+ NameAwareBean alias = (NameAwareBean)getBean("alias");
+ assertNotNull(alias);
+ Set<Object> aliases = alias.getAlias();
+ assertNotNull(aliases);
+ assertFalse(aliases.isEmpty());
+ assertTrue(aliases.contains("a1"));
+ assertTrue(aliases.contains("a2"));
+ assertTrue(aliases.contains("a3"));
+
NameAwareBean metadata = (NameAwareBean)getBean("metadata");
assertNotNull(metadata);
assertNotNull(metadata.getMetadata());
assertInstanceOf(metadata.getMetadata(), MetaData.class);
+ NameAwareBean beaninfo = (NameAwareBean)getBean("beaninfo");
+ assertNotNull(beaninfo);
+ assertNotNull(beaninfo.getBeaninfo());
+ assertInstanceOf(beaninfo.getBeaninfo(), BeanInfo.class);
+
NameAwareBean scopekey = (NameAwareBean)getBean("scopekey");
assertNotNull(scopekey);
assertNotNull(scopekey.getScopeKey());
More information about the jboss-cvs-commits
mailing list