[jboss-cvs] JBossAS SVN: r74508 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/javaee/jboss and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 12 19:08:29 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-06-12 19:08:29 -0400 (Thu, 12 Jun 2008)
New Revision: 74508
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractWebServiceRefProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java
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_testXmlMerge.xml
Log:
JBMETA-44 use @WebServiceRef.type() value for service-interface if @WebServiceRef.value() is not provided (to be re-viewed) and tests
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractWebServiceRefProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractWebServiceRefProcessor.java 2008-06-12 23:07:53 UTC (rev 74507)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractWebServiceRefProcessor.java 2008-06-12 23:08:29 UTC (rev 74508)
@@ -104,6 +104,8 @@
ref.setServiceRefType(getType(element));
if(annotation.value() != Object.class)
ref.setServiceInterface(annotation.value().getName());
+ else
+ ref.setServiceInterface(ref.getServiceRefType());
String injectionName = getInjectionName(element);
Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element);
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java 2008-06-12 23:07:53 UTC (rev 74507)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java 2008-06-12 23:08:29 UTC (rev 74508)
@@ -195,9 +195,7 @@
*/
public void merge(JBossServiceReferenceMetaData override, ServiceReferenceMetaData original)
{
- ServiceReferenceMetaData sr0 = override;
- ServiceReferenceMetaData sr1 = original;
- super.merge(sr0, sr1);
+ super.merge(override, original);
// TODO: how to merge portComponentRef
if (original != null && original.getPortComponentRef() != null)
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java 2008-06-12 23:07:53 UTC (rev 74507)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java 2008-06-12 23:08:29 UTC (rev 74508)
@@ -25,8 +25,8 @@
import javax.xml.bind.annotation.XmlType;
+import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
-import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
/**
* JBoss service-ref metadata
@@ -61,9 +61,33 @@
return null;
// TODO: if overriden is empty, it's silly to do a merge
+ JBossServiceReferencesMetaData merged = new JBossServiceReferencesMetaData();
+ // add originals
+ if(overriden != null)
+ {
+ for(ServiceReferenceMetaData serviceRef : overriden)
+ {
+ ServiceReferenceMetaData jbossServiceRef = null;
+ if(override != null)
+ jbossServiceRef = override.get(serviceRef.getServiceRefName());
+ if(jbossServiceRef == null)
+ jbossServiceRef = new JBossServiceReferenceMetaData();
+ jbossServiceRef = jbossServiceRef.merge(serviceRef);
+ merged.add(jbossServiceRef);
+ }
+ }
- JBossServiceReferencesMetaData merged = new JBossServiceReferencesMetaData();
- JavaEEMetaDataUtil.merge(merged, overriden, override, "service-ref", overridenFile, overrideFile, false);
+ if(override != null)
+ {
+ for(ServiceReferenceMetaData serviceRef : override)
+ {
+ ServiceReferenceMetaData jbossServiceRef = serviceRef;
+ if(!merged.containsKey(jbossServiceRef.getServiceRefName()))
+ merged.add(jbossServiceRef);
+ }
+ }
+
+ //JavaEEMetaDataUtil.merge(merged, overriden, override, "service-ref", overridenFile, overrideFile, false);
return merged;
}
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-06-12 23:07:53 UTC (rev 74507)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java 2008-06-12 23:08:29 UTC (rev 74508)
@@ -35,6 +35,8 @@
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.javaee.jboss.JBossServiceReferenceMetaData;
+import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
@@ -46,6 +48,7 @@
import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
import org.jboss.test.metadata.annotation.client.basic.Client;
import org.jboss.test.metadata.annotation.client.basic.DefaultWebServiceService;
import org.jboss.test.metadata.annotation.client.basic.ResourceIF;
@@ -89,10 +92,8 @@
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);
- System.out.println(clientMD.getAnnotatedEjbReferences());
assertEquals(3, clientMD.getAnnotatedEjbReferences().size());
AnnotatedEJBReferenceMetaData resourceMethodBean = clientMD.getAnnotatedEjbReferences().get("resourceMethodBean");
@@ -124,7 +125,6 @@
// 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);
@@ -137,7 +137,6 @@
// ORB maps to a resource-env-ref
ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName("orb");
- System.out.println(clientMD.getResourceEnvironmentReferences());
assertNotNull(orbRes);
Set<ResourceInjectionTargetMetaData> orbResTargets = orbRes.getInjectionTargets();
assertNotNull(orbResTargets);
@@ -160,7 +159,6 @@
// UserTransaction
// String maps to env-entry
- System.out.println(clientMD.getEnvironmentEntries());
EnvironmentEntryMetaData queueNameEntry = clientMD.getEnvironmentEntryByName("queueName");
assertNotNull(queueNameEntry);
assertEquals("queue/testQueue", queueNameEntry.getValue());
@@ -197,6 +195,7 @@
ResourceInjectionTargetMetaData wsRefFieldTarget = wsRefTargets.iterator().next();
assertEquals(Client.class.getName(), wsRefFieldTarget.getInjectionTargetClass());
assertEquals("service", wsRefFieldTarget.getInjectionTargetName());
+ assertEquals(wsRefField.getType().getName(), wsRef.getServiceInterface());
}
@ScanPackage("org.jboss.test.metadata.annotation.client.basic")
@@ -205,15 +204,17 @@
{
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(ApplicationClient5MetaData.class);
+ EnvironmentEntryMetaData msg = xmlMD.getEnvironmentEntryByName("msg");
+ assertNotNull(msg);
+
ApplicationClient5MetaData merged = new ApplicationClient5MetaData();
AnnotationMergedView.merge(merged, xmlMD, clientMD);
- EnvironmentEntryMetaData msg = merged.getEnvironmentEntryByName("msg");
+ msg = merged.getEnvironmentEntryByName("msg");
assertNotNull(msg);
assertEquals("java.lang.String", msg.getType());
assertEquals("how are you?", msg.getValue());
@@ -236,7 +237,6 @@
// ORB maps to a resource-env-ref
ResourceEnvironmentReferenceMetaData orbRes = merged.getResourceEnvironmentReferenceByName("orb");
- System.out.println(clientMD.getResourceEnvironmentReferences());
assertNotNull(orbRes);
assertEquals(ORB.class.getName(), orbRes.getType());
ResourceEnvironmentReferenceMetaData messageReplier = merged.getResourceEnvironmentReferenceByName("messageReplier");
@@ -244,7 +244,6 @@
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());
@@ -259,6 +258,10 @@
assertNotNull(md);
assertEquals("queue/testQueue", md.getJndiName());
assertEquals("queue/testQueue", md.getMappedName());
+
+ ServiceReferencesMetaData serviceReferences = merged.getServiceReferences();
+ assertNotNull(serviceReferences);
+ assertEquals(1, serviceReferences.size());
}
@ScanPackage("org.jboss.test.metadata.annotation.client.basic")
@@ -267,9 +270,8 @@
{
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 clientMD = creator.create(classes);
ApplicationClient5MetaData xmlMD = super.unmarshal("AnnotationClient_testXmlMerge.xml", ApplicationClient5MetaData.class);
ApplicationClient5MetaData merged = new ApplicationClient5MetaData();
@@ -303,7 +305,6 @@
// 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);
@@ -328,7 +329,6 @@
// 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");
@@ -336,8 +336,7 @@
assertEquals("javax.jms.Queue", messageReplier.getType());
// String maps to env-entry
- System.out.println(clientMD.getEnvironmentEntries());
- EnvironmentEntryMetaData queueNameEntry = clientMD.getEnvironmentEntryByName("queueName");
+ EnvironmentEntryMetaData queueNameEntry = mergedMetaData.getEnvironmentEntryByName("queueName");
assertNotNull(queueNameEntry);
assertEquals("queue/testQueueOverride", queueNameEntry.getValue());
Set<ResourceInjectionTargetMetaData> queueNameEntryTargets = queueNameEntry.getInjectionTargets();
@@ -351,5 +350,21 @@
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());
+ assertEquals("http://localhost:8080/WSDefaultWebServiceApp/jws/defaultWebService?WSDL", serviceRef.getWsdlOverride());
+ Field wsRefField = Client.class.getDeclaredField("service");
+ //assertEquals(wsRefField, serviceRef.getAnnotatedElement());
+ assertEquals(DefaultWebServiceService.class.getName(), serviceRef.getServiceRefType());
+ Set<ResourceInjectionTargetMetaData> wsRefTargets = serviceRef.getInjectionTargets();
+ ResourceInjectionTargetMetaData wsRefFieldTarget = wsRefTargets.iterator().next();
+ assertEquals(Client.class.getName(), wsRefFieldTarget.getInjectionTargetClass());
+ assertEquals("service", wsRefFieldTarget.getInjectionTargetName());
+ assertEquals(wsRefField.getType().getName(), serviceRef.getServiceInterface());
}
}
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-06-12 23:07:53 UTC (rev 74507)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testJBossXmlMerge.xml 2008-06-12 23:08:29 UTC (rev 74508)
@@ -4,6 +4,11 @@
"http://www.jboss.org/j2ee/dtd/jboss-client_5_0.dtd">
<jboss-client>
<jndi-name>ee5client_test</jndi-name>
+
+ <service-ref>
+ <service-ref-name>service/somewebservice</service-ref-name>
+ <wsdl-override>http://localhost:8080/WSDefaultWebServiceApp/jws/defaultWebService?WSDL</wsdl-override>
+ </service-ref>
<resource-ref>
<res-ref-name>queueConnectionFactory</res-ref-name>
@@ -22,5 +27,7 @@
<message-destination-ref-name>receiveQueue</message-destination-ref-name>
<jndi-name>MDB_QUEUE_REPLY</jndi-name>
</message-destination-ref>
+
</jboss-client>
+
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-06-12 23:07:53 UTC (rev 74507)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testXmlMerge.xml 2008-06-12 23:08:29 UTC (rev 74508)
@@ -17,6 +17,26 @@
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>queue/testQueueOverride</env-entry-value>
</env-entry>
+
+ <service-ref>
+ <service-ref-name>service/somewebservice</service-ref-name>
+ <service-interface>org.jboss.test.metadata.annotation.client.basic.DefaultWebServiceService</service-interface>
+ <port-component-ref>
+ <service-endpoint-interface>org.objectweb.ws.beans.ssbendpoint.MyService</service-endpoint-interface>
+ <port-component-link>ejb_module.jar#PortComponentName</port-component-link>
+ </port-component-ref>
+ <handler>
+ <handler-name>MyHandler</handler-name>
+ <handler-class>org.objectweb.ws.handlers.myHandler</handler-class>
+ <init-param>
+ <param-name>param_1</param-name>
+ <param-value>value_1</param-value>
+ </init-param>
+ <soap-header>MyWSDLHeader</soap-header>
+ <soap-role>http://actor.soap.objectweb.org</soap-role>
+ <port-name>myWSDLPort</port-name>
+ </handler>
+ </service-ref>
<resource-env-ref>
<resource-env-ref-name>messageReplier</resource-env-ref-name>
More information about the jboss-cvs-commits
mailing list