[jboss-cvs] JBossAS SVN: r72961 - 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
Thu May 1 17:59:24 EDT 2008
Author: scott.stark at jboss.org
Date: 2008-05-01 17:59:24 -0400 (Thu, 01 May 2008)
New Revision: 72961
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.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_testJBossXmlMerge.xml
Log:
JBMETA-31, fix merging of annotation msg-refs with jboss.xml msg refs
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java 2008-05-01 21:58:17 UTC (rev 72960)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java 2008-05-01 21:59:24 UTC (rev 72961)
@@ -193,6 +193,18 @@
// Convinence accessors
+ /**
+ * Get a message destination
+ *
+ * @param name the name of the destination
+ * @return the destination or null if not found
+ */
+ public MessageDestinationMetaData getMessageDestinationByName(String name)
+ {
+ if (messageDestinations == null)
+ return null;
+ return messageDestinations.get(name);
+ }
public MessageDestinationsMetaData getMessageDestinations()
{
return messageDestinations;
@@ -463,7 +475,8 @@
}
linkedRefs.add(ref);
}
- msgRefs.add(ref);
+ if(msgRefs.contains(ref) == false)
+ msgRefs.add(ref);
}
// Merge the spec resource-env-refs
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-05-01 21:58:17 UTC (rev 72960)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java 2008-05-01 21:59:24 UTC (rev 72961)
@@ -29,22 +29,18 @@
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.JBossClientMetaData;
import org.jboss.metadata.client.spec.AnnotationMergedView;
import org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData;
import org.jboss.metadata.client.spec.ApplicationClient14MetaData;
import org.jboss.metadata.client.spec.ApplicationClient5MetaData;
-import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
-import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
-import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
-import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
@@ -58,6 +54,8 @@
import org.omg.CORBA.ORB;
/**
+ * Tests of JBossClientMetaData from annotations + xml merging
+ *
* @author Scott.Stark at jboss.org
* @version $Revision:$
*/
@@ -70,6 +68,7 @@
resolver.addClassBindingForLocation("application-client_1_3.dtd", ApplicationClient14DTDMetaData.class);
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", JBossClient5DTDMetaData.class);
return resolver;
}
@@ -120,6 +119,13 @@
assertEquals("refs/resources/ResourcesOnClassBean", resourceClassBean.getMappedName());
assertEquals("refs/resources/ResourcesOnClassBean", resourceClassBean.getJndiName());
+ // jms Queue maps to message-destination-refs
+ MessageDestinationReferencesMetaData msgRefs = clientMD.getMessageDestinationReferences();
+ System.out.println(clientMD.getResourceEnvironmentReferences());
+ assertNotNull(msgRefs);
+ MessageDestinationReferenceMetaData sendQueue = clientMD.getMessageDestinationReferenceByName("sendQueue");
+ assertNotNull(sendQueue);
+
// ORB maps to a resource-env-ref
ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName("orb");
System.out.println(clientMD.getResourceEnvironmentReferences());
@@ -233,4 +239,80 @@
assertEquals("queue/testQueue", md.getJndiName());
assertEquals("queue/testQueue", md.getMappedName());
}
+
+ @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
+ public void testJBossXmlMerge()
+ throws Exception
+ {
+ AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+ Collection<Class<?>> classes = PackageScanner.loadClasses();
+ System.out.println("Processing classes: "+classes);
+ ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder);
+ ApplicationClient5MetaData clientMD = creator.create(classes);
+
+ ApplicationClient5MetaData xmlMD = super.unmarshal("AnnotationClient_testXmlMerge.xml", ApplicationClient5MetaData.class);
+ ApplicationClient5MetaData merged = new ApplicationClient5MetaData();
+ AnnotationMergedView.merge(merged, xmlMD, clientMD);
+
+ JBossClientMetaData jbossXmlMD = super.unmarshal(JBossClientMetaData.class);
+ // Create a merged view
+ JBossClientMetaData mergedMetaData = new JBossClientMetaData();
+ mergedMetaData.merge(jbossXmlMD, merged, false);
+
+ EnvironmentEntryMetaData msg = mergedMetaData.getEnvironmentEntryByName("msg");
+ assertNotNull(msg);
+ assertEquals("java.lang.String", msg.getType());
+ assertEquals("how are you?", msg.getValue());
+
+ LifecycleCallbacksMetaData postConstructs = mergedMetaData.getPostConstructs();
+ assertNotNull(postConstructs);
+ // 2 because of the null class name in the xml
+ assertEquals(2, postConstructs.size());
+ LifecycleCallbackMetaData pc0 = postConstructs.get(0);
+ assertEquals("postConstruct", pc0.getMethodName());
+
+ LifecycleCallbacksMetaData preDestroys = mergedMetaData.getPreDestroys();
+ assertNotNull(preDestroys);
+ // 2 because of the null class name in the xml
+ assertEquals(2, preDestroys.size());
+ LifecycleCallbackMetaData pd0 = preDestroys.get(0);
+ assertEquals("preDestroy", pd0.getMethodName());
+
+ assertEquals("org.jboss.ejb3.test.applicationclient.client.TestCallbackHandler", mergedMetaData.getCallbackHandler());
+
+ // jms Queue maps to message-destination-refs
+ MessageDestinationReferencesMetaData msgRefs = mergedMetaData.getMessageDestinationReferences();
+ System.out.println(clientMD.getResourceEnvironmentReferences());
+ assertNotNull(msgRefs);
+ MessageDestinationReferenceMetaData sendQueue = mergedMetaData.getMessageDestinationReferenceByName("sendQueue");
+ assertNotNull(sendQueue);
+ assertEquals("MDB_QUEUE", sendQueue.getJndiName());
+ assertEquals("MDB_QUEUE", sendQueue.getMappedName());
+
+ // ORB maps to a resource-env-ref
+ ResourceEnvironmentReferenceMetaData orbRes = mergedMetaData.getResourceEnvironmentReferenceByName("orb");
+ System.out.println(clientMD.getResourceEnvironmentReferences());
+ assertNotNull(orbRes);
+ assertEquals(ORB.class.getName(), orbRes.getType());
+ ResourceEnvironmentReferenceMetaData messageReplier = mergedMetaData.getResourceEnvironmentReferenceByName("messageReplier");
+ 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 = mergedMetaData.getMessageDestinationByName("MY-QUEUE");
+ assertNotNull(md);
+ assertEquals("queue/testQueue", md.getJndiName());
+ assertEquals("queue/testQueue", md.getMappedName());
+ }
}
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-05-01 21:58:17 UTC (rev 72960)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/basic/Client.java 2008-05-01 21:59:24 UTC (rev 72961)
@@ -27,6 +27,7 @@
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.ejb.EJB;
+import javax.jms.Queue;
import javax.transaction.UserTransaction;
import org.omg.CORBA.ORB;
@@ -51,6 +52,12 @@
resourceMethodBean = rif;
}
+ @Resource(name="sendQueue")
+ private static Queue sendQueue;
+
+ @Resource(name="receiveQueue")
+ private static Queue receiveQueue;
+
@Resource(name="queueName", mappedName="queue/testQueue")
private static String queueName;
@Resource(mappedName="3.14159", description="pi to 5", name="PI")
Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testJBossXmlMerge.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testJBossXmlMerge.xml 2008-05-01 21:58:17 UTC (rev 72960)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testJBossXmlMerge.xml 2008-05-01 21:59:24 UTC (rev 72961)
@@ -9,4 +9,14 @@
<resource-env-ref-name>messageReplier</resource-env-ref-name>
<jndi-name>queue/messageReplier</jndi-name>
</resource-env-ref>
+
+ <message-destination-ref>
+ <message-destination-ref-name>sendQueue</message-destination-ref-name>
+ <jndi-name>MDB_QUEUE</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref>
+ <message-destination-ref-name>receiveQueue</message-destination-ref-name>
+ <jndi-name>MDB_QUEUE_REPLY</jndi-name>
+ </message-destination-ref>
+
</jboss-client>
More information about the jboss-cvs-commits
mailing list