[jboss-cvs] JBossAS SVN: r66468 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/javaee/spec and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 25 18:44:57 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-25 18:44:57 -0400 (Thu, 25 Oct 2007)
New Revision: 66468

Added:
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21_testServiceRefs.xml
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.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/main/java/org/jboss/metadata/javaee/spec/PortComponentRef.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerChainMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss42UnitTestCase.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss42_testServiceRefQname.xml
Log:
Update the service-ref types and merge logic

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -21,6 +21,7 @@
  */
 package org.jboss.metadata.javaee.jboss;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -96,5 +97,33 @@
       this.stubProperties = stubProperties;
    }
 
-   
+   public JBossPortComponentRef merge(JBossPortComponentRef ref)
+   {
+      JBossPortComponentRef merged = new JBossPortComponentRef();
+      merged.merge(this, ref);
+      return merged;
+   }
+
+   public void merge(JBossPortComponentRef override, JBossPortComponentRef original)
+   {
+      super.merge(override, original);
+      if(override != null && override.portQname != null)
+         portQname = override.portQname;
+      else if(original != null && original.portQname != null)
+         portQname = override.portQname;
+      if(override != null && override.configName != null)
+         configName = override.configName;
+      else if(original != null && original.configName != null)
+         configName = override.configName;
+      if(override != null && override.configFile != null)
+         configFile = override.configFile;
+      else if(original != null && original.configFile != null)
+         configFile = override.configFile;
+      if(stubProperties == null)
+         stubProperties = new ArrayList<StubPropertyMetaData>();
+      if(override != null && override.stubProperties != null)
+         stubProperties.addAll(override.stubProperties);
+      else if(original != null && original.stubProperties != null)
+         stubProperties.addAll(original.stubProperties);
+   }
 }

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	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -21,11 +21,17 @@
  */
 package org.jboss.metadata.javaee.jboss;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
 
+import org.jboss.metadata.javaee.spec.PortComponentRef;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerChainsMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlersMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 
 /**
       <xsd:sequence>
@@ -60,7 +66,7 @@
    /** The handler-chain */
    private String handlerChain;
    
-   private JBossPortComponentRef portComponentRef;
+   private List<JBossPortComponentRef> jbossPortComponentRef;
 
    /** The wsdl file override */
    private String wsdlOverride;
@@ -136,14 +142,15 @@
    }
 
    
-   public JBossPortComponentRef getPortComponentRef()
+   public List<? extends PortComponentRef> getJBossPortComponentRef()
    {
-      return portComponentRef;
+      return jbossPortComponentRef;
    }
 
-   public void setPortComponentRef(JBossPortComponentRef portComponentRef)
+   @XmlElement(name="port-component-ref", type=JBossPortComponentRef.class)
+   public void setJBossPortComponentRef(List<? extends PortComponentRef> portComponentRef)
    {
-      this.portComponentRef = portComponentRef;
+      this.jbossPortComponentRef = (List<JBossPortComponentRef>) portComponentRef;
    }
 
    public String getWsdlOverride()
@@ -156,6 +163,12 @@
       this.wsdlOverride = wsdlOverride;
    }
 
+   public ServiceReferenceMetaData merge(ServiceReferenceMetaData original)
+   {
+      JBossServiceReferenceMetaData merged = new JBossServiceReferenceMetaData();
+      merged.merge(this, original);
+      return merged;      
+   }
    public JBossServiceReferenceMetaData merge(JBossServiceReferenceMetaData original)
    {
       JBossServiceReferenceMetaData merged = new JBossServiceReferenceMetaData();
@@ -168,44 +181,45 @@
     * @param override data which overrides original
     * @param original the original data
     */
-   public void merge(JBossServiceReferenceMetaData override, JBossServiceReferenceMetaData original)
+   public void merge(JBossServiceReferenceMetaData override, ServiceReferenceMetaData original)
    {
       ServiceReferenceMetaData sr0 = override;
       ServiceReferenceMetaData sr1 = original;
       super.merge(sr0, sr1);
-      /* TODO
-      if (override != null && override.serviceClass != null)
-         this.serviceClass = override.serviceClass;
-      else if (original.serviceInterface != null)
-         setServiceInterface(original.serviceInterface);
-      if(override != null && override.serviceRefType != null)
-         setServiceRefType(override.serviceRefType);
-      else if (original.serviceRefType != null)
-         setServiceRefType(original.serviceRefType);
-      if(override != null && override.wsdlFile != null)
-         setWsdlFile(override.wsdlFile);
-      else if (original.wsdlFile != null)
-         setWsdlFile(original.wsdlFile);
-      if(override != null && override.jaxrpcMappingFile != null)
-         setJaxrpcMappingFile(override.jaxrpcMappingFile);
-      else if (original.jaxrpcMappingFile != null)
-         setJaxrpcMappingFile(original.jaxrpcMappingFile);
-      if(override != null && override.serviceQname != null)
-         setServiceQname(override.serviceQname);
-      else if (original.serviceQname != null)
-         setServiceQname(original.serviceQname);
-      if(override != null && override.portComponentRef != null)
-         setPortComponentRef(override.portComponentRef);
-      else if (original.portComponentRef != null)
-         setPortComponentRef(original.portComponentRef);
-      if(override != null && override.handlers != null)
-         setHandlers(override.handlers);
-      else if (original.handlers != null)
-         setHandlers(original.handlers);
-      if(override != null && override.handlerChains != null)
-         setHandlerChains(override.handlerChains);
-      else if (original.handlers != null)
-         setHandlerChains(original.handlerChains);
-      */
+
+      // TODO: how to merge portComponentRef
+      if(override != null && override.getPortComponentRef() != null)
+      {
+         if(jbossPortComponentRef == null)
+            jbossPortComponentRef = new ArrayList<JBossPortComponentRef>();
+         for(PortComponentRef ref : override.getPortComponentRef())
+         {
+            JBossPortComponentRef jref = new JBossPortComponentRef();
+            jref.merge(null, ref);
+            jbossPortComponentRef.add(jref);
+         }
+      }
+      if(original != null && original.getPortComponentRef() != null)
+      {
+         if(jbossPortComponentRef == null)
+            jbossPortComponentRef = new ArrayList<JBossPortComponentRef>();
+         for(PortComponentRef ref : original.getPortComponentRef())
+         {
+            JBossPortComponentRef jref = new JBossPortComponentRef();
+            jref.merge(null, ref);
+            jbossPortComponentRef.add(jref);
+         }
+      }
+      
+      if(override != null && override.getServiceClass() != null)
+         setServiceClass(override.getServiceClass());
+      if(override != null && override.getConfigName() != null)
+         setConfigName(override.getConfigName());
+      if(override != null && override.getConfigFile() != null)
+         setConfigFile(override.getConfigFile());
+      if(override != null && override.getHandlerChain() != null)
+         setHandlerChain(override.getHandlerChain());
+      if(override != null && override.getWsdlOverride() != null)
+         setWsdlOverride(override.getWsdlOverride());
    }
 }

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	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -23,11 +23,9 @@
 
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
-import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
-import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
 import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
 
 /**
@@ -57,35 +55,14 @@
     * @param overrideFile the override file
     * @return the merged referencees
     */
-   public static JBossServiceReferencesMetaData merge(JBossServiceReferencesMetaData override, ServiceReferencesMetaData overriden, String overridenFile, String overrideFile)
+   public static JBossServiceReferencesMetaData merge(ServiceReferencesMetaData override,
+         ServiceReferencesMetaData overriden, String overridenFile, String overrideFile)
    {
       if (override == null && overriden == null)
          return null;
-      
+
       JBossServiceReferencesMetaData merged = new JBossServiceReferencesMetaData();
-      if(override != null)
-      {
-         for(ServiceReferenceMetaData ref : override)
-         {
-            JBossServiceReferenceMetaData jref = (JBossServiceReferenceMetaData) ref;
-            if(overriden != null)
-            {
-               ServiceReferenceMetaData sref = overriden.get(ref.getServiceRefName());
-               if(sref != null)
-                  jref.merge(null, sref);
-            }
-            merged.add(jref);
-         }
-      }
-      else if(overriden != null)
-      {
-         for(ServiceReferenceMetaData ref : overriden)
-         {
-            JBossServiceReferenceMetaData jref = new JBossServiceReferenceMetaData();
-            jref.merge(null, ref);
-            merged.add(jref);
-         }         
-      }
+      JavaEEMetaDataUtil.merge(merged, overriden, override, "service-ref", overridenFile, overrideFile, false);
       return merged;
    }
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PortComponentRef.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PortComponentRef.java	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PortComponentRef.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -65,4 +65,26 @@
    {
       this.serviceEndpointInterface = serviceEndpointInterface;
    }
+
+   public PortComponentRef merge(PortComponentRef ref)
+   {
+      PortComponentRef merged = new PortComponentRef();
+      merged.merge(this, ref);
+      return merged;
+   }
+   public void merge(PortComponentRef override, PortComponentRef original)
+   {
+      if(override != null && override.serviceEndpointInterface != null)
+         serviceEndpointInterface = override.serviceEndpointInterface;
+      else if(original != null && original.serviceEndpointInterface != null)
+         serviceEndpointInterface = original.serviceEndpointInterface;
+      if(override != null && override.portComponentLink != null)
+         portComponentLink = override.portComponentLink;
+      else if(original != null && original.portComponentLink != null)
+         portComponentLink = original.portComponentLink;
+      if(override != null && override.enableMtom)
+         enableMtom = override.enableMtom;
+      else if(original != null && original.enableMtom)
+         enableMtom = original.enableMtom;
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerChainMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerChainMetaData.java	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerChainMetaData.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -24,6 +24,7 @@
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
 
 import org.jboss.metadata.javaee.support.IdMetaDataImpl;
 
@@ -32,9 +33,9 @@
  * ServiceReferenceHandlerChainMetaData.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Scott.Stark at jboss.org
  * @version $Revision: 1.1 $
  */
-//@SchemaType(name="service-ref_handler-chainType", mandatory=false)
 @XmlType(name="service-ref_handler-chainType")
 public class ServiceReferenceHandlerChainMetaData
    extends IdMetaDataImpl
@@ -42,11 +43,11 @@
    /** The serialVersionUID */
    private static final long serialVersionUID = 1;
 
-   private String serviceNamePattern;
+   private QName serviceNamePattern;
    
-   private String portNamePattern;
+   private QName portNamePattern;
    
-   // TODO protocol-bindings
+   private String protocolBindings;
    
    /** The handlers */
    private List<ServiceReferenceHandlerMetaData> handlers;
@@ -59,30 +60,33 @@
       // For serialization
    }
 
-
-   public String getPortNamePattern()
+   public QName getPortNamePattern()
    {
       return portNamePattern;
    }
-
-   public void setPortNamePattern(String portNamePattern)
+   public void setPortNamePattern(QName portNamePattern)
    {
       this.portNamePattern = portNamePattern;
    }
 
+   public String getProtocolBindings()
+   {
+      return protocolBindings;
+   }
+   public void setProtocolBindings(String protocolBindings)
+   {
+      this.protocolBindings = protocolBindings;
+   }
 
-   public String getServiceNamePattern()
+   public QName getServiceNamePattern()
    {
       return serviceNamePattern;
    }
-
-
-   public void setServiceNamePattern(String serviceNamePatter)
+   public void setServiceNamePattern(QName serviceNamePattern)
    {
-      this.serviceNamePattern = serviceNamePatter;
+      this.serviceNamePattern = serviceNamePattern;
    }
 
-
    public List<ServiceReferenceHandlerMetaData> getHandler()
    {
       return handlers;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerMetaData.java	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceHandlerMetaData.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -24,6 +24,7 @@
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
 
 import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroup;
 
@@ -53,7 +54,7 @@
    
    private List<ParamValueMetaData> initParam;
    
-   private List<String> soapHeader;
+   private List<QName> soapHeader;
    
    private List<String> soapRole;
    
@@ -130,12 +131,12 @@
       this.portName = portName;
    }
 
-   public List<String> getSoapHeader()
+   public List<QName> getSoapHeader()
    {
       return soapHeader;
    }
 
-   public void setSoapHeader(List<String> soapHeader)
+   public void setSoapHeader(List<QName> soapHeader)
    {
       this.soapHeader = soapHeader;
    }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -21,6 +21,8 @@
 */
 package org.jboss.metadata.javaee.spec;
 
+import java.util.List;
+
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.namespace.QName;
@@ -58,7 +60,7 @@
    private QName serviceQname;
 
    /** The port-component-ref */
-   private PortComponentRef portComponentRef;
+   private List<PortComponentRef> portComponentRef;
 
    /** The handlers */
    private ServiceReferenceHandlersMetaData handlers;
@@ -268,14 +270,15 @@
    }
 
 
-   public PortComponentRef getPortComponentRef()
+   public List<? extends PortComponentRef> getPortComponentRef()
    {
       return portComponentRef;
    }
 
-   public void setPortComponentRef(PortComponentRef portComponentRef)
+   @XmlElement(name="port-component-ref", type=PortComponentRef.class)
+   public void setPortComponentRef(List<? extends PortComponentRef> portComponentRef)
    {
-      this.portComponentRef = portComponentRef;
+      this.portComponentRef = (List<PortComponentRef>) portComponentRef;
    }
 
    /**

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss42UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss42UnitTestCase.java	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss42UnitTestCase.java	2007-10-25 22:44:57 UTC (rev 66468)
@@ -34,10 +34,12 @@
 import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.javaee.jboss.JBossPortComponentRef;
 import org.jboss.metadata.javaee.jboss.JBossServiceReferenceMetaData;
 import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
 import org.jboss.metadata.javaee.jboss.StubPropertyMetaData;
+import org.jboss.metadata.javaee.spec.PortComponentRef;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
 import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
@@ -95,28 +97,52 @@
    {
 //      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
 //      xbdelegate.setValidateSchema(false);
-      
+
       JBossMetaData result = unmarshal();
       
       assertEquals(1, result.getEnterpriseBeans().size());
       JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) result.getEnterpriseBean("WebserviceConsumer");
       assertNotNull(bean);
       ServiceReferencesMetaData refs = bean.getServiceReferences();
-      assertEquals(3, refs.size());
+      assertEquals(11, refs.size());
+
       assertTrue(refs instanceof JBossServiceReferencesMetaData);
       ServiceReferenceMetaData OrganizationService = refs.get("OrganizationService");
+      assertNotNull(OrganizationService);
+      ServiceReferenceMetaData SecureOrganizationService = refs.get("SecureOrganizationService");
+      assertNotNull(SecureOrganizationService);
+      ServiceReferenceMetaData SecureService = refs.get("SecureService");
+      assertNotNull(SecureService);
+      ServiceReferenceMetaData Service1 = refs.get("Service1");
+      assertNotNull(Service1);
+      ServiceReferenceMetaData Service2 = refs.get("Service2");
+      assertNotNull(Service2);
+      ServiceReferenceMetaData Service3 = refs.get("Service3");
+      assertNotNull(Service3);
+      ServiceReferenceMetaData Service4 = refs.get("Service4");
+      assertNotNull(Service4);
+      ServiceReferenceMetaData Port1 = refs.get("Port1");
+      assertNotNull(Port1);
+      ServiceReferenceMetaData Port2 = refs.get("Port2");
+      assertNotNull(Port2);
+      ServiceReferenceMetaData Port3 = refs.get("Port3");
+      assertNotNull(Port3);
+      ServiceReferenceMetaData session0ServiceRef0 = refs.get("session0ServiceRef0");
+      assertNotNull(session0ServiceRef0);
+
       assertEquals("OrganizationService", OrganizationService.getServiceRefName());
       assertTrue(OrganizationService instanceof JBossServiceReferenceMetaData);
       JBossServiceReferenceMetaData jOrganizationService = (JBossServiceReferenceMetaData) OrganizationService;
       assertEquals("file:/wsdlRepository/organization-service.wsdl", jOrganizationService.getWsdlOverride());
 
-      JBossServiceReferenceMetaData SecureService = (JBossServiceReferenceMetaData) refs.get("SecureService");
-      assertNotNull(SecureService);
+      JBossServiceReferenceMetaData jSecureService = (JBossServiceReferenceMetaData) SecureService;
       assertEquals("SecureService", SecureService.getServiceRefName());
-      assertEquals("org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService", SecureService.getServiceClass());
+      assertEquals("org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService", jSecureService.getServiceClass());
       QName name = new QName("http://org.jboss.ws/wsref", "SecureEndpointService");
       assertEquals(name, SecureService.getServiceQname());
-      JBossPortComponentRef pcref = SecureService.getPortComponentRef();
+      List<? extends PortComponentRef> pcrefs = SecureService.getPortComponentRef();
+      assertEquals(1, pcrefs.size());
+      JBossPortComponentRef pcref = (JBossPortComponentRef) pcrefs.get(0);
       assertNotNull(pcref);
       assertEquals("org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint", pcref.getServiceEndpointInterface());
       name = new QName("http://org.jboss.ws/wsref", "SecureEndpointPort");
@@ -127,8 +153,48 @@
       assertEquals("kermit", pcrefProps.get(0).getPropValue());
       assertEquals("javax.xml.ws.security.auth.password", pcrefProps.get(1).getPropName());
       assertEquals("thefrog", pcrefProps.get(1).getPropValue());
+
+      JBossServiceReferenceMetaData jsession0ServiceRef0 = (JBossServiceReferenceMetaData) session0ServiceRef0;
+      assertEquals("session0ServiceRef0", session0ServiceRef0.getServiceRefName());
+      assertEquals("session0ServiceImplClass", jsession0ServiceRef0.getServiceClass());
+      List<? extends PortComponentRef> session0Pcrefs = session0ServiceRef0.getPortComponentRef();
+      assertEquals(1, session0Pcrefs.size());
+      JBossPortComponentRef session0Pcref = (JBossPortComponentRef) session0Pcrefs.get(0);
+      assertNotNull(session0Pcref);
+      assertEquals("session0Endpoint", session0Pcref.getServiceEndpointInterface());
+      QName portName = new QName("session0", "portRef0");
+      assertEquals(portName, session0Pcref.getPortQname());
    }
+   public void testMergedServiceRefQname() throws Exception
+   {
+      EjbJarMetaData specResult = unmarshal("EjbJar21_testServiceRefs.xml", EjbJarMetaData.class, null);
+      JBossMetaData result = unmarshal("JBoss42_testServiceRefQname.xml", JBossMetaData.class, null);
+      JBossMetaData merged = new JBossMetaData();
+      merged.merge(result, specResult);
 
+      assertEquals(1, merged.getEnterpriseBeans().size());
+      JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) merged.getEnterpriseBean("WebserviceConsumer");
+      assertNotNull(bean);
+      ServiceReferencesMetaData refs = bean.getServiceReferences();
+      assertEquals(11, refs.size());
+
+      ServiceReferenceMetaData session0ServiceRef0 = refs.get("session0ServiceRef0");
+      assertNotNull(session0ServiceRef0);
+      JBossServiceReferenceMetaData jsession0ServiceRef0 = (JBossServiceReferenceMetaData) session0ServiceRef0;
+      assertEquals("session0ServiceRef0", session0ServiceRef0.getServiceRefName());
+      assertEquals("javax.xml.rpc.Service", session0ServiceRef0.getServiceInterface());
+      assertEquals("session0ServiceImplClass", jsession0ServiceRef0.getServiceClass());
+      QName service0Name = new QName("http://x.y.z", "serviceRef0Name");
+      assertEquals(service0Name, session0ServiceRef0.getServiceQname());
+      List<? extends PortComponentRef> session0Pcrefs = session0ServiceRef0.getPortComponentRef();
+      assertEquals(1, session0Pcrefs.size());
+      JBossPortComponentRef session0Pcref = (JBossPortComponentRef) session0Pcrefs.get(0);
+      assertNotNull(session0Pcref);
+      assertEquals("session0Endpoint", session0Pcref.getServiceEndpointInterface());
+      QName portName = new QName("session0", "portRef0");
+      assertEquals(portName, session0Pcref.getPortQname());
+   }
+
    public void testNoDoctype()
       throws Exception
    {

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21_testServiceRefs.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21_testServiceRefs.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21_testServiceRefs.xml	2007-10-25 22:44:57 UTC (rev 66468)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
+    version="2.1">
+    <description></description>
+    <enterprise-beans>
+        <session>
+            <ejb-name>WebserviceConsumer</ejb-name>
+            <ejb-class>session0Class</ejb-class>
+            <session-type>Stateless</session-type>
+            <transaction-type>Container</transaction-type>
+            <service-ref>
+                <service-ref-name>session0ServiceRef0</service-ref-name>
+                <service-interface>javax.xml.rpc.Service</service-interface>
+                <wsdl-file>META-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
+                <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+                <service-qname xmlns:session0="http://x.y.z">session0:serviceRef0Name</service-qname>
+                <handler id="Handler0-id"
+                    xmlns:soap-header_ns__="http://extra-header.org">
+                    <handler-name>Handler0</handler-name>
+                    <handler-class>org.jboss.test.ws.jaxrpc.serviceref.ExampleHandler</handler-class>
+                    <soap-header>soap-header_ns__:extra-header0</soap-header>
+                    <soap-header>soap-header_ns__:extra-header1</soap-header>
+                    <soap-role>Handler0SoapRole0</soap-role>
+                    <soap-role>Handler0SoapRole1</soap-role>
+                    <port-name>Handler0Port0</port-name>
+                    <port-name>Handler0Port1</port-name>
+                </handler>
+            </service-ref>
+        </session>
+    </enterprise-beans>
+</ejb-jar>
+


Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21_testServiceRefs.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss42_testServiceRefQname.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss42_testServiceRefQname.xml	2007-10-25 22:28:34 UTC (rev 66467)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss42_testServiceRefQname.xml	2007-10-25 22:44:57 UTC (rev 66468)
@@ -37,6 +37,110 @@
                </stub-property>
             </port-component-ref>
          </service-ref>
+
+         <!-- 
+            @WebServiceRef(name = "Service1")
+         -->
+         <service-ref>
+            <service-ref-name>Service1</service-ref-name>
+            <service-impl-class>org.jboss.test.ws.jaxws.webserviceref.TestEndpointService</service-impl-class>
+            <service-qname>{http://org.jboss.ws/wsref}TestEndpointService</service-qname>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <!-- 
+            @WebServiceRef(name = "Service2")
+         -->
+         <service-ref>
+            <service-ref-name>Service2</service-ref-name>
+            <config-name>Custom Client</config-name>
+            <config-file>META-INF/jbossws-client-config.xml</config-file>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <!-- 
+            @WebServiceRef(name = "Service3")
+         -->
+         <service-ref>
+            <service-ref-name>Service3</service-ref-name>
+            <service-impl-class>org.jboss.test.ws.jaxws.webserviceref.TestEndpointService</service-impl-class>
+            <service-qname>{http://org.jboss.ws/wsref}TestEndpointService</service-qname>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <!-- 
+            @WebServiceRef(name = "Service4")
+         -->
+         <service-ref>
+            <service-ref-name>Service4</service-ref-name>
+            <port-component-ref>
+               <service-endpoint-interface>org.jboss.test.ws.jaxws.webserviceref.TestEndpoint</service-endpoint-interface>
+               <config-name>Custom Client</config-name>
+               <config-file>META-INF/jbossws-client-config.xml</config-file>
+            </port-component-ref>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <!-- 
+            @WebServiceRef(name = "Port1", type = TestEndpoint.class)
+         -->
+         <service-ref>
+            <service-ref-name>Port1</service-ref-name>
+            <port-component-ref>
+               <port-qname>{http://org.jboss.ws/wsref}TestEndpointPort</port-qname>
+               <config-name>Custom Client</config-name>
+               <config-file>META-INF/jbossws-client-config.xml</config-file>
+            </port-component-ref>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <!-- 
+            @WebServiceRef(name = "Port2")
+         -->
+         <service-ref>
+            <service-ref-name>Port2</service-ref-name>
+            <port-component-ref>
+               <service-endpoint-interface>org.jboss.test.ws.jaxws.webserviceref.TestEndpoint</service-endpoint-interface>
+               <config-name>Custom Client</config-name>
+               <config-file>META-INF/jbossws-client-config.xml</config-file>
+            </port-component-ref>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <!-- 
+            @WebServiceRef(name = "Port3")
+         -->
+         <service-ref>
+            <service-ref-name>Port3</service-ref-name>
+            <port-component-ref>
+               <service-endpoint-interface>org.jboss.test.ws.jaxws.webserviceref.TestEndpoint</service-endpoint-interface>
+               <port-qname>{http://org.jboss.ws/wsref}TestEndpointPort</port-qname>
+               <stub-property>
+                  <prop-name>javax.xml.ws.security.auth.username</prop-name>
+                  <prop-value>kermit</prop-value>
+               </stub-property>
+               <stub-property>
+                  <prop-name>javax.xml.ws.security.auth.password</prop-name>
+                  <prop-value>thefrog</prop-value>
+               </stub-property>
+            </port-component-ref>
+            <wsdl-override>META-INF/wsdl/TestEndpoint.wsdl</wsdl-override>
+         </service-ref>
+         
+         <service-ref>
+            <service-ref-name>session0ServiceRef0</service-ref-name>
+            <service-impl-class>session0ServiceImplClass</service-impl-class>
+            <config-name>session0Config</config-name>
+            <config-file>META-INF/session0-config.xml</config-file>
+            <handler-chain>META-INF/session0-handlers.xml</handler-chain>
+            <port-component-ref>
+               <service-endpoint-interface>session0Endpoint</service-endpoint-interface>
+               <port-qname>{session0}portRef0</port-qname>
+               <config-name>session0PortRef0Config</config-name>
+               <config-file>META-INF/session0PortRef0-config.xml</config-file>
+            </port-component-ref>
+            <wsdl-override>META-INF/wsdl/session0.wsdl</wsdl-override>
+         </service-ref>
       </session>
    </enterprise-beans>   
 </jboss>




More information about the jboss-cvs-commits mailing list