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