[jboss-cvs] JBossAS SVN: r66448 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/client/spec and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Oct 25 15:03:27 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-10-25 15:03:27 -0400 (Thu, 25 Oct 2007)
New Revision: 66448
Added:
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasicJBoss.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient14UnitTestCase.java
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasic.xml
Log:
Fix the merge of the client metadata
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 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -21,6 +21,8 @@
*/
package org.jboss.metadata.client.jboss;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
@@ -31,6 +33,7 @@
import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
@@ -65,17 +68,18 @@
/** The environment */
private RemoteEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
-
/** A list of extra dependencies to wait on */
private List<String> depends;
-
+ /** The legacy dtd public id */
private String dtdPublicId;
+ /** The legacy dtd system id */
private String dtdSystemId;
- /** The version of the client */
+ /** The version of the jboss client descriptor */
private String version;
/** The callback handler */
private String callbackHandler;
-
+ /** Whether the spec metadata is complete */
+ private boolean metaDataComplete;
/** The message destinations */
private MessageDestinationsMetaData messageDestinations;
@@ -135,6 +139,15 @@
this.version = version;
}
+
+ public boolean isMetaDataComplete()
+ {
+ return metaDataComplete;
+ }
+ public void setMetaDataComplete(boolean metaDataComplete)
+ {
+ this.metaDataComplete = metaDataComplete;
+ }
public String getCallbackHandler()
{
return callbackHandler;
@@ -291,17 +304,29 @@
MessageDestinationsMetaData specMsgs = null;
if(jboss != null)
{
- setDepends(jboss.depends);
- this.setJndiName(jboss.jndiName);
- this.dtdPublicId = jboss.dtdPublicId;
- this.dtdSystemId = jboss.dtdSystemId;
- this.version = jboss.version;
+ if(jboss.depends != null)
+ setDepends(jboss.depends);
+ if(jboss.jndiName != null)
+ this.setJndiName(jboss.jndiName);
+ else if(jboss.getDescriptionGroup() != null && jboss.getDescriptionGroup().getDisplayName() != null)
+ this.setJndiName(jboss.getDescriptionGroup().getDisplayName());
+ if(jboss.dtdPublicId != null)
+ this.dtdPublicId = jboss.dtdPublicId;
+ if(jboss.dtdSystemId != null)
+ this.dtdSystemId = jboss.dtdSystemId;
+ if(jboss.version != null)
+ this.version = jboss.version;
jbossEnv = jboss.getJndiEnvironmentRefsGroup();
+ jbossMsgs = jboss.getMessageDestinations();
}
if(spec != null)
{
specEnv = spec.getJndiEnvironmentRefsGroup();
specMsgs = spec.getMessageDestinations();
+ if(jndiName == null && spec.getDescriptionGroup() != null && spec.getDescriptionGroup().getDisplayName() != null)
+ setJndiName(spec.getDescriptionGroup().getDisplayName());
+ metaDataComplete = spec.isMetadataComplete();
+ specMsgs = spec.getMessageDestinations();
}
if(jboss != null && jboss.callbackHandler != null)
@@ -309,10 +334,114 @@
else if(spec != null && spec.getCallbackHandler() != null)
this.setCallbackHandler(spec.getCallbackHandler());
- jndiEnvironmentRefsGroup = new RemoteEnvironmentRefsGroupMetaData();
- jndiEnvironmentRefsGroup.merge(jbossEnv, specEnv, mustOverride);
+ if(jndiEnvironmentRefsGroup == null)
+ jndiEnvironmentRefsGroup = new RemoteEnvironmentRefsGroupMetaData();
+ jndiEnvironmentRefsGroup.merge(jbossEnv, specEnv, false);
- messageDestinations = new MessageDestinationsMetaData();
- messageDestinations.merge(jbossMsgs, specMsgs);
+ // Get the merged resource-env-refs
+ ResourceEnvironmentReferencesMetaData resEnvRefs = jndiEnvironmentRefsGroup.getResourceEnvironmentReferences();
+
+ // Merge the message-destinations
+ messageDestinations = MessageDestinationsMetaData.merge(jbossMsgs, specMsgs, "jboss-client.xml", "application-client.xml");
+
+ /* Need to map message-destinations to resource-env-refs for legacy
+ * descriptors that did not have message-destinations
+ */
+ if(messageDestinations != null && resEnvRefs != null)
+ {
+ for(MessageDestinationMetaData md : messageDestinations)
+ {
+ if(md.getMappedName() == null)
+ {
+ ResourceEnvironmentReferenceMetaData ref = resEnvRefs.get(md.getMessageDestinationName());
+ if(ref != null)
+ md.setMappedName(ref.getMappedName());
+ }
+ }
+ }
+
+ /** A HashMap<String, ArrayList<MessageDestinationReferenceMetaData>> of
+ * message-destination-ref that resolve to a jndi-name via a message-destination
+ * via a message-destination-link
+ */
+ HashMap<String, ArrayList<MessageDestinationReferenceMetaData>> resourceEnvReferenceLinks
+ = new HashMap<String, ArrayList<MessageDestinationReferenceMetaData>>();
+ /* Merge the message-destination-ref elements
+ This is a bit convoluted because legacy jboss descriptors did not support
+ message-destination-ref elements.
+ A message-destination-ref is linked to a jndi-name either via
+ the message-destination-ref/message-destination-ref-name mapping to
+ a jboss resource-env-ref/resource-env-ref-name if there is no
+ message-destination-link, or by the message-destination-link ->
+ message-destination/message-destination-name mapping to a jboss
+ resource-env-ref/resource-env-ref-name.
+ */
+ if(specEnv != null)
+ {
+ ResourceEnvironmentReferencesMetaData specEnvRefs = specEnv.getResourceEnvironmentReferences();
+ MessageDestinationReferencesMetaData specMsgRefs = specEnv.getMessageDestinationReferences();
+ MessageDestinationReferencesMetaData msgRefs = jndiEnvironmentRefsGroup.getMessageDestinationReferences();
+ if(msgRefs == null)
+ {
+ msgRefs = new MessageDestinationReferencesMetaData();
+ jndiEnvironmentRefsGroup.setMessageDestinationReferences(msgRefs);
+ }
+ if(specMsgRefs != null)
+ for(MessageDestinationReferenceMetaData ref : specMsgRefs)
+ {
+ ref = (MessageDestinationReferenceMetaData)ref.clone();
+ String link = ref.getLink();
+ if (link != null)
+ {
+ ArrayList<MessageDestinationReferenceMetaData> linkedRefs = resourceEnvReferenceLinks.get(link);
+ if (linkedRefs == null)
+ {
+ linkedRefs = new ArrayList<MessageDestinationReferenceMetaData>();
+ resourceEnvReferenceLinks.put(link, linkedRefs);
+ }
+ linkedRefs.add(ref);
+ }
+ msgRefs.add(ref);
+ }
+
+ // Merge the spec resource-env-refs
+ if(resEnvRefs != null && specEnvRefs != null)
+ for(ResourceEnvironmentReferenceMetaData ref : resEnvRefs)
+ {
+ String resRefName = ref.getResourceEnvRefName();
+ ResourceEnvironmentReferenceMetaData specRef = specEnvRefs.get(resRefName);
+ if (specRef == null)
+ {
+ // Try the resourceEnvReferenceLinks
+ ArrayList<MessageDestinationReferenceMetaData> linkedRefs = resourceEnvReferenceLinks.get(resRefName);
+ if (linkedRefs != null)
+ {
+ for(MessageDestinationReferenceMetaData mref : linkedRefs)
+ {
+ if(mref.getIgnoreDependency() != null)
+ ref.setIgnoreDependency(mref.getIgnoreDependency());
+ if(mref.getType() != null)
+ ref.setType(mref.getType());
+ mref.setMappedName(ref.getMappedName());
+ }
+ }
+ else if(msgRefs.containsKey(resRefName))
+ {
+ MessageDestinationReferenceMetaData mref = msgRefs.get(resRefName);
+ mref.setMappedName(ref.getMappedName());
+ }
+ else
+ {
+ throw new IllegalStateException("resource-env-ref " + resRefName + " found in jboss-client.xml but not in application-client.xml");
+ }
+ }
+ else
+ {
+ // Merge the spec ref into the jboss ref
+ ref.merge(null, specRef);
+ }
+ }
+ }
+
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -21,6 +21,7 @@
*/
package org.jboss.metadata.client.spec;
+import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -64,6 +65,8 @@
private String version;
/** The callback handler */
private String callbackHandler;
+ /** The metadata-complete attribute */
+ private boolean metadataComplete;
/** The message destinations */
private MessageDestinationsMetaData messageDestinations;
@@ -117,6 +120,17 @@
this.version = version;
}
+
+ public boolean isMetadataComplete()
+ {
+ return metadataComplete;
+ }
+ @XmlAttribute(name="metadata-complete")
+ public void setMetadataComplete(boolean metadataComplete)
+ {
+ this.metadataComplete = metadataComplete;
+ }
+
public String getCallbackHandler()
{
return callbackHandler;
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -22,6 +22,7 @@
package org.jboss.metadata.javaee.spec;
import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
+import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
/**
* MessageDestinationsMetaData.
@@ -35,34 +36,36 @@
private static final long serialVersionUID = -6198704374773701253L;
/**
- * Create a new MessageDestinationsMetaData.
+ /**
+ * Merge the contents of override with original into a new MessageDestinationsMetaData.
+ * @param override - metadata augmenting overriden
+ * @param overriden - the base metadata
+ * @param overridenFile - the source of the override destinations
+ * @param overrideFile- the source of the overriden destinations
+ * @return a new merged MessageDestinationsMetaData if either
+ * override and overriden is not null, null otherwise.
*/
- public MessageDestinationsMetaData()
+ public static MessageDestinationsMetaData merge(MessageDestinationsMetaData override,
+ MessageDestinationsMetaData overriden,
+ String overridenFile, String overrideFile)
{
- super("message destination name");
+ if (override == null && overriden == null)
+ return null;
+
+ if (override == null)
+ return overriden;
+
+ MessageDestinationsMetaData merged = new MessageDestinationsMetaData();
+ // mustOverride is false because legacy jboss descriptors not having a message-destination
+ return JavaEEMetaDataUtil.merge(merged, overriden, override, "message-destination", overridenFile, overrideFile, false);
}
/**
- * Merge the contents of override with original into this.
- *
- * @param override data which overrides original
- * @param original the original data
+ * Create a new MessageDestinationsMetaData.
*/
- public void merge(MessageDestinationsMetaData override, MessageDestinationsMetaData original)
+ public MessageDestinationsMetaData()
{
- if(original == null && override != null)
- addAll(override);
- else if(override != null)
- {
- for(MessageDestinationMetaData md : override)
- {
- MessageDestinationMetaData mergedMD = new MessageDestinationMetaData();
- MessageDestinationMetaData mdOrig = original.get(md.getMessageDestinationName());
- if(mdOrig != null)
- mergedMD.merge(md, mdOrig);
- }
- }
- else
- addAll(original);
+ super("message destination name");
}
+
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferencesMetaData.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferencesMetaData.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -53,7 +53,7 @@
return overriden;
ResourceEnvironmentReferencesMetaData merged = new ResourceEnvironmentReferencesMetaData();
- return JavaEEMetaDataUtil.merge(merged, overriden, override, "resource-env-ref", overridenFile, overrideFile, true);
+ return JavaEEMetaDataUtil.merge(merged, overriden, override, "resource-env-ref", overridenFile, overrideFile, false);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -213,6 +213,10 @@
setResSharingScope(override.sharingScope);
else if (original.sharingScope != null)
setResSharingScope(original.sharingScope);
+ if (override != null && override.resUrl != null)
+ setResUrl(override.resUrl);
+ else if (original.resUrl != null)
+ setResUrl(original.resUrl);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -68,4 +68,14 @@
throw new IllegalArgumentException("Null descriptionGroup");
this.descriptionGroup = descriptionGroup;
}
+
+ public void merge(IdMetaDataImplWithDescriptionGroup override,
+ IdMetaDataImplWithDescriptionGroup original)
+ {
+ super.merge(override, original);
+ if(override != null && override.descriptionGroup != null)
+ setDescriptionGroup(override.descriptionGroup);
+ else if(original != null && original.descriptionGroup != null)
+ setDescriptionGroup(original.descriptionGroup);
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -73,9 +73,9 @@
public void merge(ResourceInjectionMetaDataWithDescriptions override, ResourceInjectionMetaDataWithDescriptions original)
{
super.merge(override, original);
- if(override.descriptions != null)
+ if(override != null && override.descriptions != null)
setDescriptions(override.descriptions);
- else if(original.descriptions != null)
+ else if(original != null && original.descriptions != null)
setDescriptions(original.descriptions);
}
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient14UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient14UnitTestCase.java 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient14UnitTestCase.java 2007-10-25 19:03:27 UTC (rev 66448)
@@ -23,14 +23,20 @@
import java.util.Set;
+import org.jboss.metadata.client.jboss.JBossClient5DTDMetaData;
+import org.jboss.metadata.client.jboss.JBossClientMetaData;
import org.jboss.metadata.client.spec.ApplicationClient14MetaData;
import org.jboss.metadata.client.spec.ApplicationClientMetaData;
import org.jboss.metadata.ear.spec.Ear13DTDMetaData;
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.MessageDestinationUsageType;
import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
@@ -53,6 +59,7 @@
{
DefaultSchemaResolver resolver = new DefaultSchemaResolver();
resolver.addClassBindingForLocation("application-client_1_4.xsd", ApplicationClient14MetaData.class);
+ resolver.addClassBindingForLocation("jboss-client_4_0.dtd", JBossClient5DTDMetaData.class);
return resolver;
}
@@ -60,8 +67,83 @@
{
ApplicationClientMetaData appClientMetaData = unmarshal();
assertEquals("1.4", appClientMetaData.getVersion());
+ assertEquals("A sample application client descriptor", appClientMetaData.getDescriptionGroup().getDescription());
+ assertEquals("J2EE Client Tests", appClientMetaData.getDescriptionGroup().getDisplayName());
+ assertEquals("org.jboss.test.client.test.SystemPropertyCallbackHandler", appClientMetaData.getCallbackHandler());
+ assertEquals(3, appClientMetaData.getEnvironmentEntries().size());
}
-
+
+ public void testBasicOverrides() throws Exception
+ {
+ ApplicationClientMetaData appClientMetaData = unmarshal("ApplicationClient14_testBasic.xml", ApplicationClientMetaData.class, null);
+ JBossClientMetaData jbossClientMetaData = unmarshal("ApplicationClient14_testBasicJBoss.xml", JBossClientMetaData.class, null);
+ JBossClientMetaData metaData = new JBossClientMetaData();
+ metaData.merge(jbossClientMetaData, appClientMetaData, true);
+
+ assertEquals("org.jboss.test.client.test.SystemPropertyCallbackHandler", metaData.getCallbackHandler());
+ assertEquals("A sample application client descriptor", metaData.getDescriptionGroup().getDescription());
+ assertEquals("J2EE Client Tests", metaData.getDescriptionGroup().getDisplayName());
+ assertEquals("test-client", metaData.getJndiName());
+ assertEquals("4.0", metaData.getVersion());
+
+ // Validate the resource-refs
+ ResourceReferenceMetaData res0 = metaData.getResourceReferenceByName("url/JBossHome");
+ assertNotNull(res0);
+ assertNull(res0.getJndiName());
+ assertNull(res0.getMappedName());
+ assertEquals("java.net.URL", res0.getType());
+ assertTrue(res0.isContainerAuth());
+ assertEquals("The JBoss Web Site HomePage", res0.getDescriptions().value()[0].value());
+ assertEquals("http://www.jboss.org", res0.getResUrl());
+ ResourceReferenceMetaData res1 = metaData.getResourceReferenceByName("url/IndirectURL");
+ assertNotNull(res1);
+ assertEquals("SomeWebSite", res1.getJndiName());
+ assertEquals("SomeWebSite", res1.getMappedName());
+ assertEquals("java.net.URL", res1.getType());
+ assertTrue(res1.isContainerAuth());
+ assertEquals("SomeWebSite HomePage", res1.getDescriptions().value()[0].value());
+ assertNull(res1.getResUrl());
+ // Validate the resource-env-refs
+ ResourceEnvironmentReferenceMetaData res2 = metaData.getResourceEnvironmentReferenceByName("jms/aQueue");
+ assertNotNull(res2);
+ assertEquals("A test of the resource-env-ref tag", res2.getDescriptions().value()[0].value());
+ assertEquals("jms/aQueue", res2.getResourceEnvRefName());
+ assertEquals("javax.jms.Queue", res2.getType());
+ assertEquals("queue/testQueue", res2.getJndiName());
+ assertEquals("queue/testQueue", res2.getMappedName());
+ // This is legacy behavior that should be dropped?
+ ResourceEnvironmentReferenceMetaData res3 = metaData.getResourceEnvironmentReferenceByName("jms/anotherQueue");
+ assertNotNull(res3);
+ // Validate the message-destination-refs
+ MessageDestinationReferenceMetaData msg1 = metaData.getMessageDestinationReferenceByName("jms/anotherQueue");
+ assertNotNull(msg1);
+ assertEquals("A message-destination-ref needing a jboss/resource-env-ref", msg1.getDescriptions().value()[0].value());
+ assertEquals("jms/anotherQueue", msg1.getMessageDestinationRefName());
+ assertEquals("javax.jms.Queue", msg1.getType());
+ assertNull(msg1.getLink());
+ assertEquals(MessageDestinationUsageType.Consumes, msg1.getMessageDestinationUsage());
+ assertEquals("queue/A", msg1.getJndiName());
+ assertEquals("queue/A", msg1.getMappedName());
+ MessageDestinationReferenceMetaData msg2 = metaData.getMessageDestinationReferenceByName("jms/anotherQueue2");
+ assertNotNull(msg2);
+ assertNull(msg2.getDescriptions());
+ assertEquals("jms/anotherQueue2", msg2.getMessageDestinationRefName());
+ assertEquals("javax.jms.Queue", msg2.getType());
+ assertEquals("TheOtherQueue", msg2.getLink());
+ assertEquals(MessageDestinationUsageType.Consumes, msg2.getMessageDestinationUsage());
+ assertEquals("queue/B", msg2.getJndiName());
+ assertEquals("queue/B", msg2.getMappedName());
+ // Validate message-destination
+ MessageDestinationsMetaData msgDests = metaData.getMessageDestinations();
+ assertEquals(1, msgDests.size());
+ MessageDestinationMetaData md0 = msgDests.get("TheOtherQueue");
+ assertEquals("Some msg destination needing a jboss/resource-env-ref", md0.getDescriptionGroup().getDescription());
+ assertEquals("TheOtherQueue", md0.getMessageDestinationName());
+ assertEquals("TheOtherQueue-id", md0.getId());
+ assertEquals("queue/B", md0.getJndiName());
+ assertEquals("queue/B", md0.getMappedName());
+ }
+
protected ApplicationClientMetaData unmarshal() throws Exception
{
return unmarshal(ApplicationClientMetaData.class);
Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasic.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasic.xml 2007-10-25 18:23:16 UTC (rev 66447)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasic.xml 2007-10-25 19:03:27 UTC (rev 66448)
@@ -59,6 +59,7 @@
</resource-env-ref>
<message-destination-ref>
+ <description>A message-destination-ref needing a jboss/resource-env-ref</description>
<message-destination-ref-name>jms/anotherQueue</message-destination-ref-name>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-usage>Consumes</message-destination-usage>
@@ -73,7 +74,8 @@
<callback-handler>org.jboss.test.client.test.SystemPropertyCallbackHandler</callback-handler>
- <message-destination>
+ <message-destination id="TheOtherQueue-id">
+ <description>Some msg destination needing a jboss/resource-env-ref</description>
<message-destination-name>TheOtherQueue</message-destination-name>
</message-destination>
</application-client>
\ No newline at end of file
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasicJBoss.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasicJBoss.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasicJBoss.xml 2007-10-25 19:03:27 UTC (rev 66448)
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE jboss-client PUBLIC
+ "-//JBoss//DTD Application Client 4.0//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-client_4_0.dtd">
+
+<!-- The jboss-client doc for testing overrides to the
+ ApplicationClient14_testBasic.xml spec document
+ -->
+<jboss-client>
+ <jndi-name>test-client</jndi-name>
+
+ <ejb-ref>
+ <ejb-ref-name>ejb/StatelessSessionBean</ejb-ref-name>
+ <jndi-name>ejbcts/StatelessSessionHome</jndi-name>
+ </ejb-ref>
+
+ <resource-ref>
+ <res-ref-name>url/JBossHome</res-ref-name>
+ <res-url>http://www.jboss.org</res-url>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>url/IndirectURL</res-ref-name>
+ <jndi-name>SomeWebSite</jndi-name>
+ </resource-ref>
+
+ <resource-env-ref>
+ <resource-env-ref-name>jms/aQueue</resource-env-ref-name>
+ <jndi-name>queue/testQueue</jndi-name>
+ </resource-env-ref>
+ <!-- Map the message-destination-ref without a message-destination-link -->
+ <resource-env-ref>
+ <resource-env-ref-name>jms/anotherQueue</resource-env-ref-name>
+ <jndi-name>queue/A</jndi-name>
+ </resource-env-ref>
+ <!-- Map the message-destination-ref with a message-destination-link -->
+ <resource-env-ref>
+ <resource-env-ref-name>TheOtherQueue</resource-env-ref-name>
+ <jndi-name>queue/B</jndi-name>
+ </resource-env-ref>
+</jboss-client>
Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient14_testBasicJBoss.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
More information about the jboss-cvs-commits
mailing list