[jboss-cvs] JBossAS SVN: r76290 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/client and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 28 05:20:13 EDT 2008


Author: emuckenhuber
Date: 2008-07-28 05:20:13 -0400 (Mon, 28 Jul 2008)
New Revision: 76290

Added:
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
Log:
[JBMETA-84] merge annotated references.

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java	2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java	2008-07-28 09:20:13 UTC (rev 76290)
@@ -58,6 +58,42 @@
       AnnotatedEJBReferencesMetaData merged = new AnnotatedEJBReferencesMetaData();
       return JavaEEMetaDataUtil.merge(merged, overriden, override, "@EJB", overridenFile, overrideFile, false);
    }
+   
+   /**
+    * Merge the annotated ejb refs with a xml desriptor
+    * 
+    * @param override the override references
+    * @param original the original references
+    * @return the merged references.
+    */
+   public static AnnotatedEJBReferencesMetaData merge(EJBReferencesMetaData override, AnnotatedEJBReferencesMetaData original)
+   {
+      if(override == null)
+         return original;
+      
+      if(original == null)
+         return null;
+      
+      AnnotatedEJBReferencesMetaData merged = new AnnotatedEJBReferencesMetaData();
+      for(AnnotatedEJBReferenceMetaData ref : original)
+      {
+         EJBReferenceMetaData ejbRef = override.get(ref.getKey());
+         if(ejbRef != null)
+         {
+            AnnotatedEJBReferenceMetaData newRef = new AnnotatedEJBReferenceMetaData();
+            newRef.merge(ejbRef, ref);
+            if(ref.getBeanInterface() != null)
+               newRef.setBeanInterface(ref.getBeanInterface());
+            
+            merged.add(newRef);
+         }
+         else
+         {
+            merged.add(ref);
+         }
+      }
+      return merged;
+   }
 
    /**
     * Create a new EJBLocalReferencesMetaData.

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2008-07-28 09:20:13 UTC (rev 76290)
@@ -492,8 +492,10 @@
             this.persistenceUnitRefs = new PersistenceUnitReferencesMetaData();
          this.persistenceUnitRefs.merge(jbossPersistenceUnitRefs, persistenceUnitRefs);
       }
-      
-      if(annotatedEjbRefs != null)
-         this.setAnnotatedEjbReferences(annotatedEjbRefs);
+
+      // Fill the annotated refs with the xml descriptor
+      AnnotatedEJBReferencesMetaData annotatedRefs = AnnotatedEJBReferencesMetaData.merge(this.getEjbReferences(), annotatedEjbRefs);
+      if(annotatedRefs != null)
+         this.setAnnotatedEjbReferences(annotatedRefs);
    }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java	2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java	2008-07-28 09:20:13 UTC (rev 76290)
@@ -32,8 +32,6 @@
 import javax.annotation.PreDestroy;
 import javax.annotation.Resource;
 import javax.annotation.Resources;
-import javax.annotation.security.DeclareRoles;
-import javax.annotation.security.RunAs;
 import javax.ejb.EJB;
 import javax.ejb.EJBs;
 import javax.persistence.PersistenceContext;
@@ -45,6 +43,7 @@
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
 import org.jboss.metadata.client.jboss.JBossClient5DTDMetaData;
+import org.jboss.metadata.client.jboss.JBossClient5MetaData;
 import org.jboss.metadata.client.jboss.JBossClientMetaData;
 import org.jboss.metadata.client.spec.AnnotationMergedView;
 import org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData;
@@ -53,6 +52,7 @@
 import org.jboss.metadata.javaee.jboss.JBossServiceReferenceMetaData;
 import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
@@ -90,6 +90,7 @@
       resolver.addClassBindingForLocation("application-client_1_4.xsd", ApplicationClient14MetaData.class);
       resolver.addClassBindingForLocation("application-client_5.xsd", ApplicationClient5MetaData.class);
       resolver.addClassBindingForLocation("jboss-client_5_0.dtd", JBossClient5DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss-client_5_0.xsd", JBossClient5MetaData.class);
       resolver.addClassBindingForLocation("jboss-client", JBossClient5DTDMetaData.class);
       return resolver;
    }
@@ -425,4 +426,34 @@
       assertEquals(expected.size(), actual.size());
       assertTrue(actual.containsAll(expected));
    }
+   
+   @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
+   public void testAnnotatednEnv() throws Exception
+   {
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      Collection<Class<?>> classes = PackageScanner.loadClasses();
+      ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder);
+      
+      ApplicationClient5MetaData annotatedMetaData = creator.create(classes);         
+      ApplicationClient5MetaData specMetaData = super.unmarshal("AnnotationClient_testAnnotatedEnv.xml", ApplicationClient5MetaData.class);
+      JBossClientMetaData metaData = super.unmarshal("JBossAnnotationClient_testAnnotatedEnv.xml", JBossClient5MetaData.class);
+      
+      // Create a merged view
+      ApplicationClient5MetaData specMerged = new ApplicationClient5MetaData();
+      AnnotationMergedView.merge(specMerged, specMetaData, annotatedMetaData);
+      specMetaData = specMerged;
+
+      JBossClientMetaData mergedMetaData = new JBossClientMetaData();
+      mergedMetaData.merge(metaData, specMetaData, false);
+      
+      assertNotNull(mergedMetaData);
+      AnnotatedEJBReferencesMetaData annotatedRefs = mergedMetaData.getAnnotatedEjbReferences();
+      assertNotNull(annotatedRefs);
+      AnnotatedEJBReferenceMetaData annotatedRef = annotatedRefs.get("ejb/resourceClassBean");
+      assertNotNull(annotatedRef);
+      assertNotNull(annotatedRef.getIgnoreDependency());
+      // The same name for jndi / mappedname
+      assertEquals("test_resourceClasJndiName", annotatedRef.getJndiName());
+      assertEquals("test_resourceClasJndiName", annotatedRef.getMappedName());
+   }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java	2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java	2008-07-28 09:20:13 UTC (rev 76290)
@@ -440,8 +440,9 @@
       JBossEnvironmentRefsGroupMetaData mergedEnv = (JBossEnvironmentRefsGroupMetaData) merged.getJndiEnvironmentRefsGroup();
       assertNotNull(mergedEnv);
       
-      // I am not sure whether it makes sense
-      assertTrue(originalEnv.getAnnotatedEjbReferences() == mergedEnv.getAnnotatedEjbReferences());
+      // Simple in here
+      assertNotNull(merged.getAnnotatedEjbReferences());
+      
 
       // local refs
       localRefs = mergedEnv.getEjbLocalReferences();

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml	2008-07-28 09:20:13 UTC (rev 76290)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application-client version="5" xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application-client_5.xsd">
+  <ejb-ref>
+    <ejb-ref-name>ejb/resourceClassBean</ejb-ref-name>
+  </ejb-ref>
+</application-client>

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml	2008-07-28 09:20:13 UTC (rev 76290)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss-client xmlns="http://www.jboss.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.com/xml/ns/javaee/jboss-client_5_0.xsd"
+   version="5.0"
+   id="appclient-test">
+  <jndi-name>standaloneCclient</jndi-name>
+  <ejb-ref>
+    <ejb-ref-name>ejb/resourceClassBean</ejb-ref-name>
+    <jndi-name>test_resourceClasJndiName</jndi-name>
+    <ignore-dependency/>
+  </ejb-ref>
+</jboss-client>




More information about the jboss-cvs-commits mailing list