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();
assertNotNull(msgRefs);
MessageDestinationReferenceMetaData sendQueue = mergedMetaData.getMessageDestinationReferenceByName("sendQueue");
assertNotNull(sendQueue);
assertEquals("MDB_QUEUE", sendQueue.getJndiName());
assertEquals("MDB_QUEUE", sendQueue.getMappedName());
Set<ResourceInjectionTargetMetaData> sendQueueTargets = sendQueue.getInjectionTargets();
assertEquals(1, sendQueueTargets.size());
ResourceInjectionTargetMetaData sendQueueField = sendQueueTargets.iterator().next();
assertEquals(Client.class.getName(), sendQueueField.getInjectionTargetClass());
assertEquals("sendQueue", sendQueueField.getInjectionTargetName());
// jms queue connection factory maps to resource-ref
ResourceReferenceMetaData qcfRef = mergedMetaData.getResourceReferenceByName("queueConnectionFactory");
assertNotNull(qcfRef);
assertEquals("jms/QueueConnectionFactory", qcfRef.getJndiName());
assertEquals("jms/QueueConnectionFactory", qcfRef.getMappedName());
Set<ResourceInjectionTargetMetaData> qcfRefTargets = qcfRef.getInjectionTargets();
assertEquals(1, qcfRefTargets.size());
ResourceInjectionTargetMetaData qcfRefField = qcfRefTargets.iterator().next();
assertEquals(Client.class.getName(), qcfRefField.getInjectionTargetClass());
assertEquals("queueConnectionFactory", qcfRefField.getInjectionTargetName());
// ORB maps to a resource-env-ref
ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName(Client.class.getName() + "/orb");
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
EnvironmentEntryMetaData queueNameEntry = mergedMetaData.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());
JBossServiceReferencesMetaData serviceReferences = (JBossServiceReferencesMetaData) mergedMetaData.getServiceReferences();
assertNotNull(serviceReferences);
assertEquals(1, serviceReferences.size());
JBossServiceReferenceMetaData serviceRef = (JBossServiceReferenceMetaData) serviceReferences.iterator().next();
assertNotNull(serviceRef);
assertEquals("service/somewebservice", serviceRef.getServiceRefName());