[jboss-cvs] JBossAS SVN: r104253 - in projects/metadata/ejb/trunk/src: main/java/org/jboss/metadata/annotation/creator/ejb/jboss and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 26 09:14:49 EDT 2010


Author: jaikiran
Date: 2010-04-26 09:14:48 -0400 (Mon, 26 Apr 2010)
New Revision: 104253

Added:
   projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DependsOnProcessor.java
   projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/
   projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/IndependentSingleton.java
   projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithMultipleDependencies.java
   projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithOneDependency.java
   projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/unit/
   projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/unit/DependsOnTestCase.java
Modified:
   projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/SingletonProcessor.java
   projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBean31MetaData.java
   projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBean31MetaData.java
Log:
JBMETA-278 Metadata support for processing @DependsOn annotation

Modified: projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/SingletonProcessor.java
===================================================================
--- projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/SingletonProcessor.java	2010-04-26 11:29:50 UTC (rev 104252)
+++ projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/SingletonProcessor.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -32,6 +32,7 @@
 import org.jboss.metadata.annotation.creator.ejb.jboss.AccessTimeoutClassProcessor;
 import org.jboss.metadata.annotation.creator.ejb.jboss.AccessTimeoutMethodProcessor;
 import org.jboss.metadata.annotation.creator.ejb.jboss.ConcurrencyManagementProcessor;
+import org.jboss.metadata.annotation.creator.ejb.jboss.DependsOnProcessor;
 import org.jboss.metadata.annotation.creator.ejb.jboss.LockClassProcessor;
 import org.jboss.metadata.annotation.creator.ejb.jboss.LockMethodProcessor;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
@@ -53,6 +54,7 @@
       addTypeProcessor(new ConcurrencyManagementProcessor(finder));
       addTypeProcessor(new LockClassProcessor(finder));
       addTypeProcessor(new AccessTimeoutClassProcessor(finder));
+      addTypeProcessor(new DependsOnProcessor(finder));
       
       addMethodProcessor(new LockMethodProcessor(finder));
       addMethodProcessor(new AccessTimeoutMethodProcessor(finder));

Added: projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DependsOnProcessor.java
===================================================================
--- projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DependsOnProcessor.java	                        (rev 0)
+++ projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DependsOnProcessor.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -0,0 +1,79 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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.annotation.creator.ejb.jboss;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+import javax.ejb.DependsOn;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
+
+/**
+ * Responsible for processing the {@link DependsOn} annotation
+ * on a bean and creating metadata out of it.
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class DependsOnProcessor extends AbstractFinderUser implements Processor<JBossSessionBean31MetaData, Class<?>>
+{
+
+   /**
+    * @param finder
+    */
+   public DependsOnProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   /**
+    * @see org.jboss.metadata.annotation.creator.Processor#getAnnotationTypes()
+    */
+   @Override
+   public Collection<Class<? extends Annotation>> getAnnotationTypes()
+   {
+      return ProcessorUtils.createAnnotationSet(DependsOn.class);
+   }
+
+   /**
+    * Creates metadata out of {@link DependsOn} annotation, if found on the passed
+    * <code>klass</code>
+    */
+   @Override
+   public void process(JBossSessionBean31MetaData sessionBeanMetaData, Class<?> klass)
+   {
+      DependsOn dependsOn = this.finder.getAnnotation(klass, DependsOn.class);
+      if (dependsOn != null)
+      {
+         sessionBeanMetaData.setDependsOn(dependsOn.value());
+         return;
+      }
+      
+   }
+
+}

Modified: projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBean31MetaData.java
===================================================================
--- projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBean31MetaData.java	2010-04-26 11:29:50 UTC (rev 104252)
+++ projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBean31MetaData.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -21,7 +21,7 @@
  */
 package org.jboss.metadata.ejb.jboss;
 
-import java.util.Collections;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
@@ -78,6 +78,11 @@
     * The lock type that is set at the bean level
     */
    private LockType beanLevelLockType;
+   
+   /**
+    * DependsOn for a singleton bean
+    */
+   private String[] dependsOn;
 
    public AsyncMethodsMetaData getAsyncMethods()
    {
@@ -240,6 +245,42 @@
    {
       return this.beanLevelAccessTimeout;
    }
+   
+   /**
+    * Returns the names of one or more Singleton beans in the same application 
+    * as the referring Singleton. 
+    * @return
+    */
+   public String[] getDependsOn()
+   {
+      return this.dependsOn;
+   }
+   
+   /**
+    * Sets the names of one or more singleton beans, each of which must be initialized before
+    * the referring bean. Each dependent bean is expressed using ejb-link syntax.
+    * 
+    * @param dependsOn The singleton bean dependencies 
+    */
+   public void setDependsOn(String[] dependsOn)
+   {
+      this.dependsOn = dependsOn;
+   }
+   
+   /**
+    * Sets the names of one or more singleton beans, each of which must be initialized before
+    * the referring bean. Each dependent bean is expressed using ejb-link syntax.
+    * 
+    * @param dependsOn The singleton bean dependencies
+    */
+   public void setDependsOn(Collection<String> dependsOn)
+   {
+      if (dependsOn == null)
+      {
+         return;
+      }
+      this.setDependsOn(dependsOn.toArray(new String[dependsOn.size()]));
+   }
 
    @Override
    public void merge(JBossEnterpriseBeanMetaData override, JBossEnterpriseBeanMetaData original)
@@ -280,6 +321,10 @@
          {
             this.beanLevelAccessTimeout = joverride.beanLevelAccessTimeout;
          }
+         if (joverride.dependsOn != null)
+         {
+            this.dependsOn = joverride.dependsOn;
+         }
       }
       else if (soriginal != null)
       {
@@ -305,6 +350,10 @@
          {
             this.beanLevelAccessTimeout = soriginal.beanLevelAccessTimeout;
          }
+         if (soriginal.dependsOn != null)
+         {
+            this.dependsOn = soriginal.dependsOn;
+         }
       }
 
    }
@@ -345,6 +394,10 @@
          {
             this.beanLevelAccessTimeout = joverride.beanLevelAccessTimeout;
          }
+         if (joverride.dependsOn != null)
+         {
+            this.dependsOn = joverride.dependsOn;
+         }
       }
       else if (soriginal != null)
       {
@@ -370,6 +423,10 @@
          {
             this.beanLevelAccessTimeout = soriginal.getAccessTimeout();
          }
+         if (soriginal.getDependsOn() != null)
+         {
+            this.dependsOn = soriginal.getDependsOn();
+         }
       }
 
    }

Modified: projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBean31MetaData.java
===================================================================
--- projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBean31MetaData.java	2010-04-26 11:29:50 UTC (rev 104252)
+++ projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBean31MetaData.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -21,7 +21,7 @@
  */
 package org.jboss.metadata.ejb.spec;
 
-import java.util.Collections;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -79,7 +79,13 @@
     * Concurrency management type of the bean
     */
    private ConcurrencyManagementType concurrencyManagementType;
+   
+   /**
+    * DependsOn for a singleton bean
+    */
+   private String[] dependsOn;
 
+
    /**
     * Returns the init-on-startup value of the session bean metadata.
     * Returns null if none is defined.
@@ -256,6 +262,42 @@
    }
 
    /**
+    * Returns the names of one or more Singleton beans in the same application 
+    * as the referring Singleton. 
+    * @return
+    */
+   public String[] getDependsOn()
+   {
+      return this.dependsOn;
+   }
+   
+   /**
+    * Sets the names of one or more singleton beans, each of which must be initialized before
+    * the referring bean. Each dependent bean is expressed using ejb-link syntax.
+    * 
+    * @param dependsOn The singleton bean dependencies 
+    */
+   public void setDependsOn(String[] dependsOn)
+   {
+      this.dependsOn = dependsOn;
+   }
+   
+   /**
+    * Sets the names of one or more singleton beans, each of which must be initialized before
+    * the referring bean. Each dependent bean is expressed using ejb-link syntax.
+    * 
+    * @param dependsOn The singleton bean dependencies
+    */
+   public void setDependsOn(Collection<String> dependsOn)
+   {
+      if (dependsOn == null)
+      {
+         return;
+      }
+      this.setDependsOn(dependsOn.toArray(new String[dependsOn.size()]));
+   }
+   
+   /**
     * {@inheritDoc}
     */
    @Override
@@ -303,6 +345,10 @@
          {
             this.beanLevelAccessTimeout = override.beanLevelAccessTimeout;
          }
+         if (override.dependsOn != null)
+         {
+            this.dependsOn = override.dependsOn;
+         }
       }
       else if (original != null)
       {
@@ -334,6 +380,10 @@
          {
             this.beanLevelAccessTimeout = original.beanLevelAccessTimeout;
          }
+         if (original.dependsOn != null)
+         {
+            this.dependsOn = original.dependsOn;
+         }
       }
    }
 }

Added: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/IndependentSingleton.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/IndependentSingleton.java	                        (rev 0)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/IndependentSingleton.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -0,0 +1,36 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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.ejb.test.dependson;
+
+import javax.ejb.Singleton;
+
+/**
+ * IndependentSingleton
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+ at Singleton
+public class IndependentSingleton
+{
+
+}

Added: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithMultipleDependencies.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithMultipleDependencies.java	                        (rev 0)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithMultipleDependencies.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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.ejb.test.dependson;
+
+import javax.ejb.DependsOn;
+import javax.ejb.Singleton;
+
+/**
+ * SingletonWithMultipleDependencies
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+ at Singleton
+ at DependsOn({"A", "B", "somejar.jar#C"})
+public class SingletonWithMultipleDependencies
+{
+
+}

Added: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithOneDependency.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithOneDependency.java	                        (rev 0)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/SingletonWithOneDependency.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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.ejb.test.dependson;
+
+import javax.ejb.DependsOn;
+import javax.ejb.Singleton;
+
+/**
+ * SingletonWithOneDependency
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+ at Singleton
+ at DependsOn ("A")
+public class SingletonWithOneDependency
+{
+
+}

Added: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/unit/DependsOnTestCase.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/unit/DependsOnTestCase.java	                        (rev 0)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/dependson/unit/DependsOnTestCase.java	2010-04-26 13:14:48 UTC (rev 104253)
@@ -0,0 +1,128 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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.ejb.test.dependson.unit;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.lang.reflect.AnnotatedElement;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.annotation.creator.ejb.jboss.JBoss50Creator;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar31MetaData;
+import org.jboss.metadata.ejb.test.dependson.IndependentSingleton;
+import org.jboss.metadata.ejb.test.dependson.SingletonWithMultipleDependencies;
+import org.jboss.metadata.ejb.test.dependson.SingletonWithOneDependency;
+import org.jboss.test.metadata.common.PackageScanner;
+import org.jboss.test.metadata.common.ScanPackage;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.resolver.MultiClassSchemaResolver;
+import org.jboss.xb.binding.resolver.MutableSchemaResolver;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * DependsOnTestCase
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class DependsOnTestCase
+{
+
+   private static Logger logger = Logger.getLogger(DependsOnTestCase.class);
+
+   private static MutableSchemaResolver schemaBindingResolver;
+
+   private static UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
+
+   @BeforeClass
+   public static void beforeClass()
+   {
+      schemaBindingResolver = new MultiClassSchemaResolver();
+      schemaBindingResolver.mapLocationToClass("ejb-jar_3_1.xsd", EjbJar31MetaData.class);
+   }
+   
+   @Test
+   @ScanPackage("org.jboss.metadata.ejb.test.dependson")
+   public void testDependsOnAnnotationProcessing() throws Exception
+   {
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      JBoss50Creator creator = new JBoss50Creator(finder);
+      Collection<Class<?>> classes = PackageScanner.loadClasses();
+      JBossMetaData metaData = creator.create(classes);
+      assertNotNull(metaData);
+      
+      // test a bean with no dependencies
+      String independentBeanName = IndependentSingleton.class.getSimpleName(); 
+      JBossEnterpriseBeanMetaData independentBean = metaData.getEnterpriseBean(independentBeanName);
+      
+      JBossSessionBean31MetaData independentSessionbean = (JBossSessionBean31MetaData) independentBean;
+      
+      Assert.assertTrue(independentBeanName + " is not a singleton bean", independentSessionbean.isSingleton());
+      Assert.assertNull("Unexpected dependency on bean " + independentBeanName, independentSessionbean.getDependsOn());
+      
+
+      // test a bean with just one dependency
+      String singleDependencyBeanName = SingletonWithOneDependency.class.getSimpleName(); 
+      JBossEnterpriseBeanMetaData singleDependencyBean = metaData.getEnterpriseBean(singleDependencyBeanName);
+      
+      JBossSessionBean31MetaData singleDependencySessionBean = (JBossSessionBean31MetaData) singleDependencyBean;
+      
+      Assert.assertTrue(singleDependencyBeanName + " is not a singleton bean", singleDependencySessionBean.isSingleton());
+      
+      String[] dependsOn = singleDependencySessionBean.getDependsOn();
+      Assert.assertNotNull("No dependency  found on bean " + singleDependencyBeanName, dependsOn);
+      Assert.assertEquals("Unexpected number of dependencies found on bean " + singleDependencyBeanName, 1, dependsOn.length );
+      Assert.assertEquals("Unexpected dependency found on bean " + singleDependencyBeanName, "A", dependsOn[0]);
+
+
+      // test a bean with multiple dependencies
+      String multipleDependenciesBeanName = SingletonWithMultipleDependencies.class.getSimpleName(); 
+      JBossEnterpriseBeanMetaData multipleDependenciesBean = metaData.getEnterpriseBean(multipleDependenciesBeanName);
+      
+      JBossSessionBean31MetaData multipleDependenciesSessionBean = (JBossSessionBean31MetaData) multipleDependenciesBean;
+      
+      Assert.assertTrue(multipleDependenciesBeanName + " is not a singleton bean", multipleDependenciesSessionBean.isSingleton());
+      
+      String[] multipleDependsOn = multipleDependenciesSessionBean.getDependsOn();
+      Assert.assertNotNull("No dependency  found on bean " + multipleDependenciesBeanName, multipleDependsOn);
+      Assert.assertEquals("Unexpected number of dependencies found on bean " + multipleDependenciesBeanName, 3, multipleDependsOn.length );
+      
+      List<String> deps = Arrays.asList(multipleDependsOn);
+      Assert.assertTrue("Unexpected dependency found on bean " + multipleDependenciesBeanName, deps.contains("A"));
+      Assert.assertTrue("Unexpected dependency found on bean " + multipleDependenciesBeanName, deps.contains("B"));
+      Assert.assertTrue("Unexpected dependency found on bean " + multipleDependenciesBeanName, deps.contains("somejar.jar#C"));
+      
+      
+   }
+}




More information about the jboss-cvs-commits mailing list