[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