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