[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