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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]