You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by ch...@apache.org on 2007/03/26 15:49:39 UTC

svn commit: r522514 - in /webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints: WSDLEndpointFactory.java utils/WSDL20EndpointBuilder.java

Author: chathura_ce
Date: Mon Mar 26 06:49:29 2007
New Revision: 522514

URL: http://svn.apache.org/viewvc?view=rev&rev=522514
Log:
Added the builder for WSDL 2.0 endpoints. However this is not called in the current code as there is a xerces dependency, which is not included in the current Synapse release.

Modified:
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL20EndpointBuilder.java

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java?view=diff&rev=522514&r1=522513&r2=522514
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java Mon Mar 26 06:49:29 2007
@@ -41,7 +41,7 @@
  * Creates an WSDL based endpoint from a XML configuration.
  *
  * <endpoint [name="name"]>
- *    <wsdl uri="wsdl uri" service="service name" port="port name"> 
+ *    <wsdl uri="wsdl uri" service="service name" port="port name">
  *       .. extensibility ..
  *    </wsdl>
  * </endpoint>
@@ -115,7 +115,8 @@
 
                     } else if (WSDLConstants.WSDL20_2006Constants.DEFAULT_NAMESPACE_URI.equals(ns)) {
                         //endpoint = new WSDL20EndpointBuilder().
-                        //        createEndpointDefinitionFromWSDL(wsdlElement);
+                        //        createEndpointDefinitionFromWSDL(wsdlURI, serviceName, portName);
+
                         handleException("WSDL 2.0 Endpoints are currently not supported");
                     }
 

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL20EndpointBuilder.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL20EndpointBuilder.java?view=diff&rev=522514&r1=522513&r2=522514
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL20EndpointBuilder.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL20EndpointBuilder.java Mon Mar 26 06:49:29 2007
@@ -22,29 +22,52 @@
 import org.apache.synapse.endpoints.utils.EndpointDefinition;
 import org.apache.synapse.SynapseException;
 import org.apache.axiom.om.OMElement;
-//import org.apache.woden.WSDLFactory;
-//import org.apache.woden.WSDLReader;
-//import org.apache.woden.WSDLException;
-//import org.apache.woden.types.NCName;
-//import org.apache.woden.wsdl20.xml.DescriptionElement;
-//import org.apache.woden.wsdl20.Description;
-//import org.apache.woden.wsdl20.Service;
-//import org.apache.woden.wsdl20.Endpoint;
+import org.apache.woden.WSDLFactory;
+import org.apache.woden.WSDLReader;
+import org.apache.woden.WSDLException;
+import org.apache.woden.types.NCName;
+import org.apache.woden.wsdl20.xml.DescriptionElement;
+import org.apache.woden.wsdl20.Description;
+import org.apache.woden.wsdl20.Service;
+import org.apache.woden.wsdl20.Endpoint;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
 
+/**
+ * Currently this class is not used as woden is dependent on xerces, which is not included in the
+ * current release.
+ *  
+ * Builder for WSDL 2.0 endpoints. This class extracts endpoint information from the given WSDL 2.0
+ * documents.
+ */
 public class WSDL20EndpointBuilder {
 
-/*
-    public EndpointDefinition createEndpointDefinitionFromWSDL(OMElement wsdlElement) {
+    private static Log log = LogFactory.getLog(WSDL20EndpointBuilder.class);
 
-        EndpointDefinition endpointDefinition = null;
+    public EndpointDefinition createEndpointDefinitionFromWSDL
+            (String wsdlURI, String serviceName, String portName) {
 
-        String wsdlURI = wsdlElement.getAttributeValue(new QName("uri"));
-        String serviceName = wsdlElement.getAttributeValue(new QName("service"));
-        String portName = wsdlElement.getAttributeValue(new QName("port"));
+        try {
+            WSDLFactory fac = WSDLFactory.newInstance();
+            WSDLReader reader = fac.newWSDLReader();
+            reader.setFeature(WSDLReader.FEATURE_VALIDATION, false);
+
+            DescriptionElement descriptionElement = reader.readWSDL(wsdlURI);
+            return createEndpointDefinitionFromWSDL(descriptionElement, serviceName, portName);
+
+        } catch (WSDLException e) {
+            handleException("Couldn't process the given WSDL document.");
+        }
+
+        return null;
+    }
+
+    private EndpointDefinition createEndpointDefinitionFromWSDL
+            (DescriptionElement dElement, String serviceName, String portName) {
 
-        if (wsdlURI == null) {
+        if (dElement == null) {
             throw new SynapseException("WSDL is not specified.");
         }
 
@@ -56,27 +79,30 @@
             throw new SynapseException("Port is not specified.");
         }
 
-        try {
-            WSDLFactory fac = WSDLFactory.newInstance();
-            WSDLReader reader = fac.newWSDLReader();
-            reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
-
-            DescriptionElement descriptionElement = reader.readWSDL(wsdlURI);
-            Description description = descriptionElement.toComponent();
-            String tns = descriptionElement.getTargetNamespace().toString();
-            Service service = description.getService(new QName(tns, serviceName));
-            if (service != null) {
-                Endpoint wsdlEndpoint = service.getEndpoint(new NCName(portName));
+        Description description = dElement.toComponent();
+        String tns = dElement.getTargetNamespace().toString();
+        Service service = description.getService(new QName(tns, serviceName));
+        if (service != null) {
+            Endpoint wsdlEndpoint = service.getEndpoint(new NCName(portName));
+            if (wsdlEndpoint != null) {
                 String serviceURL = wsdlEndpoint.getAddress().toString();
-                endpointDefinition = new EndpointDefinition();
+
+                EndpointDefinition endpointDefinition = new EndpointDefinition();
                 endpointDefinition.setAddress(serviceURL);
-            }
 
-        } catch (WSDLException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+                return endpointDefinition;
+            } else {
+                handleException("Specified port is not defined in the given WSDL.");
+            }
+        } else {
+            handleException("Specified service is not defined in the given WSDL.");
         }
 
-        return endpointDefinition;
+        return null;
+    }
+
+    private static void handleException(String msg) {
+        log.error(msg);
+        throw new SynapseException(msg);
     }
-*/
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org