[Jboss-cvs] JBossAS SVN: r56476 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/plugins main/org/jboss/kernel/plugins/deployment/xml resources/org/jboss/test/kernel/deployment/test tests/org/jboss/test/kernel/deployment/support tests/org/jboss/test/kernel/deployment/test tests/org/jboss/test/kernel/deployment/xml/test
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 31 09:12:53 EDT 2006
Author: alesj
Date: 2006-08-31 09:12:31 -0400 (Thu, 31 Aug 2006)
New Revision: 56476
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentClassLoaderInterceptor.java
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java
Log:
JBMICROCONT-28 (bean name as GUID not yet implemented).
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -24,11 +24,11 @@
import java.util.*;
import org.jboss.beans.metadata.spi.*;
+import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerMode;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyItem;
-import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.reflect.spi.TypeInfo;
@@ -122,9 +122,31 @@
public List<BeanMetaData> getBeans()
{
- return Collections.singletonList((BeanMetaData) this);
+ List<BeanMetaData> allBeans = new ArrayList<BeanMetaData>();
+ addBeans(this, allBeans);
+ return allBeans;
}
+ protected void addBeans(MetaDataVisitorNode current, List<BeanMetaData> list)
+ {
+ for(Iterator<? extends MetaDataVisitorNode> children = current.getChildren(); children != null && children.hasNext();)
+ {
+ MetaDataVisitorNode next = children.next();
+ if (next instanceof BeanMetaDataFactory)
+ {
+ list.addAll(((BeanMetaDataFactory) next).getBeans());
+ }
+ else
+ {
+ addBeans(next, list);
+ }
+ }
+ if (current instanceof BeanMetaData)
+ {
+ list.add((BeanMetaData) current);
+ }
+ }
+
/**
* Get the bean class name.
* @return the fully qualified bean class name.
@@ -396,15 +418,18 @@
public void initialVisit(MetaDataVisitor visitor)
{
- if (visitor.visitorNodeStack().isEmpty() == false)
+ if (visitor.visitorNodeStack().isEmpty() == false || (classLoader != null && classLoader.getClassLoader() != this))
{
KernelControllerContext controllerContext = visitor.getControllerContext();
controller = (KernelController) controllerContext.getController();
Object name = controllerContext.getName();
Object iDependOn = getUnderlyingValue();
- ControllerState whenRequired = visitor.getContextState();
- DependencyItem di = new AbstractDependencyItem(name, iDependOn, whenRequired, ControllerState.INSTALLED);
- visitor.addDependency(di);
+ if (name.equals(iDependOn) == false)
+ {
+ ControllerState whenRequired = visitor.getContextState();
+ DependencyItem di = new AbstractDependencyItem(name, iDependOn, whenRequired, ControllerState.INSTALLED);
+ visitor.addDependency(di);
+ }
}
super.initialVisit(visitor);
}
@@ -417,7 +442,7 @@
protected void addChildren(Set<MetaDataVisitorNode> children)
{
super.addChildren(children);
- if (classLoader != null)
+ if (classLoader != null && classLoader.getClassLoader() != this)
children.add(classLoader);
if (constructor != null)
children.add(constructor);
@@ -458,10 +483,15 @@
ControllerContext context = controller.getInstalledContext(getName());
if (context == null || context.getTarget() == null)
{
+ // possible call for classloader
+ if (info == null && classLoader != null && classLoader.getClassLoader() == this)
+ {
+ return cl;
+ }
throw new IllegalArgumentException("Bean not yet installed: " + getName());
}
Object target = context.getTarget();
- if (info.getType().isAssignableFrom(target.getClass()) == false)
+ if (info != null && info.getType().isAssignableFrom(target.getClass()) == false)
{
throw new ClassCastException(target + " is not a " + info);
}
@@ -474,7 +504,7 @@
buffer.append(" bean=").append(bean);
buffer.append(" properties=");
JBossObject.list(buffer, properties);
- if (classLoader != null)
+ if (classLoader != null && classLoader.getClassLoader() != this)
buffer.append(" classLoader=").append(classLoader);
buffer.append(" constructor=").append(constructor);
if (create != null)
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -23,11 +23,10 @@
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
-import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
-import org.jboss.beans.metadata.spi.MetaDataVisitor;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
-import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.*;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.util.JBossObject;
import org.jboss.util.JBossStringBuilder;
@@ -38,7 +37,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
-public class AbstractClassLoaderMetaData extends JBossObject implements ClassLoaderMetaData
+public class AbstractClassLoaderMetaData extends JBossObject implements ClassLoaderMetaData, BeanMetaDataFactory
{
/** The classloader */
protected ValueMetaData classloader;
@@ -76,6 +75,15 @@
return classloader;
}
+ public List<BeanMetaData> getBeans()
+ {
+ if (classloader instanceof BeanMetaData)
+ {
+ return Collections.singletonList((BeanMetaData)classloader);
+ }
+ return new ArrayList<BeanMetaData>();
+ }
+
public void initialVisit(MetaDataVisitor visitor)
{
visitor.setContextState(ControllerState.DESCRIBED);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -241,6 +241,14 @@
AbstractKernelDeployment deployment = (AbstractKernelDeployment) parent;
AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
deployment.setClassLoader(classloader);
+ // add classloaders as value beans
+ List<BeanMetaDataFactory> beans = deployment.getBeanFactories();
+ if (beans == null)
+ {
+ beans = new ArrayList<BeanMetaDataFactory>();
+ deployment.setBeanFactories(beans);
+ }
+ beans.add(classloader);
}
});
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentClassLoaderInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentClassLoaderInterceptor.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DeploymentClassLoaderInterceptor.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -21,9 +21,12 @@
*/
package org.jboss.kernel.plugins.deployment.xml;
+import java.util.List;
+import java.util.ArrayList;
import javax.xml.namespace.QName;
import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementInterceptor;
@@ -43,5 +46,13 @@
AbstractKernelDeployment deployment = (AbstractKernelDeployment) parent;
AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
deployment.setClassLoader(classloader);
+ // add classloaders as value beans
+ List<BeanMetaDataFactory> beans = deployment.getBeanFactories();
+ if (beans == null)
+ {
+ beans = new ArrayList<BeanMetaDataFactory>();
+ deployment.setBeanFactories(beans);
+ }
+ beans.add(classloader);
}
}
Modified: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml 2006-08-31 13:12:31 UTC (rev 56476)
@@ -2,32 +2,28 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
-<!--
<bean name="SimpleObject1" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
- <classloader>
- <bean name="simple1" class="org.jboss.test.kernel.deployment.support.NullClassLoader" />
- </classloader>
- </bean>
-
- <bean name="SimpleObject2" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<constructor>
- <bean name="simple2" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl" />
+ <bean name="simple1" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean" />
</constructor>
</bean>
- <bean name="SimpleObject3" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+ <bean name="SimpleObject2" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<constructor>
<parameter>
- <bean name="simple3" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl" />
+ <bean name="simple2" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl" />
</parameter>
</constructor>
</bean>
- <bean name="SimpleObject4" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+ <bean name="SimpleObject3" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
<property name="simpleBean">
- <bean name="simple4" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl"/>
+ <bean name="simple3" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl"/>
</property>
</bean>
--->
+ <classloader>
+ <bean name="cl" class="org.jboss.test.kernel.deployment.support.NullClassLoader" />
+ </classloader>
+
</deployment>
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -37,7 +37,6 @@
// Attributes ----------------------------------------------------
private SimpleBean simpleBean;
- private ClassLoader classLoader;
public SimpleObjectWithBean()
{
@@ -58,14 +57,4 @@
this.simpleBean = simpleBean;
}
- public ClassLoader getClassLoader()
- {
- return classLoader;
- }
-
- public void setClassLoader(ClassLoader classLoader)
- {
- this.classLoader = classLoader;
- }
-
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -21,6 +21,9 @@
*/
package org.jboss.test.kernel.deployment.test;
+import org.jboss.test.kernel.deployment.support.SimpleObjectWithBean;
+import org.jboss.test.kernel.deployment.support.SimpleBean;
+
import junit.framework.Test;
/**
@@ -43,31 +46,28 @@
public void testBeanAsValueMetaData() throws Throwable
{
-/*
+ ClassLoader cl = (ClassLoader) getBean("cl");
+ assertNotNull(cl);
+
SimpleObjectWithBean sowb1 = (SimpleObjectWithBean) getBean("SimpleObject1");
- ClassLoader cl = (ClassLoader) getBean("simple1");
+ SimpleObjectWithBean simple1 = (SimpleObjectWithBean) getBean("simple1");
assertNotNull(sowb1);
- assertNotNull(cl);
- assertNotNull(sowb1.getClassLoader());
+ assertNotNull(simple1);
+ assertEquals(sowb1, simple1);
SimpleObjectWithBean sowb2 = (SimpleObjectWithBean) getBean("SimpleObject2");
SimpleBean simple2 = (SimpleBean) getBean("simple2");
assertNotNull(sowb2);
assertNotNull(simple2);
assertNotNull(sowb2.getSimpleBean());
+ assertEquals(sowb2.getSimpleBean(), simple2);
SimpleObjectWithBean sowb3 = (SimpleObjectWithBean) getBean("SimpleObject3");
SimpleBean simple3 = (SimpleBean) getBean("simple3");
assertNotNull(sowb3);
assertNotNull(simple3);
assertNotNull(sowb3.getSimpleBean());
-
- SimpleObjectWithBean sowb4 = (SimpleObjectWithBean) getBean("SimpleObject4");
- SimpleBean simple4 = (SimpleBean) getBean("simple4");
- assertNotNull(sowb4);
- assertNotNull(simple4);
- assertNotNull(sowb4.getSimpleBean());
-*/
+ assertEquals(sowb3.getSimpleBean(), simple3);
}
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java 2006-08-31 11:46:43 UTC (rev 56475)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/DeploymentTestCase.java 2006-08-31 13:12:31 UTC (rev 56476)
@@ -62,7 +62,7 @@
AbstractKernelDeployment deployment = unmarshalDeployment("DeploymentWithClassLoader.xml");
assertEquals("SimpleDeployment", deployment.getName());
assertNotNull(deployment.getClassLoader());
- assertNull(deployment.getBeans());
+ assertEmpty(deployment.getBeans());
}
public void testDeploymentWithBean() throws Exception
More information about the jboss-cvs-commits
mailing list