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>


Reply via email to