[jboss-cvs] JBossAS SVN: r72751 - 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
Sat Apr 26 15:47:23 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-04-26 15:47:23 -0400 (Sat, 26 Apr 2008)
New Revision: 72751

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.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/annotation/client/basic/Client.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testXmlMerge.xml
Log:
JBMETA-26, correct the merge of EnvironmentEntrys, ResourceInjections


Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java	2008-04-26 15:30:20 UTC (rev 72750)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java	2008-04-26 19:47:23 UTC (rev 72751)
@@ -121,4 +121,19 @@
          throw new IllegalArgumentException("Null value");
       this.value = value;
    }
+
+   public void merge(EnvironmentEntryMetaData override,
+         EnvironmentEntryMetaData original)
+   {
+      super.merge(override, original);
+      if (override != null && override.type != null)
+         setType(override.type);
+      else if (original != null && original.type != null)
+         setType(original.type);
+      if (override != null && override.value != null)
+         setValue(override.value);
+      else if (original != null && original.value != null)
+         setValue(original.value);
+   }
+
 }

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-04-26 15:30:20 UTC (rev 72750)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2008-04-26 19:47:23 UTC (rev 72751)
@@ -464,11 +464,17 @@
          EnvironmentEntriesMetaData envEntries = jbossEnv.getEnvironmentEntries();
          if (envEntries != null)
          {
-            EnvironmentEntriesMetaData thisEnv = this.getEnvironmentEntries();
-            if(thisEnv != null)
-               thisEnv.addAll(envEntries);
-            else
-               this.setEnvironmentEntries(envEntries);
+            if(environmentEntries == null)
+               environmentEntries = new EnvironmentEntriesMetaData();
+            // Merge the entries with existing entries
+            for(EnvironmentEntryMetaData entry : envEntries)
+            {
+               EnvironmentEntryMetaData thisEntry = environmentEntries.get(entry.getEnvEntryName());
+               if(thisEntry != null)
+                  thisEntry.merge(entry, null);
+               else
+                  environmentEntries.add(entry);
+            }
          }
       }
       

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java	2008-04-26 15:30:20 UTC (rev 72750)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java	2008-04-26 19:47:23 UTC (rev 72751)
@@ -196,17 +196,17 @@
       super.merge(override, original);
       if (override != null && override.mappedName != null)
          setMappedName(override.mappedName);
-      else if (original.mappedName != null)
+      else if (original != null && original.mappedName != null)
          setMappedName(original.mappedName);
       if (override != null && override.ignoreDependency != null)
          setIgnoreDependency(override.ignoreDependency);
-      else if (original.ignoreDependency != null)
+      else if (original != null && original.ignoreDependency != null)
          setIgnoreDependency(original.ignoreDependency);
       
       // TODO proper merge
       if (override != null && override.injectionTargets != null)
          setInjectionTargets(override.injectionTargets);
-      else if (original.injectionTargets != null)
+      else if (original != null && original.injectionTargets != null)
          setInjectionTargets(original.injectionTargets);
    }
 }

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-04-26 15:30:20 UTC (rev 72750)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java	2008-04-26 19:47:23 UTC (rev 72751)
@@ -124,7 +124,39 @@
       ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName("orb");
       System.out.println(clientMD.getResourceEnvironmentReferences());
       assertNotNull(orbRes);
-      assertEquals(ORB.class.getName(), orbRes.getType());
+      Set<ResourceInjectionTargetMetaData> orbResTargets = orbRes.getInjectionTargets();
+      assertNotNull(orbResTargets);
+      assertEquals(1, orbResTargets.size());
+      ResourceInjectionTargetMetaData orbField = orbResTargets.iterator().next();
+      assertEquals(Client.class.getName(), orbField.getInjectionTargetClass());
+      assertEquals("orb", orbField.getInjectionTargetName());
+
+      // URL maps to resource-ref
+      ResourceReferenceMetaData urlRes = clientMD.getResourceReferenceByName("jboss-home-page");
+      assertNotNull(urlRes);
+      assertEquals("http://www.jboss.org", urlRes.getMappedName());
+      Set<ResourceInjectionTargetMetaData> urlResTargets = urlRes.getInjectionTargets();
+      assertNotNull(urlResTargets);
+      assertEquals(1, urlResTargets.size());
+      ResourceInjectionTargetMetaData urlResField = urlResTargets.iterator().next();
+      assertEquals(Client.class.getName(), urlResField.getInjectionTargetClass());
+      assertEquals("jbossHome", urlResField.getInjectionTargetName());
+
+      // UserTransaction
+      
+      // String maps to env-entry
+      System.out.println(clientMD.getEnvironmentEntries());
+      EnvironmentEntryMetaData queueNameEntry = clientMD.getEnvironmentEntryByName("queueName");
+      assertNotNull(queueNameEntry);
+      assertEquals("queue/testQueue", queueNameEntry.getValue());
+      Set<ResourceInjectionTargetMetaData> queueNameEntryTargets = queueNameEntry.getInjectionTargets();
+      assertNotNull(queueNameEntryTargets);
+      assertEquals(1, queueNameEntryTargets.size());
+      ResourceInjectionTargetMetaData queueNameEntryField = queueNameEntryTargets.iterator().next();
+      assertEquals(Client.class.getName(), queueNameEntryField.getInjectionTargetClass());
+      assertEquals("queueName", queueNameEntryField.getInjectionTargetName());
+      // Float
+      // int
    }
    @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
    public void testXmlMerge()
@@ -168,6 +200,18 @@
       assertNotNull(messageReplier);
       assertEquals("javax.jms.Queue", messageReplier.getType());
 
+      // String maps to env-entry
+      System.out.println(clientMD.getEnvironmentEntries());
+      EnvironmentEntryMetaData queueNameEntry = clientMD.getEnvironmentEntryByName("queueName");
+      assertNotNull(queueNameEntry);
+      assertEquals("queue/testQueueOverride", queueNameEntry.getValue());
+      Set<ResourceInjectionTargetMetaData> queueNameEntryTargets = queueNameEntry.getInjectionTargets();
+      assertNotNull(queueNameEntryTargets);
+      assertEquals(1, queueNameEntryTargets.size());
+      ResourceInjectionTargetMetaData queueNameEntryField = queueNameEntryTargets.iterator().next();
+      assertEquals(Client.class.getName(), queueNameEntryField.getInjectionTargetClass());
+      assertEquals("queueName", queueNameEntryField.getInjectionTargetName());
+
       MessageDestinationMetaData md = merged.getMessageDestinationByName("MY-QUEUE");
       assertNotNull(md);
       assertEquals("queue/testQueue", md.getJndiName());

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/basic/Client.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/basic/Client.java	2008-04-26 15:30:20 UTC (rev 72750)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/basic/Client.java	2008-04-26 19:47:23 UTC (rev 72751)
@@ -21,8 +21,11 @@
  */
 package org.jboss.test.metadata.annotation.client.basic;
 
+import java.net.URL;
+
 import javax.annotation.Resource;
 import javax.ejb.EJB;
+import javax.transaction.UserTransaction;
 
 import org.omg.CORBA.ORB;
 
@@ -46,6 +49,20 @@
       resourceMethodBean = rif;
    }
 
+   @Resource(name="queueName", mappedName="queue/testQueue")
+   private static String queueName;
+   @Resource(mappedName="3.14159", description="pi to 5", name="PI")
+   private static Float pi;
+
    @Resource
    private static ORB orb;
+   @Resource(name="jboss-home-page", mappedName="http://www.jboss.org")
+   private static URL jbossHome;
+   private static UserTransaction utx;
+
+   @Resource(name="user-tx")
+   private static void setUserTransaction(UserTransaction utx)
+   {
+      Client.utx = utx;
+   }
 }

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testXmlMerge.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testXmlMerge.xml	2008-04-26 15:30:20 UTC (rev 72750)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testXmlMerge.xml	2008-04-26 19:47:23 UTC (rev 72751)
@@ -12,6 +12,11 @@
         <env-entry-type>java.lang.String</env-entry-type>
         <env-entry-value>how are you?</env-entry-value>
     </env-entry>
+    <env-entry>
+        <env-entry-name>queueName</env-entry-name>
+        <env-entry-type>java.lang.String</env-entry-type>
+        <env-entry-value>queue/testQueueOverride</env-entry-value>
+    </env-entry>
     
     <resource-env-ref>
         <resource-env-ref-name>messageReplier</resource-env-ref-name>




More information about the jboss-cvs-commits mailing list