You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/10/05 22:57:31 UTC
svn commit: r582385 - in /incubator/cxf/trunk:
common/common/src/main/java/org/apache/cxf/helpers/
rt/core/src/main/java/org/apache/cxf/transport/http/
systests/src/test/java/org/apache/cxf/systest/http_jetty/
systests/src/test/java/org/apache/cxf/syst...
Author: dkulp
Date: Fri Oct 5 13:57:29 2007
New Revision: 582385
URL: http://svn.apache.org/viewvc?rev=582385&view=rev
Log:
[CXF-1071, CXF-948] Fix issues with WSDLQueryHandler when using urls with extra params and using catalogs for the imports
Added:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html (with props)
incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl (with props)
Modified:
incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java
Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java?rev=582385&r1=582384&r2=582385&view=diff
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java Fri Oct 5 13:57:29 2007
@@ -88,6 +88,7 @@
buf.append(new String(buffer, 0, n));
n = input.read(buffer);
}
+ input.close();
return buf.toString();
}
public static String toString(final Reader input)
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java?rev=582385&r1=582384&r2=582385&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java Fri Oct 5 13:57:29 2007
@@ -24,8 +24,10 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -50,6 +52,7 @@
import org.apache.cxf.Bus;
+import org.apache.cxf.catalog.OASISCatalogManager;
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.helpers.CastUtils;
@@ -80,13 +83,20 @@
public boolean isRecognizedQuery(String baseUri, String ctx,
EndpointInfo endpointInfo, boolean contextMatchExact) {
if (baseUri != null
- && (baseUri.toLowerCase().contains("?wsdl")
- || baseUri.toLowerCase().contains("?xsd="))) {
- if (contextMatchExact) {
- return endpointInfo.getAddress().contains(ctx);
- } else {
- // contextMatchStrategy will be "stem"
- return endpointInfo.getAddress().contains(getStem(baseUri));
+ && (baseUri.contains("?")
+ && (baseUri.toLowerCase().contains("wsdl")
+ || baseUri.toLowerCase().contains("xsd=")))) {
+
+ int idx = baseUri.indexOf("?");
+ Map<String, String> map = parseQueryString(baseUri.substring(idx + 1));
+ if (map.containsKey("wsdl")
+ || map.containsKey("xsd")) {
+ if (contextMatchExact) {
+ return endpointInfo.getAddress().contains(ctx);
+ } else {
+ // contextMatchStrategy will be "stem"
+ return endpointInfo.getAddress().contains(getStem(baseUri.substring(0, idx)));
+ }
}
}
return false;
@@ -95,20 +105,11 @@
public void writeResponse(String baseUri, String ctxUri,
EndpointInfo endpointInfo, OutputStream os) {
try {
- int idx = baseUri.toLowerCase().indexOf("?wsdl");
- String base = null;
- String wsdl = "";
- String xsd = null;
- if (idx != -1) {
- base = baseUri.substring(0, baseUri.toLowerCase().indexOf("?wsdl"));
- wsdl = baseUri.substring(baseUri.toLowerCase().indexOf("?wsdl") + 5);
- if (wsdl.length() > 0) {
- wsdl = wsdl.substring(1);
- }
- } else {
- base = baseUri.substring(0, baseUri.toLowerCase().indexOf("?xsd="));
- xsd = baseUri.substring(baseUri.toLowerCase().indexOf("?xsd=") + 5);
- }
+ int idx = baseUri.toLowerCase().indexOf("?");
+ Map<String, String> params = parseQueryString(baseUri.substring(idx + 1));
+ String base = baseUri.substring(0, baseUri.toLowerCase().indexOf("?"));
+ String wsdl = params.get("wsdl");
+ String xsd = params.get("xsd");
Map<String, Definition> mp = CastUtils.cast((Map)endpointInfo.getService()
.getProperty(WSDLQueryHandler.class.getName()));
@@ -131,7 +132,7 @@
+ ".Schemas"));
}
- if (!mp.containsKey(wsdl)) {
+ if (!mp.containsKey("")) {
Definition def = new ServiceWSDLBuilder(bus, endpointInfo.getService()).build();
mp.put("", def);
updateDefinition(def, mp, smp, base, endpointInfo);
@@ -141,6 +142,12 @@
Document doc;
if (xsd == null) {
Definition def = mp.get(wsdl);
+ if (def == null) {
+ String wsdl2 = resolveWithCatalogs(OASISCatalogManager.getCatalogManager(bus),
+ wsdl,
+ base);
+ def = mp.get(wsdl2);
+ }
WSDLWriter wsdlWriter = bus.getExtension(WSDLManager.class)
.getWSDLFactory().newWSDLWriter();
@@ -148,8 +155,21 @@
doc = wsdlWriter.getDocument(def);
} else {
SchemaReference si = smp.get(xsd);
- ResourceManagerWSDLLocator rml = new ResourceManagerWSDLLocator(si.getReferencedSchema()
- .getDocumentBaseURI(),
+ if (si == null) {
+ String xsd2 = resolveWithCatalogs(OASISCatalogManager.getCatalogManager(bus),
+ xsd,
+ base);
+ si = smp.get(xsd2);
+ }
+
+ String uri = si.getReferencedSchema().getDocumentBaseURI();
+ uri = resolveWithCatalogs(OASISCatalogManager.getCatalogManager(bus),
+ uri,
+ si.getReferencedSchema().getDocumentBaseURI());
+ if (uri == null) {
+ uri = si.getReferencedSchema().getDocumentBaseURI();
+ }
+ ResourceManagerWSDLLocator rml = new ResourceManagerWSDLLocator(uri,
bus);
InputSource src = rml.getBaseInputSource();
@@ -207,20 +227,46 @@
}
}
+
+ static String resolveWithCatalogs(OASISCatalogManager catalogs, String start, String base) {
+ String resolvedSchemaLocation = null;
+ try {
+ resolvedSchemaLocation = catalogs.getCatalog().resolveSystem(start);
+ if (resolvedSchemaLocation == null) {
+ resolvedSchemaLocation = catalogs.getCatalog().resolveURI(start);
+ }
+ if (resolvedSchemaLocation == null) {
+ resolvedSchemaLocation = catalogs.getCatalog().resolvePublic(start, base);
+ }
+ } catch (Exception ex) {
+ //ignore
+ }
+ return resolvedSchemaLocation;
+ }
protected void updateDefinition(Definition def, Map<String, Definition> done,
Map<String, SchemaReference> doneSchemas,
String base, EndpointInfo ei) {
+ OASISCatalogManager catalogs = OASISCatalogManager.getCatalogManager(bus);
+
Collection<List> imports = CastUtils.cast((Collection<?>)def.getImports().values());
for (List lst : imports) {
List<Import> impLst = CastUtils.cast(lst);
for (Import imp : impLst) {
String start = imp.getLocationURI();
- try {
- //check to see if it's aleady in a URL format. If so, leave it.
- new URL(start);
- } catch (MalformedURLException e) {
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+
+ if (resolvedSchemaLocation == null) {
+ try {
+ //check to see if it's aleady in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ done.put(start, imp.getDefinition());
+ updateDefinition(imp.getDefinition(), done, doneSchemas, base, ei);
+ }
+ } else {
done.put(start, imp.getDefinition());
+ done.put(resolvedSchemaLocation, imp.getDefinition());
updateDefinition(imp.getDefinition(), done, doneSchemas, base, ei);
}
}
@@ -245,17 +291,25 @@
protected void updateSchemaImports(Schema schema,
Map<String, SchemaReference> doneSchemas,
String base) {
+ OASISCatalogManager catalogs = OASISCatalogManager.getCatalogManager(bus);
Collection<List> imports = CastUtils.cast((Collection<?>)schema.getImports().values());
for (List lst : imports) {
List<SchemaImport> impLst = CastUtils.cast(lst);
for (SchemaImport imp : impLst) {
String start = imp.getSchemaLocationURI();
if (start != null && !doneSchemas.containsKey(start)) {
- try {
- //check to see if it's aleady in a URL format. If so, leave it.
- new URL(start);
- } catch (MalformedURLException e) {
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+ if (resolvedSchemaLocation == null) {
+ try {
+ //check to see if it's aleady in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ doneSchemas.put(start, imp);
+ updateSchemaImports(imp.getReferencedSchema(), doneSchemas, base);
+ }
+ } else {
doneSchemas.put(start, imp);
+ doneSchemas.put(resolvedSchemaLocation, imp);
updateSchemaImports(imp.getReferencedSchema(), doneSchemas, base);
}
}
@@ -264,12 +318,23 @@
List<SchemaReference> includes = CastUtils.cast(schema.getIncludes());
for (SchemaReference included : includes) {
String start = included.getSchemaLocationURI();
- if (start != null && !doneSchemas.containsKey(start)) {
- try {
- //check to see if it's aleady in a URL format. If so, leave it.
- new URL(start);
- } catch (MalformedURLException e) {
+
+ if (start != null) {
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+ if (resolvedSchemaLocation == null) {
+ if (!doneSchemas.containsKey(start)) {
+ try {
+ //check to see if it's aleady in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ doneSchemas.put(start, included);
+ updateSchemaImports(included.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ } else if (!doneSchemas.containsKey(start)
+ || !doneSchemas.containsKey(resolvedSchemaLocation)) {
doneSchemas.put(start, included);
+ doneSchemas.put(resolvedSchemaLocation, included);
updateSchemaImports(included.getReferencedSchema(), doneSchemas, base);
}
}
@@ -289,10 +354,30 @@
} catch (MalformedURLException e) {
LOG.log(Level.WARNING, "URL creation failed: ", e);
}
- String port = String.valueOf(url.getPort());
- baseURI = baseURI.substring(baseURI.indexOf(port) + port.length(), baseURI.lastIndexOf("/"));
-
+ if (url != null) {
+ baseURI = url.getPath();
+ int idx = baseURI.lastIndexOf('/');
+ if (idx != -1) {
+ baseURI = baseURI.substring(0, idx + 1);
+ }
+ }
return baseURI;
+ }
+
+ static Map<String, String> parseQueryString(String s) {
+ Map<String, String> ht = new HashMap<String, String>();
+ StringTokenizer st = new StringTokenizer(s, "&");
+ while (st.hasMoreTokens()) {
+ String pair = (String)st.nextToken();
+ int pos = pair.indexOf('=');
+ if (pos == -1) {
+ ht.put(pair.toLowerCase(), "");
+ } else {
+ ht.put(pair.substring(0, pos).toLowerCase(),
+ pair.substring(pos + 1));
+ }
+ }
+ return ht;
}
}
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java?rev=582385&r1=582384&r2=582385&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java Fri Oct 5 13:57:29 2007
@@ -22,7 +22,6 @@
import java.io.File;
import java.io.FileInputStream;
-import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
@@ -118,8 +117,9 @@
}
- public String getStaticResourceURL() throws IOException {
- File staticFile = new File("target/test-classes/org/apache/cxf/systest/http_jetty/");
+ public String getStaticResourceURL() throws Exception {
+ File staticFile = new File(this.getClass().getResource("test.html").toURI());
+ staticFile = staticFile.getParentFile();
staticFile = staticFile.getAbsoluteFile();
URL furl = staticFile.toURL();
return furl.toString();
@@ -135,13 +135,11 @@
setUpBus();
launchService();
shutdownService();
- try {
- launchService();
- invokeService();
- getTestHtml();
- } catch (java.net.BindException be) {
- fail("bind exception");
- }
+
+ launchService();
+ invokeService();
+ getTestHtml();
+
shutdownService();
}
Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html (added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html Fri Oct 5 13:57:29 2007
@@ -0,0 +1,5 @@
+<html>
+<body>
+Test
+</body>
+</html>
\ No newline at end of file
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/test.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java?rev=582385&r1=582384&r2=582385&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java Fri Oct 5 13:57:29 2007
@@ -19,20 +19,24 @@
package org.apache.cxf.systest.jaxws;
+import java.io.InputStream;
import java.net.URL;
import javax.wsdl.WSDLException;
import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
+import javax.xml.ws.Endpoint;
import javax.xml.ws.WebServiceException;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.catalog.CatalogWSDLLocator;
import org.apache.cxf.catalog.OASISCatalogManager;
+import org.apache.cxf.helpers.IOUtils;
import org.apache.hello_world.Greeter;
+import org.apache.hello_world.GreeterImpl;
import org.apache.hello_world.services.SOAPService;
import org.junit.Assert;
@@ -48,6 +52,30 @@
new QName("http://apache.org/hello_world/services",
"SoapPort");
+ @Test
+ public void testWSDLPublishWithCatalogs() throws Exception {
+ Endpoint ep = Endpoint.publish(null, new GreeterImpl());
+ try {
+ URL url = new URL("http://localhost:9000/SoapContext/SoapPort?"
+ + "xsd=testutils/hello_world_schema2.xsd");
+ assertNotNull(url.getContent());
+
+
+ url = new URL("http://localhost:9000/SoapContext/SoapPort"
+ + "?xsd=testutils/hello_world_schema.xsd");
+ String result = IOUtils.toString((InputStream)url.getContent());
+ assertTrue(result.contains("xsd=testutils/hello_world_schema2.xsd"));
+
+ url = new URL("http://localhost:9000/SoapContext/SoapPort"
+ + "?wsdl=testutils/hello_world_messages_catalog.wsdl");
+ result = IOUtils.toString((InputStream)url.getContent());
+ assertTrue(result.contains("xsd=testutils/hello_world_schema.xsd"));
+
+ } finally {
+ ep.stop();
+ }
+ }
+
@Test
public void testClientWithDefaultCatalog() throws Exception {
URL wsdl = getClass().getResource("/wsdl/catalog/hello_world_services.wsdl");
Added: incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java (added)
+++ incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java Fri Oct 5 13:57:29 2007
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.hello_world;
+
+import javax.jws.WebService;
+
+import org.apache.hello_world.messages.PingMeFault;
+
+@WebService(serviceName = "SOAPService",
+ portName = "SoapPort",
+ endpointInterface = "org.apache.hello_world.Greeter",
+ targetNamespace = "http://apache.org/hello_world/services",
+ wsdlLocation = "testutils/hello_world_services_catalog.wsdl")
+public class GreeterImpl implements Greeter {
+
+ public String greetMe(String requestType) {
+ return "Hello " + requestType;
+ }
+
+ /** {@inheritDoc}*/
+ public void pingMe() throws PingMeFault {
+ }
+
+ /** {@inheritDoc}*/
+ public String sayHi() {
+ return "Hi!";
+ }
+
+}
Propchange: incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world/GreeterImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl Fri Oct 5 13:57:29 2007
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<wsdl:definitions name="HelloWorld"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:x2="http://apache.org/hello_world"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://apache.org/hello_world/bindings">
+
+
+ <wsdl:import
+ namespace="http://apache.org/hello_world"
+ location="testutils/hello_world_wsdl_import_catalog.wsdl"/>
+
+ <wsdl:binding name="SOAPBinding" type="x2:Greeter">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="sayHi">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="greetMe">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="pingMe">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ <wsdl:fault name="pingMeFault">
+ <soap:fault name="pingMeFault" use="literal"/>
+ </wsdl:fault>
+ </wsdl:operation>
+ </wsdl:binding>
+
+</wsdl:definitions>
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_bindings_catalog.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl Fri Oct 5 13:57:29 2007
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<wsdl:definitions name="HelloWorld"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://apache.org/hello_world/messages"
+ xmlns:x1="http://apache.org/hello_world/types"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://apache.org/hello_world/messages">
+ <wsdl:types>
+ <schema targetNamespace="http://apache.org/hello_world/types/schema"
+ xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xsd:import namespace="http://apache.org/hello_world/types"
+ schemaLocation="testutils/hello_world_schema.xsd"/>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="sayHiRequest">
+ <wsdl:part name="in" element="x1:sayHi"/>
+ </wsdl:message>
+ <wsdl:message name="sayHiResponse">
+ <wsdl:part name="out" element="x1:sayHiResponse"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeRequest">
+ <wsdl:part name="in" element="x1:greetMe"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeResponse">
+ <wsdl:part name="out" element="x1:greetMeResponse"/>
+ </wsdl:message>
+ <wsdl:message name="pingMeRequest">
+ <wsdl:part name="in" element="x1:pingMe"/>
+ </wsdl:message>
+ <wsdl:message name="pingMeResponse">
+ <wsdl:part name="out" element="x1:pingMeResponse"/>
+ </wsdl:message>
+ <wsdl:message name="pingMeFault">
+ <wsdl:part name="faultDetail" element="x1:faultDetail"/>
+ </wsdl:message>
+</wsdl:definitions>
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_messages_catalog.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd Fri Oct 5 13:57:29 2007
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:x1="http://apache.org/hello_world/types"
+ targetNamespace="http://apache.org/hello_world/types"
+ elementFormDefault="qualified">
+
+ <import namespace="http://apache.org/hello_world/types2"
+ schemaLocation="testutils/hello_world_schema2.xsd"/>
+
+
+ <element name="sayHi">
+ <complexType/>
+ </element>
+ <element name="sayHiResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMe">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMeResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="pingMe">
+ <complexType/>
+ </element>
+ <element name="pingMeResponse">
+ <complexType/>
+ </element>
+ <element name="faultDetail">
+ <complexType>
+ <sequence>
+ <element name="minor" type="short" form="qualified" minOccurs="0"/>
+ <element name="major" type="short" form="qualified" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ </element>
+</schema>
+
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd Fri Oct 5 13:57:29 2007
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://apache.org/hello_world/types2"
+ elementFormDefault="qualified">
+ <element name="sayHi2">
+ <complexType/>
+ </element>
+</xsd:schema>
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_schema2.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl Fri Oct 5 13:57:29 2007
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<wsdl:definitions name="HelloWorld"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://apache.org/hello_world/services"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:x1="http://apache.org/hello_world/bindings"
+ xmlns:x2="http://apache.org/hello_world"
+ targetNamespace="http://apache.org/hello_world/services">
+
+ <wsdl:import
+ namespace="http://apache.org/hello_world/bindings"
+ location="testutils/hello_world_bindings_catalog.wsdl"/>
+
+ <wsdl:service name="SOAPService">
+ <wsdl:port name="SoapPort" binding="x1:SOAPBinding">
+ <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+ </wsdl:port>
+ <wsdl:port name="HttpsPort" binding="x1:SOAPBinding">
+ <soap:address location="https://localhost:9001/SoapContext/HttpsPort"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
+
+
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_services_catalog.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl?rev=582385&view=auto
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl Fri Oct 5 13:57:29 2007
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<wsdl:definitions name="HelloWorldImport"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://apache.org/hello_world"
+ xmlns:x1="http://apache.org/hello_world/messages"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://apache.org/hello_world">
+
+ <wsdl:import
+ namespace="http://apache.org/hello_world/messages"
+ location="testutils/hello_world_messages_catalog.wsdl"/>
+
+ <wsdl:portType name="Greeter">
+ <wsdl:operation name="sayHi">
+ <wsdl:input message="x1:sayHiRequest" name="sayHiRequest"/>
+ <wsdl:output message="x1:sayHiResponse" name="sayHiResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMe">
+ <wsdl:input message="x1:greetMeRequest" name="greetMeRequest"/>
+ <wsdl:output message="x1:greetMeResponse" name="greetMeResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="pingMe">
+ <wsdl:input name="pingMeRequest" message="x1:pingMeRequest"/>
+ <wsdl:output name="pingMeResponse" message="x1:pingMeResponse"/>
+ <wsdl:fault name="pingMeFault" message="x1:pingMeFault"/>
+ </wsdl:operation>
+ </wsdl:portType>
+</wsdl:definitions>
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml
Re: svn commit: r582385 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/helpers/ rt/core/src/main/java/org/apache/cxf/transport/http/ systests/src/test/java/org/apache/cxf/systest/http_jetty/ systests/src/test/java/org/apache/cxf/syst...
Posted by Daniel Kulp <dk...@apache.org>.
On Linux, that wss4j.RoundTripTest and the SequenceTest in systests seem
to fail occasionally and randomly. I haven't had a chance to try and
figure out why. Usually, just re-running mvn install seems to work fine
for me. I'd be OK with putting an @Ignore on it (with a note saying it
randomly fails) for now.
Dan
On Saturday 06 October 2007, Glen Mazza wrote:
> Am Freitag, den 05.10.2007, 20:31 -0400 schrieb Daniel Kulp:
> > > I'm not sure why we need to have the "name" attribute added to the
> > > wsdl:input and wsdl:output of these operations. Since you're just
> > > restating their default values[1] anyway, it seems distracting to
> > > be including them here. Apparently only the wsdl:faults need an
> > > explicit name.
> >
> > Probably right. I just took a bunch of wsdl's in the testutils,
> > copied them, and changed them from using relative imports to using
> > catalogs. Other than the imports, I left the rest alone. Feel
> > free to fix them since you have the Karma. :-)
>
> I'm trying to...BTW, if I do a complete checkout, and type "mvn
> install" in the trunk directory, I should *not* see any test failures,
> correct? I'm getting this error:
>
> -------------------------------------------------------
> T E S T S
> -------------------------------------------------------
> Running org.apache.cxf.ws.security.wss4j.RoundTripTest
> Tests run: 3, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 10.433
> sec <<< FAILURE!
> testUsernameToken(org.apache.cxf.ws.security.wss4j.RoundTripTest)
> Time elapsed: 3.499 sec <<< FAILURE!
> java.lang.AssertionError: expected:<test> but was:<null>
> at org.junit.Assert.fail(Assert.java:71)
> at org.junit.Assert.failNotEquals(Assert.java:451)
> at org.junit.Assert.assertEquals(Assert.java:99)
> at org.junit.Assert.assertEquals(Assert.java:116)
> at
> org.apache.cxf.ws.security.wss4j.RoundTripTest.testUsernameToken(Round
>TripTest.java:110)
>
> I don't know how normal it is for test failures to occur from
> trunk--or whether we should commit things if we are getting such
> failures locally.
>
> Thanks,
> Glen
>
> > Thanks!
--
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727 C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog
Re: svn commit: r582385 - in /incubator/cxf/trunk:
common/common/src/main/java/org/apache/cxf/helpers/
rt/core/src/main/java/org/apache/cxf/transport/http/
systests/src/test/java/org/apache/cxf/systest/http_jetty/
systests/src/test/java/org/apache/cxf/syst...
Posted by Glen Mazza <gl...@verizon.net>.
Am Freitag, den 05.10.2007, 20:31 -0400 schrieb Daniel Kulp:
> > I'm not sure why we need to have the "name" attribute added to the
> > wsdl:input and wsdl:output of these operations. Since you're just
> > restating their default values[1] anyway, it seems distracting to be
> > including them here. Apparently only the wsdl:faults need an explicit
> > name.
>
> Probably right. I just took a bunch of wsdl's in the testutils, copied
> them, and changed them from using relative imports to using catalogs.
> Other than the imports, I left the rest alone. Feel free to fix them
> since you have the Karma. :-)
>
I'm trying to...BTW, if I do a complete checkout, and type "mvn install"
in the trunk directory, I should *not* see any test failures, correct?
I'm getting this error:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.apache.cxf.ws.security.wss4j.RoundTripTest
Tests run: 3, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 10.433
sec <<< FAILURE!
testUsernameToken(org.apache.cxf.ws.security.wss4j.RoundTripTest) Time
elapsed: 3.499 sec <<< FAILURE!
java.lang.AssertionError: expected:<test> but was:<null>
at org.junit.Assert.fail(Assert.java:71)
at org.junit.Assert.failNotEquals(Assert.java:451)
at org.junit.Assert.assertEquals(Assert.java:99)
at org.junit.Assert.assertEquals(Assert.java:116)
at
org.apache.cxf.ws.security.wss4j.RoundTripTest.testUsernameToken(RoundTripTest.java:110)
I don't know how normal it is for test failures to occur from trunk--or
whether we should commit things if we are getting such failures locally.
Thanks,
Glen
> Thanks!
Re: svn commit: r582385 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/helpers/ rt/core/src/main/java/org/apache/cxf/transport/http/ systests/src/test/java/org/apache/cxf/systest/http_jetty/ systests/src/test/java/org/apache/cxf/syst...
Posted by Daniel Kulp <dk...@apache.org>.
On Friday 05 October 2007, Glen Mazza wrote:
> > + @Test
> > + public void testWSDLPublishWithCatalogs() throws Exception {
> > + Endpoint ep = Endpoint.publish(null, new GreeterImpl());
> > + try {
> > + URL url = new
> > URL("http://localhost:9000/SoapContext/SoapPort?" +
> > + "xsd=testutils/hello_world_schema2.xsd"); +
> > assertNotNull(url.getContent());
> > +
> > +
> > + url = new
> > URL("http://localhost:9000/SoapContext/SoapPort" +
> > + "?xsd=testutils/hello_world_schema.xsd");
>
> I'm not sure what the code is doing here--but could this be a security
> bug? Are you saying, just by typing in a network path
> ("testutils/..."), the user can download any xsd file from the server?
> Certain directories, such as within the WEB-INF directory of a WAR
> file, are not supposed to be directly callable externally. I don't
> know how relevant that concern might be here though.
Shouldn't be an issue. The first time a ?wsdl or ?xsd file is requested
from the service, it resolves all the imports and creates a Map of
original URL -> wsdl/schema. If the requested wsdl/xsd is not in the
map, it doesn't return anything. It doesn't try to resolve anything
outside the imports specified in the wsdl/schemas.
> > + String result =
> > IOUtils.toString((InputStream)url.getContent()); +
> > assertTrue(result.contains("xsd=testutils/hello_world_schema2.xsd"))
> >;
>
> testutils/hello_world_schema.xsd? (unsure what is happening here)
If you look in testutils/src/main/resources/wsdl, I added a bunch of
wsdls and schemas that use catalog entries (testutils/xxxxxxx.wsdl)
instead of relative paths for all the imports. What I'm testing is to
make sure that all the imports that are handled by catalogs get properly
replaced. If you look at hello_world_schema.xsd in testutils, it has
an import for "testutils/hello_world_schema2.xsd". I'm making sure
that we properly detected that it was handled by a catalog and then
replaced with a resolvable URL.
> > + url = new
> > URL("http://localhost:9000/SoapContext/SoapPort"
> > + +
> > "?wsdl=testutils/hello_world_messages_catalog.wsdl");
> > + result =
> > IOUtils.toString((InputStream)url.getContent()); +
> > +assertTrue(result.contains("xsd=testutils/hello_world_schema.xsd"))
> >;
>
> testutils/hello_world_messages_catalog.wsdl?
Same as above. It imports the schema via a catalog.
> > + <wsdl:operation name="pingMe">
> > + <wsdl:input name="pingMeRequest"
> > message="x1:pingMeRequest"/> + <wsdl:output
> > name="pingMeResponse" message="x1:pingMeResponse"/> +
> > <wsdl:fault name="pingMeFault" message="x1:pingMeFault"/> +
> > </wsdl:operation>
>
> I'm not sure why we need to have the "name" attribute added to the
> wsdl:input and wsdl:output of these operations. Since you're just
> restating their default values[1] anyway, it seems distracting to be
> including them here. Apparently only the wsdl:faults need an explicit
> name.
Probably right. I just took a bunch of wsdl's in the testutils, copied
them, and changed them from using relative imports to using catalogs.
Other than the imports, I left the rest alone. Feel free to fix them
since you have the Karma. :-)
Thanks!
--
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727 C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog
Re: svn commit: r582385 - in /incubator/cxf/trunk:
common/common/src/main/java/org/apache/cxf/helpers/
rt/core/src/main/java/org/apache/cxf/transport/http/
systests/src/test/java/org/apache/cxf/systest/http_jetty/
systests/src/test/java/org/apache/cxf/syst...
Posted by Glen Mazza <gl...@verizon.net>.
Am Freitag, den 05.10.2007, 20:57 +0000 schrieb dkulp@apache.org:
> Author: dkulp
> Date: Fri Oct 5 13:57:29 2007
> New Revision: 582385
>
> Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java?rev=582385&r1=582384&r2=582385&view=diff
> ==============================================================================
> --- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java (original)
> +++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/OASISCatalogTest.java Fri Oct 5 13:57:29 2007
> @@ -19,20 +19,24 @@
>
>
> + @Test
> + public void testWSDLPublishWithCatalogs() throws Exception {
> + Endpoint ep = Endpoint.publish(null, new GreeterImpl());
> + try {
> + URL url = new URL("http://localhost:9000/SoapContext/SoapPort?"
> + + "xsd=testutils/hello_world_schema2.xsd");
> + assertNotNull(url.getContent());
> +
> +
> + url = new URL("http://localhost:9000/SoapContext/SoapPort"
> + + "?xsd=testutils/hello_world_schema.xsd");
I'm not sure what the code is doing here--but could this be a security
bug? Are you saying, just by typing in a network path
("testutils/..."), the user can download any xsd file from the server?
Certain directories, such as within the WEB-INF directory of a WAR file,
are not supposed to be directly callable externally. I don't know how
relevant that concern might be here though.
> + String result = IOUtils.toString((InputStream)url.getContent());
> + assertTrue(result.contains("xsd=testutils/hello_world_schema2.xsd"));
testutils/hello_world_schema.xsd? (unsure what is happening here)
> +
> + url = new
> URL("http://localhost:9000/SoapContext/SoapPort"
> + +
> "?wsdl=testutils/hello_world_messages_catalog.wsdl");
> + result = IOUtils.toString((InputStream)url.getContent());
> +
> +assertTrue(result.contains("xsd=testutils/hello_world_schema.xsd"));
testutils/hello_world_messages_catalog.wsdl?
> Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl?rev=582385&view=auto
> ==============================================================================
> --- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl (added)
> +++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_wsdl_import_catalog.wsdl Fri Oct 5 13:57:29 2007
> @@ -0,0 +1,50 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--
> +-->
> +<wsdl:definitions name="HelloWorldImport"
> + xmlns="http://schemas.xmlsoap.org/wsdl/"
> + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> + xmlns:tns="http://apache.org/hello_world"
> + xmlns:x1="http://apache.org/hello_world/messages"
> + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> + xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> + targetNamespace="http://apache.org/hello_world">
> +
> + <wsdl:import
> + namespace="http://apache.org/hello_world/messages"
> + location="testutils/hello_world_messages_catalog.wsdl"/>
> +
> + <wsdl:portType name="Greeter">
> + <wsdl:operation name="sayHi">
> + <wsdl:input message="x1:sayHiRequest" name="sayHiRequest"/>
> + <wsdl:output message="x1:sayHiResponse" name="sayHiResponse"/>
> + </wsdl:operation>
> +
> + <wsdl:operation name="greetMe">
> + <wsdl:input message="x1:greetMeRequest" name="greetMeRequest"/>
> + <wsdl:output message="x1:greetMeResponse" name="greetMeResponse"/>
> + </wsdl:operation>
> +
> + <wsdl:operation name="pingMe">
> + <wsdl:input name="pingMeRequest" message="x1:pingMeRequest"/>
> + <wsdl:output name="pingMeResponse" message="x1:pingMeResponse"/>
> + <wsdl:fault name="pingMeFault" message="x1:pingMeFault"/>
> + </wsdl:operation>
I'm not sure why we need to have the "name" attribute added to the
wsdl:input and wsdl:output of these operations. Since you're just
restating their default values[1] anyway, it seems distracting to be
including them here. Apparently only the wsdl:faults need an explicit
name.
[1] http://www.w3.org/TR/wsdl#_names
Regards,
Glen