Author: chris.laprun(a)jboss.com
Date: 2007-12-13 18:01:28 -0500 (Thu, 13 Dec 2007)
New Revision: 9341
Added:
branches/JBoss_Portal_Branch_2_6/wsrp/src/resources/tests/test-wsrp-producer-sar/xsd/
branches/JBoss_Portal_Branch_2_6/wsrp/src/resources/tests/test-wsrp-producer-sar/xsd/xml.xsd
Modified:
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java
Log:
- Use local xml.xsd instead of retrieving it over the network each time. Should also help
when using WSRP behind firewall/proxy.
Modified:
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java 2007-12-13
22:07:55 UTC (rev 9340)
+++
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java 2007-12-13
23:01:28 UTC (rev 9341)
@@ -198,6 +198,9 @@
private final Logger log = Logger.getLogger(getClass());
private static final int TIME_OUT_MS = 10000;
+ private static final String XML_XSD = "http://www.w3.org/2001/xml.xsd";
+ private static final String LOCAL_XML_XSD = "xsd/xml.xsd";
+
public WSDLLocatorImpl(URL wsdlFile)
{
ParameterValidation.throwIllegalArgExceptionIfNull(wsdlFile, "WSDL
URL");
@@ -251,6 +254,12 @@
if (resource.startsWith("http://") ||
resource.startsWith("https://"))
{
wsdlImport = resource;
+ if (XML_XSD.equals(resource))
+ {
+ InputStream is =
Thread.currentThread().getContextClassLoader().getResourceAsStream(LOCAL_XML_XSD);
+ log.debug("Using local xml.xsd");
+ return getWSDLImport(wsdlImport, is);
+ }
}
// Absolute path
@@ -283,15 +292,7 @@
try
{
- log.info("Resolved to: " + wsdlImport);
- InputStream is = IOTools.safeBufferedWrapper(new
URL(wsdlImport).openStream());
- if (is == null)
- {
- throw new IllegalArgumentException("Cannot import wsdl from [" +
wsdlImport + "]");
- }
-
- latestImportURI = wsdlImport;
- return new InputSource(is);
+ return getWSDLImport(wsdlImport, new URL(wsdlImport).openStream());
}
catch (IOException e)
{
@@ -299,6 +300,19 @@
}
}
+ private InputSource getWSDLImport(String wsdlImport, InputStream inputStream)
+ {
+ log.debug("Resolved to: " + wsdlImport);
+ InputStream is = IOTools.safeBufferedWrapper(inputStream);
+ if (is == null)
+ {
+ throw new IllegalArgumentException("Cannot import wsdl from [" +
wsdlImport + "]");
+ }
+
+ latestImportURI = wsdlImport;
+ return new InputSource(is);
+ }
+
public String getLatestImportURI()
{
return latestImportURI;
Copied:
branches/JBoss_Portal_Branch_2_6/wsrp/src/resources/tests/test-wsrp-producer-sar/xsd/xml.xsd
(from rev 9340,
branches/JBoss_Portal_Branch_2_6/wsrp/src/resources/portal-wsrp-sar/xsd/xml.xsd)
===================================================================
---
branches/JBoss_Portal_Branch_2_6/wsrp/src/resources/tests/test-wsrp-producer-sar/xsd/xml.xsd
(rev 0)
+++
branches/JBoss_Portal_Branch_2_6/wsrp/src/resources/tests/test-wsrp-producer-sar/xsd/xml.xsd 2007-12-13
23:01:28 UTC (rev 9341)
@@ -0,0 +1,147 @@
+<?xml version='1.0'?>
+
+<xs:schema
targetNamespace="http://www.w3.org/XML/1998/namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xml:lang="en">
+
+ <xs:annotation>
+ <xs:documentation>
+ See
http://www.w3.org/XML/1998/namespace.html and
+
http://www.w3.org/TR/REC-xml for information about this namespace.
+
+ This schema document describes the XML namespace, in a form
+ suitable for import by other schema documents.
+
+ Note that local names in this namespace are intended to be defined
+ only by the World Wide Web Consortium or its subgroups. The
+ following names are currently defined in this namespace and should
+ not be used with conflicting semantics by any Working Group,
+ specification, or document instance:
+
+ base (as an attribute name): denotes an attribute whose value
+ provides a URI to be used as the base for interpreting any
+ relative URIs in the scope of the element on which it
+ appears; its value is inherited. This name is reserved
+ by virtue of its definition in the XML Base specification.
+
+ id (as an attribute name): denotes an attribute whose value
+ should be interpreted as if declared to be of type ID.
+ This name is reserved by virtue of its definition in the
+ xml:id specification.
+
+ lang (as an attribute name): denotes an attribute whose value
+ is a language code for the natural language of the content of
+ any element; its value is inherited. This name is reserved
+ by virtue of its definition in the XML specification.
+
+ space (as an attribute name): denotes an attribute whose
+ value is a keyword indicating what whitespace processing
+ discipline is intended for the content of the element; its
+ value is inherited. This name is reserved by virtue of its
+ definition in the XML specification.
+
+ Father (in any context at all): denotes Jon Bosak, the chair of
+ the original XML Working Group. This name is reserved by
+ the following decision of the W3C XML Plenary and
+ XML Coordination groups:
+
+ In appreciation for his vision, leadership and dedication
+ the W3C XML Plenary on this 10th day of February, 2000
+ reserves for Jon Bosak in perpetuity the XML name
+ xml:Father
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
+ attributes on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows:
+ <schema . . .>
+ . . .
+ <import
namespace="http://www.w3.org/XML/1998/namespace"
+
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g.
+
+ <type . . .>
+ . . .
+ <attributeGroup ref="xml:specialAttrs"/>
+
+ will define a type which will schema-validate an instance
+ element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+
http://www.w3.org/2007/08/xml.xsd.
+ At the date of issue it can also be found at
+
http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself, or with the XML namespace itself. In other words, if the XML
+ Schema or XML namespaces change, the version of this document at
+
http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+
http://www.w3.org/2007/08/xml.xsd will not change.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+ <xs:annotation>
+ <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values is probably never
+ going to be a realistic possibility. See
+ RFC 3066 at
http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
+ at
http://www.iana.org/assignments/lang-tag-apps.htm for
+ further information.
+
+ The union allows for the 'un-declaration' of xml:lang with
+ the empty string.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:union memberTypes="xs:language">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value=""/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation>See
http://www.w3.org/TR/xmlbase/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="id" type="xs:ID">
+ <xs:annotation>
+ <xs:documentation>See
http://www.w3.org/TR/xml-id/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+ <xs:attribute ref="xml:base"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ <xs:attribute ref="xml:id"/>
+ </xs:attributeGroup>
+
+</xs:schema>