[jboss-cvs] JBossAS SVN: r64135 - in projects/microcontainer/trunk: container/src/main/org/jboss/beans/info/spi/helpers and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 19 09:34:34 EDT 2007
Author: alesj
Date: 2007-07-19 09:34:34 -0400 (Thu, 19 Jul 2007)
New Revision: 64135
Added:
projects/microcontainer/trunk/container/src/main/org/jboss/beans/info/spi/helpers/
projects/microcontainer/trunk/container/src/main/org/jboss/beans/info/spi/helpers/UnmodifiableBeanInfo.java
projects/microcontainer/trunk/container/src/main/org/jboss/metadata/spi/helpers/
projects/microcontainer/trunk/container/src/main/org/jboss/metadata/spi/helpers/UnmodifiableMetaData.java
projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.java
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
Log:
Unmodifiable wrappers.
Added: projects/microcontainer/trunk/container/src/main/org/jboss/beans/info/spi/helpers/UnmodifiableBeanInfo.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/beans/info/spi/helpers/UnmodifiableBeanInfo.java (rev 0)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/beans/info/spi/helpers/UnmodifiableBeanInfo.java 2007-07-19 13:34:34 UTC (rev 64135)
@@ -0,0 +1,206 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt 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.info.spi.helpers;
+
+import java.util.Set;
+import java.util.List;
+
+import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.beans.info.spi.EventInfo;
+import org.jboss.beans.info.spi.BeanInfoFactory;
+import org.jboss.reflect.spi.ClassInfo;
+import org.jboss.reflect.spi.ConstructorInfo;
+import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.joinpoint.spi.JoinpointFactory;
+import org.jboss.classadapter.spi.DependencyBuilderListItem;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.util.JBossStringBuilder;
+import org.jboss.util.JBossObject;
+
+/**
+ * An unmodifiable view of the specified bean info instance.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class UnmodifiableBeanInfo extends JBossObject implements BeanInfo
+{
+ private BeanInfo delegate;
+
+ public UnmodifiableBeanInfo(BeanInfo delegate)
+ {
+ if (delegate == null)
+ throw new IllegalArgumentException("Null bean info.");
+ this.delegate = delegate;
+ }
+
+ public String getName()
+ {
+ return delegate.getName();
+ }
+
+ public ClassInfo getClassInfo()
+ {
+ return delegate.getClassInfo();
+ }
+
+ public JoinpointFactory getJoinpointFactory()
+ {
+ return delegate.getJoinpointFactory();
+ }
+
+ public Set<PropertyInfo> getProperties()
+ {
+ return delegate.getProperties();
+ }
+
+ public void setProperties(Set<PropertyInfo> properties)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PropertyInfo getProperty(String name)
+ {
+ return delegate.getProperty(name);
+ }
+
+ public Set<ConstructorInfo> getConstructors()
+ {
+ return delegate.getConstructors();
+ }
+
+ public void setConstructors(Set<ConstructorInfo> constructors)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Set<MethodInfo> getMethods()
+ {
+ return delegate.getMethods();
+ }
+
+ public void setMethods(Set<MethodInfo> methods)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Set<EventInfo> getEvents()
+ {
+ return delegate.getEvents();
+ }
+
+ public void setEvents(Set<EventInfo> events)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public BeanInfoFactory getBeanInfoFactory()
+ {
+ return delegate.getBeanInfoFactory();
+ }
+
+ public List<DependencyBuilderListItem> getDependencies(MetaData metaData)
+ {
+ return delegate.getDependencies(metaData);
+ }
+
+ public Object newInstance() throws Throwable
+ {
+ return delegate.newInstance();
+ }
+
+ public Object newInstance(String[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.newInstance(paramTypes, params);
+ }
+
+ public Object newInstance(Class[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.newInstance(paramTypes, params);
+ }
+
+ public Object newInstance(TypeInfo[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.newInstance(paramTypes, params);
+ }
+
+ public Object getProperty(Object bean, String name) throws Throwable
+ {
+ return delegate.getProperty(bean, name);
+ }
+
+ public void setProperty(Object bean, String name, Object value) throws Throwable
+ {
+ delegate.setProperty(bean, name, value);
+ }
+
+ public Object invoke(Object bean, String name) throws Throwable
+ {
+ return delegate.invoke(bean, name);
+ }
+
+ public Object invoke(Object bean, String name, String[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.invoke(bean, name, paramTypes, params);
+ }
+
+ public Object invoke(Object bean, String name, Class[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.invoke(bean, name, paramTypes, params);
+ }
+
+ public Object invoke(Object bean, String name, TypeInfo[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.invoke(bean, name, paramTypes, params);
+ }
+
+ public Object invokeStatic(String name) throws Throwable
+ {
+ return delegate.invokeStatic(name);
+ }
+
+ public Object invokeStatic(String name, String[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.invokeStatic(name, paramTypes, params);
+ }
+
+ public Object invokeStatic(String name, Class[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.invokeStatic(name, paramTypes, params);
+ }
+
+ public Object invokeStatic(String name, TypeInfo[] paramTypes, Object[] params) throws Throwable
+ {
+ return delegate.invokeStatic(name, paramTypes, params);
+ }
+
+ public String toShortString()
+ {
+ return delegate.toShortString();
+ }
+
+ public void toShortString(JBossStringBuilder buffer)
+ {
+ delegate.toShortString(buffer);
+ }
+}
Added: projects/microcontainer/trunk/container/src/main/org/jboss/metadata/spi/helpers/UnmodifiableMetaData.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/metadata/spi/helpers/UnmodifiableMetaData.java (rev 0)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/metadata/spi/helpers/UnmodifiableMetaData.java 2007-07-19 13:34:34 UTC (rev 64135)
@@ -0,0 +1,117 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt 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.metadata.spi.helpers;
+
+import java.lang.annotation.Annotation;
+
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.signature.Signature;
+
+/**
+ * An unmodifiable view of the specified meta data instance.
+ * MetaData already exposes unmodifiable model,
+ * but just to make sure we cannot do the cast to
+ * mutable metadata interface, and actually change something.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class UnmodifiableMetaData implements MetaData
+{
+ private MetaData metaData;
+
+ public UnmodifiableMetaData(MetaData metaData)
+ {
+ if (metaData == null)
+ throw new IllegalArgumentException("Null meta data.");
+ this.metaData = metaData;
+ }
+
+ public long getValidTime()
+ {
+ return metaData.getValidTime();
+ }
+
+ public <T extends Annotation> T getAnnotation(Class<T> annotationType)
+ {
+ return metaData.getAnnotation(annotationType);
+ }
+
+ public Annotation[] getAnnotations()
+ {
+ return metaData.getAnnotations();
+ }
+
+ public Annotation[] getLocalAnnotations()
+ {
+ return metaData.getLocalAnnotations();
+ }
+
+ public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+ {
+ return metaData.isAnnotationPresent(annotationType);
+ }
+
+ public <T> T getMetaData(Class<T> type)
+ {
+ return metaData.getMetaData(type);
+ }
+
+ public Object[] getMetaData()
+ {
+ return metaData.getMetaData();
+ }
+
+ public Object[] getLocalMetaData()
+ {
+ return metaData.getLocalMetaData();
+ }
+
+ public boolean isMetaDataPresent(Class<?> type)
+ {
+ return metaData.isMetaDataPresent(type);
+ }
+
+ public Object getMetaData(String name)
+ {
+ return metaData.getMetaData(name);
+ }
+
+ public <T> T getMetaData(String name, Class<T> type)
+ {
+ return metaData.getMetaData(name, type);
+ }
+
+ public boolean isMetaDataPresent(String name)
+ {
+ return metaData.isMetaDataPresent(name);
+ }
+
+ public boolean isMetaDataPresent(String name, Class<?> type)
+ {
+ return metaData.isMetaDataPresent(name, type);
+ }
+
+ public MetaData getComponentMetaData(Signature signature)
+ {
+ return metaData.getComponentMetaData(signature);
+ }
+}
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-19 12:54:02 UTC (rev 64134)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java 2007-07-19 13:34:34 UTC (rev 64135)
@@ -23,17 +23,22 @@
import java.io.Serializable;
import java.lang.reflect.Method;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
import java.util.Set;
import java.util.Collections;
+import java.util.HashSet;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.metadata.spi.MetaData;
import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.metadata.spi.helpers.UnmodifiableMetaData;
import org.jboss.util.JBossObject;
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;
+import org.jboss.beans.info.spi.helpers.UnmodifiableBeanInfo;
/**
* Inject from controller context:
@@ -46,7 +51,7 @@
* * ...
*
* @param <T> exact controller context type
- * @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
public abstract class FromContext<T extends ControllerContext> extends JBossObject
implements Serializable
@@ -228,8 +233,8 @@
public MetaData internalExecute(KernelControllerContext context)
{
- // todo wrapper
- return context.getMetaData();
+ MetaData metaData = context.getMetaData();
+ return metaData != null ? new UnmodifiableMetaData(metaData) : null;
}
}
@@ -244,8 +249,8 @@
public BeanInfo internalExecute(KernelControllerContext context)
{
- // todo wrapper
- return context.getBeanInfo();
+ BeanInfo info = context.getBeanInfo();
+ return info != null ? new UnmodifiableBeanInfo(info) : null;
}
}
@@ -317,14 +322,64 @@
return null;
}
+ protected void getInterfaces(Class clazz, Set<Class> interfaces)
+ {
+ if (clazz == Object.class || clazz == null)
+ return;
+ for (Class iface : clazz.getInterfaces())
+ interfaces.add(iface);
+ getInterfaces(clazz.getSuperclass(), interfaces);
+ }
+
public Object internalExecute(ControllerContext context) throws Throwable
{
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[]{});
+ Object result = ReflectionUtils.invoke(method, context, new Object[]{});
+ if (result != null)
+ {
+ Set<Class> interfaces = new HashSet<Class>();
+ getInterfaces(result.getClass(), interfaces);
+ return Proxy.newProxyInstance(
+ ControllerContext.class.getClassLoader(),
+ interfaces.toArray(new Class[interfaces.size()]),
+ new DynamicWrapper(result));
+ }
+ return null;
}
+
+ /**
+ * This warpper throws error on methods that start with set or add.
+ */
+ private class DynamicWrapper implements InvocationHandler
+ {
+ private Object target;
+
+ public DynamicWrapper(Object target)
+ {
+ this.target = target;
+ }
+
+ /**
+ * Check if the method is unsupported.
+ *
+ * @param method the executed method.
+ * @return true if unsupported, false otherwise
+ */
+ protected boolean isUnsupported(Method method)
+ {
+ String name = method.getName();
+ return (name.startsWith("set") || name.startsWith("add"));
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+ {
+ if (isUnsupported(method))
+ throw new UnsupportedOperationException();
+ return ReflectionUtils.invoke(method, target, args);
+ }
+ }
}
}
Added: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.xml 2007-07-19 13:34:34 UTC (rev 64135)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="aliases" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+ <alias>a1</alias>
+ <alias>a2</alias>
+ <alias>a3</alias>
+ <property name="aliases"><inject fromContext="aliases"/></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>
+
+ <bean name="dynamic" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+ <property name="dynamic"><inject fromContext="getBeanMetaData"/></property>
+ </bean>
+
+</deployment>
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/FromContextUnsupportedTestCase.java 2007-07-19 13:34:34 UTC (rev 64135)
@@ -0,0 +1,119 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.deployment.test;
+
+import java.util.Set;
+import java.util.HashSet;
+
+import junit.framework.Test;
+import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.MutableMetaData;
+import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.test.kernel.deployment.support.NameAwareBean;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.reflect.spi.MethodInfo;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class FromContextUnsupportedTestCase extends AbstractDeploymentTest
+{
+ public FromContextUnsupportedTestCase(String name)
+ throws Throwable
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return suite(FromContextUnsupportedTestCase.class);
+ }
+
+ public void testUnsupportedInjection() throws Throwable
+ {
+ NameAwareBean alias = (NameAwareBean)getBean("aliases");
+ assertNotNull(alias);
+ Set<Object> aliases = alias.getAliases();
+ assertNotNull(aliases);
+ assertFalse(aliases.isEmpty());
+ assertTrue(aliases.contains("a1"));
+ assertTrue(aliases.contains("a2"));
+ assertTrue(aliases.contains("a3"));
+ try
+ {
+ aliases.add("failedAlias");
+ }
+ catch(Throwable t)
+ {
+ assertUnsupported(t);
+ }
+
+ NameAwareBean metadata = (NameAwareBean)getBean("metadata");
+ assertNotNull(metadata);
+ MetaData md = metadata.getMetadata();
+ assertNotNull(md);
+ assertFalse(md instanceof MutableMetaData);
+
+ NameAwareBean beaninfo = (NameAwareBean)getBean("beaninfo");
+ assertNotNull(beaninfo);
+ BeanInfo info = beaninfo.getBeaninfo();
+ assertNotNull(info);
+ try
+ {
+ info.setMethods(new HashSet<MethodInfo>());
+ }
+ catch(Throwable t)
+ {
+ assertUnsupported(t);
+ }
+
+ NameAwareBean scopekey = (NameAwareBean)getBean("scopekey");
+ assertNotNull(scopekey);
+ ScopeKey key = scopekey.getScopeKey();
+ assertNotNull(key);
+ assertInstanceOf(key, ScopeKey.class);
+ KernelControllerContext context = getControllerContext("scopekey");
+ assertNotSame(key, context.getScope());
+
+ NameAwareBean dynamic = (NameAwareBean)getBean("dynamic");
+ assertNotNull(dynamic);
+ Object dyna = dynamic.getDynamic();
+ assertNotNull(dyna);
+ assertInstanceOf(dyna, BeanMetaData.class);
+ BeanMetaData bmd = (BeanMetaData)dyna;
+ try
+ {
+ bmd.setName("failedName");
+ }
+ catch(Throwable t)
+ {
+ assertUnsupported(t);
+ }
+ }
+
+ protected void assertUnsupported(Throwable t)
+ {
+ assertInstanceOf(t, UnsupportedOperationException.class);
+ }
+}
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-19 12:54:02 UTC (rev 64134)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java 2007-07-19 13:34:34 UTC (rev 64135)
@@ -24,12 +24,9 @@
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;
+import org.jboss.beans.metadata.spi.factory.BeanFactory;
+import org.jboss.test.kernel.deployment.support.NameAwareBean;
/**
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
@@ -74,17 +71,14 @@
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());
- assertInstanceOf(scopekey.getScopeKey(), ScopeKey.class);
NameAwareBean dynamic = (NameAwareBean)getBean("dynamic");
assertNotNull(dynamic);
More information about the jboss-cvs-commits
mailing list