You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2007/05/16 13:30:47 UTC
svn commit: r538541 - in /webservices/synapse/trunk/java: ./
modules/core/src/main/java/org/apache/synapse/config/
modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/
modules/core/src/main/java/org/apache/synapse/core/axis2/ modules/cor...
Author: asankha
Date: Wed May 16 04:30:45 2007
New Revision: 538541
URL: http://svn.apache.org/viewvc?view=rev&rev=538541
Log:
close the connections when reading resources through URLs. Since the JDK URLConnection uses HTTP 1.1
this causes keep-alive connections to be opened, but the JDK immidiately aborts these (since there
is no clean close() method on the connection) and thus this may cause a warning exception on the
server side for an aborted connection
also moved the code that reads off URLs to the Util class for better managability
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Util.java
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/core/axis2/ProxyService.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java
webservices/synapse/trunk/java/pom.xml
webservices/synapse/trunk/java/src/main/assembly/bin.xml
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?view=diff&rev=538541&r1=538540&r2=538541
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java Wed May 16 04:30:45 2007
@@ -173,17 +173,10 @@
if (entry.getType() == Entry.URL_SRC) {
try {
- URLConnection urlc = entry.getSrc().openConnection();
- XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(
- urlc.getInputStream());
- StAXOMBuilder builder = new StAXOMBuilder(parser);
- entry.setValue(builder.getDocumentElement());
+ entry.setValue(Util.getOMElementFromURL(entry.getSrc().toString()));
localRegistry.put(key, entry);
-
} catch (IOException e) {
handleException("Can not read from source URL : " + entry.getSrc());
- } catch (XMLStreamException e) {
- handleException("Source URL : " + entry.getSrc() + " refers to an invalid XML");
}
} else {
localRegistry.put(key, entry);
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Util.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Util.java?view=diff&rev=538541&r1=538540&r2=538541
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Util.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Util.java Wed May 16 04:30:45 2007
@@ -37,6 +37,7 @@
import java.net.URL;
import java.net.URLConnection;
import java.net.URI;
+import java.net.MalformedURLException;
public class Util {
@@ -134,6 +135,35 @@
} catch (IOException e) {
handleException("Error connecting to URL : " + url, e);
+ }
+ return null;
+ }
+
+ /**
+ * Return an OMElement from a URL source
+ * @param url a URL string
+ * @return an OMElement of the resource
+ * @throws IOException for invalid URL's or IO errors
+ */
+ public static OMElement getOMElementFromURL(String url) throws IOException {
+ URLConnection conn = new URL(url).openConnection();
+ conn.setReadTimeout(30000);
+ conn.setRequestProperty("Connection", "close"); // if http is being used
+ InputStream urlInStream = conn.getInputStream();
+
+ if (urlInStream != null) {
+ try {
+ StAXOMBuilder builder = new StAXOMBuilder(urlInStream);
+ OMElement doc = builder.getDocumentElement();
+ doc.build();
+ return doc;
+ } catch (XMLStreamException e) {
+ log.error("Error parsing resource at URL : " + url + " as XML", e);
+ } finally {
+ try {
+ urlInStream.close();
+ } catch (IOException ignore) {}
+ }
}
return null;
}
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=538541&r1=538540&r2=538541
==============================================================================
--- 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 Wed May 16 04:30:45 2007
@@ -34,9 +34,13 @@
import org.apache.commons.logging.LogFactory;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.axis2.description.WSDL2Constants;
+import org.apache.synapse.config.Util;
import javax.xml.namespace.QName;
import java.net.URL;
+import java.net.URLConnection;
+import java.io.InputStream;
+import java.io.IOException;
/**
* Creates an WSDL based endpoint from a XML configuration.
@@ -127,12 +131,8 @@
wsdlEndpoint.setWsdlURI(wsdlURI.trim());
try {
- URL wsdlURL = new URL(wsdlURI);
- StAXOMBuilder OMBuilder = new StAXOMBuilder
- (wsdlURL.openConnection().getInputStream());
-
- OMElement docElement = OMBuilder.getDocumentElement();
- String ns = docElement.getNamespace().getNamespaceURI();
+ String ns = Util.getOMElementFromURL(new URL(wsdlURI).toString())
+ .getNamespace().getNamespaceURI();
if (org.apache.axis2.namespace.Constants.NS_URI_WSDL11.equals(ns)) {
endpoint = new WSDL11EndpointBuilder().
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java?view=diff&rev=538541&r1=538540&r2=538541
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java Wed May 16 04:30:45 2007
@@ -196,23 +196,7 @@
} else if (wsdlURI != null) {
try {
URL url = wsdlURI.toURL();
- if (url != null) {
- URLConnection urlc = url.openConnection();
- try {
- if (urlc != null) {
- XMLStreamReader parser = XMLInputFactory.newInstance().
- createXMLStreamReader(urlc.getInputStream());
- StAXOMBuilder builder = new StAXOMBuilder(parser);
- wsdlElement = builder.getDocumentElement();
- // detach from URL connection and keep in memory
- // TODO remove this
- wsdlElement.build();
- }
- } catch (XMLStreamException e) {
- log.warn("Content at URL : " + url + " is non XML..");
- }
-
- }
+ wsdlElement = Util.getOMElementFromURL(url.toString());
} catch (MalformedURLException e) {
handleException("Malformed URI for wsdl", e);
} catch (IOException e) {
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java?view=diff&rev=538541&r1=538540&r2=538541
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java Wed May 16 04:30:45 2007
@@ -83,6 +83,8 @@
try {
URL url = new URL(getRoot() + key);
URLConnection urlc = url.openConnection();
+ urlc.setReadTimeout(30000);
+ urlc.setRequestProperty("Connection", "Close");
URLRegistryEntry wre = new URLRegistryEntry();
wre.setKey(key);
Modified: webservices/synapse/trunk/java/pom.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/pom.xml?view=diff&rev=538541&r1=538540&r2=538541
==============================================================================
--- webservices/synapse/trunk/java/pom.xml (original)
+++ webservices/synapse/trunk/java/pom.xml Wed May 16 04:30:45 2007
@@ -425,7 +425,7 @@
<!-- Sandesha -->
<dependency>
<groupId>org.apache.sandesha2</groupId>
- <artifactId>sandesha2-mar</artifactId>
+ <artifactId>sandesha2</artifactId>
<version>${sandesha2.version}</version>
<type>mar</type>
<exclusions>
Modified: webservices/synapse/trunk/java/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/src/main/assembly/bin.xml?view=diff&rev=538541&r1=538540&r2=538541
==============================================================================
--- webservices/synapse/trunk/java/src/main/assembly/bin.xml (original)
+++ webservices/synapse/trunk/java/src/main/assembly/bin.xml Wed May 16 04:30:45 2007
@@ -197,7 +197,7 @@
<excludes>
<exclude>org.apache.axis2:addressing:mar</exclude>
<exclude>org.apache.rampart:rampart:mar</exclude>
- <exclude>org.apache.sandesha2:sandesha2-mar:mar</exclude>
+ <exclude>org.apache.sandesha2:sandesha2:mar</exclude>
<exclude>org.apache.ant:ant:jar</exclude>
<exclude>org.apache.ant:ant-nodeps:jar</exclude>
<exclude>org.apache.ant:ant-launcher:jar</exclude>
@@ -223,7 +223,7 @@
<includes>
<include>org.apache.axis2:addressing:mar</include>
<include>org.apache.rampart:rampart:mar</include>
- <include>org.apache.sandesha2:sandesha2-mar:mar</include>
+ <include>org.apache.sandesha2:sandesha2:mar</include>
</includes>
<outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
</dependencySet>
@@ -232,7 +232,7 @@
<includes>
<include>org.apache.axis2:addressing:mar</include>
<include>org.apache.rampart:rampart:mar</include>
- <include>org.apache.sandesha2:sandesha2-mar:mar</include>
+ <include>org.apache.sandesha2:sandesha2:mar</include>
</includes>
<outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
</dependencySet>
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org