[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