Author: veithen
Date: Thu Sep 11 11:38:06 2008
New Revision: 694406
URL: http://svn.apache.org/viewvc?rev=694406&view=rev
Log:
SYNAPSE-442: Applied fix suggested by Stoil Valchkov. Also added the
contributed test code as a unit test.
Added:
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/SimpleStockService.wsdl
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-GetQuote.xsd
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-PlaceOrder.xsd
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/CustomWSDLLocator.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/core/axis2/ProxyServiceTest.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/CustomWSDLLocator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/CustomWSDLLocator.java?rev=694406&r1=694405&r2=694406&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/CustomWSDLLocator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/CustomWSDLLocator.java
Thu Sep 11 11:38:06 2008
@@ -73,9 +73,12 @@
result = resourceMap.resolve(synCfg, relativeLocation);
}
if (result == null) {
- result = new
InputSource(SynapseConfigUtils.resolveRelativeURI(parentLocation,
relativeLocation));
+ String location =
SynapseConfigUtils.resolveRelativeURI(parentLocation, relativeLocation);
+ result = new InputSource(location);
+ latestImportURI = location;
+ } else {
+ latestImportURI = relativeLocation;
}
- this.latestImportURI = relativeLocation;
return result;
}
Modified:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/core/axis2/ProxyServiceTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/core/axis2/ProxyServiceTest.java?rev=694406&r1=694405&r2=694406&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/core/axis2/ProxyServiceTest.java
(original)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/core/axis2/ProxyServiceTest.java
Thu Sep 11 11:38:06 2008
@@ -87,4 +87,16 @@
// referring to locations such as "my-matches?xsd=xsd0.xsd".
axisService.printWSDL(new ByteArrayOutputStream());
}
+
+ /**
+ * Test a proxy service with recursive imports and without a [EMAIL
PROTECTED] ResourceMap}.
+ * Regression test for SYNAPSE-442.
+ */
+ public void testRecursiveImports2() throws Exception {
+ ProxyService testService = new ProxyService("mytest");
+ SynapseConfiguration synCfg = new SynapseConfiguration();
+ AxisConfiguration axisCfg = new AxisConfiguration();
+
testService.setWsdlURI(getClass().getResource("SimpleStockService.wsdl").toURI());
+ testService.buildAxisService(synCfg, axisCfg);
+ }
}
Added:
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/SimpleStockService.wsdl
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/SimpleStockService.wsdl?rev=694406&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/SimpleStockService.wsdl
(added)
+++
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/SimpleStockService.wsdl
Thu Sep 11 11:38:06 2008
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:axis2="http://services.samples"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://services.samples"
xmlns:ns1="http://services.samples/xsd/GetQuote"
xmlns:ns2="http://services.samples/xsd/PlaceOrder">
+
+<wsdl:types>
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://services.samples">
+ <xs:import
namespace="http://services.samples/xsd/GetQuote"
schemaLocation="schema/SimpleStockService-GetQuote.xsd"/>
+ </xs:schema>
+</wsdl:types>
+
+ <wsdl:message name="placeOrderMessage">
+ <wsdl:part name="part1" element="ns1:placeOrder"/>
+ </wsdl:message>
+ <wsdl:message name="getQuoteMessage">
+ <wsdl:part name="part1" element="ns1:getQuote"/>
+ </wsdl:message>
+ <wsdl:message name="getQuoteResponseMessage">
+ <wsdl:part name="part1" element="ns1:getQuoteResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="SimpleStockQuoteServicePortType">
+ <wsdl:operation name="placeOrder">
+ <wsdl:input message="axis2:placeOrderMessage"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
wsaw:Action="urn:placeOrder"/>
+ </wsdl:operation>
+ <wsdl:operation name="getQuote">
+ <wsdl:input message="axis2:getQuoteMessage"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
wsaw:Action="urn:getQuote"/>
+ <wsdl:output message="axis2:getQuoteResponseMessage"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
wsaw:Action="http://services.samples/SimpleStockQuoteServicePortType/getQuoteResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="SimpleStockQuoteServiceSOAP11Binding"
type="axis2:SimpleStockQuoteServicePortType">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="placeOrder">
+ <soap:operation soapAction="urn:placeOrder"
style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ </wsdl:operation>
+ <wsdl:operation name="getQuote">
+ <soap:operation soapAction="urn:getQuote"
style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="SimpleStockQuoteService">
+ <wsdl:port name="SimpleStockQuoteServiceSOAP11port_http"
binding="axis2:SimpleStockQuoteServiceSOAP11Binding">
+ <soap:address
location="http://localhost:5555/web/WmPolicyGateway/services/user_name_req_PGService"/>
+ </wsdl:port>
+ </wsdl:service>
+ <!-- wsdl:documentation>SimpleStockQuoteService</wsdl:documentation-->
+</wsdl:definitions>
Added:
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-GetQuote.xsd
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-GetQuote.xsd?rev=694406&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-GetQuote.xsd
(added)
+++
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-GetQuote.xsd
Thu Sep 11 11:38:06 2008
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:tns="http://services.samples/xsd/GetQuote"
xmlns:po="http://services.samples/xsd/PlaceOrder"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://services.samples/xsd/GetQuote"
elementFormDefault="qualified" attributeFormDefault="qualified">
+
+ <xs:import namespace="http://services.samples/xsd/PlaceOrder"
schemaLocation="SimpleStockService-PlaceOrder.xsd"/>
+
+ <xs:element name="getQuote">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="request" type="tns:GetQuote"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GetQuote" type="tns:GetQuote"/>
+ <xs:complexType name="GetQuote">
+ <xs:sequence>
+ <xs:element name="symbol" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="getQuoteResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="return"
type="tns:GetQuoteResponse"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GetQuoteResponse" type="tns:GetQuoteResponse"/>
+ <xs:complexType name="GetQuoteResponse">
+ <xs:sequence>
+ <xs:element name="change" type="xs:double"/>
+ <xs:element name="earnings" type="xs:double"/>
+ <xs:element name="high" type="xs:double"/>
+ <xs:element name="last" type="xs:double"/>
+ <xs:element name="lastTradeTimestamp" type="xs:string"/>
+ <xs:element name="low" type="xs:double"/>
+ <xs:element name="marketCap" type="xs:double"/>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="open" type="xs:double"/>
+ <xs:element name="peRatio" type="xs:double"/>
+ <xs:element name="percentageChange" type="xs:double"/>
+ <xs:element name="prevClose" type="xs:double"/>
+ <xs:element name="symbol" type="xs:string"/>
+ <xs:element name="volume" type="xs:int"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:element name="placeOrder">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="order" type="po:PlaceOrder"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
Added:
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-PlaceOrder.xsd
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-PlaceOrder.xsd?rev=694406&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-PlaceOrder.xsd
(added)
+++
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/axis2/schema/SimpleStockService-PlaceOrder.xsd
Thu Sep 11 11:38:06 2008
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:tns="http://services.samples/xsd/PlaceOrder"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://services.samples/xsd/PlaceOrder"
elementFormDefault="qualified" attributeFormDefault="qualified">
+ <xs:complexType name="PlaceOrder">
+ <xs:sequence>
+ <xs:element name="price" type="xs:double"/>
+ <xs:element name="quantity" type="xs:int"/>
+ <xs:element name="symbol" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>