ws-xmlrpc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Henri Gomez <henri.go...@gmail.com>
Subject Re: cvs commit: ws-xmlrpc/src/java/org/apache/xmlrpc CommonsXmlRpcTransport.java DefaultXmlRpcTransport.java LiteXmlRpcTransport.java XmlRpc.java XmlRpcClientWorker.java XmlRpcTransport.java
Date Wed, 30 Mar 2005 14:05:37 GMT
Well I'm using this patched 2.0 on developpement systems without problems :)

Will you still commit on 2.0 or should we consider the current HEAD as
'stable' ?




On Wed, 30 Mar 2005 15:02:18 +0100, Andrew Evers
<Andrew.Evers@redwood.com> wrote:
> Hi Henri,
> 
> I'm currently focusing on fixing up 1.2 (the stuff you saw on 2.0 was to
> fix a bug, not to add a feature). I'm also not that au fait with the
> CommonsHttpTransport stuff (that's Ryan's baby), so I am loathe to add
> features without test cases.
> 
> Can you provide some test cases that use your gzip functionality?
> 
> Creating a bugzilla bug and attaching the patch and a test case to it is
> a great way of making committer's lives easier (and getting your patch
> accepted as a result ;).
> 
> Regards,
> 
> Andrew.
> 
> -----Original Message-----
> From: Henri Gomez [mailto:henri.gomez@gmail.com]
> Sent: Wednesday, March 30, 2005 2:57 PM
> To: xmlrpc-dev@ws.apache.org
> Subject: Re: cvs commit: ws-xmlrpc/src/java/org/apache/xmlrpc
> CommonsXmlRpcTransport.java DefaultXmlRpcTransport.java
> LiteXmlRpcTransport.java XmlRpc.java XmlRpcClientWorker.java
> XmlRpcTransport.java
> 
> What about adding my fixes to support gzip compression ?
> 
> On 30 Mar 2005 11:19:18 -0000, aevers@apache.org <aevers@apache.org>
> wrote:
> > aevers      2005/03/30 03:19:18
> >
> >   Modified:    src/java/org/apache/xmlrpc CommonsXmlRpcTransport.java
> >                         DefaultXmlRpcTransport.java
> >                         LiteXmlRpcTransport.java XmlRpc.java
> >                         XmlRpcClientWorker.java XmlRpcTransport.java
> >   Log:
> >   Bug 20339: LiteXmlRpcTransport throws IOExcpetion 'socket closed'
> >
> >   Fix general resource leaks regarding connections in client side
> >   transpot code. There is now an endClientRequest() in the
> >   XmlRpcTransport interface. Appropriate implementations have been
> >   filled in for all shipped transports.
> >
> >   Passes all tests except Base64 (was already broken). Note, for
> >   tests to pass you must have commons-logging installed as
> >   it is used by commons-httpclient.
> >
> >   PR: 20339
> >
> >   Revision  Changes    Path
> >   1.3       +28 -10
> ws-xmlrpc/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java
> >
> >   Index: CommonsXmlRpcTransport.java
> >   ===================================================================
> >   RCS file:
> /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.ja
> va,v
> >   retrieving revision 1.2
> >   retrieving revision 1.3
> >   diff -u -r1.2 -r1.3
> >   --- CommonsXmlRpcTransport.java       26 Dec 2003 16:57:51 -0000
> 1.2
> >   +++ CommonsXmlRpcTransport.java       30 Mar 2005 11:19:18 -0000
> 1.3
> >   @@ -76,20 +76,28 @@
> >     * @version $Id$
> >     * @since 1.2
> >     */
> >   -public class CommonsXmlRpcTransport implements XmlRpcTransport {
> >   +public class CommonsXmlRpcTransport implements XmlRpcTransport
> >   +{
> >
> >   +    protected PostMethod method;
> >   +
> >        /** Creates a new instance of CommonsXmlRpcTransport */
> >   -    public CommonsXmlRpcTransport(URL url, HttpClient client) {
> >   +    public CommonsXmlRpcTransport(URL url, HttpClient client)
> >   +    {
> >            this.url = url;
> >   -        if (client == null) {
> >   +        if (client == null)
> >   +        {
> >                HttpClient newClient = new HttpClient();
> >                this.client = newClient;
> >   -        } else {
> >   +        }
> >   +        else
> >   +        {
> >                this.client = client;
> >            }
> >        }
> >
> >   -    public CommonsXmlRpcTransport(URL url) {
> >   +    public CommonsXmlRpcTransport(URL url)
> >   +    {
> >            this(url, null);
> >        }
> >
> >   @@ -98,8 +106,9 @@
> >        private final Header userAgentHeader = new Header("User-Agent",
> XmlRpc.version);
> >        private boolean http11 = false; // defaults to HTTP 1.0
> >
> >   -    public InputStream sendXmlRpc(byte[] request) throws
> IOException, XmlRpcClientException {
> >   -        PostMethod method = new PostMethod(url.toString());
> >   +    public InputStream sendXmlRpc(byte[] request) throws
> IOException, XmlRpcClientException
> >   +    {
> >   +        method = new PostMethod(url.toString());
> >            method.setHttp11(http11);
> >            method.setRequestHeader(new Header("Content-Type",
> "text/xml"));
> >            method.setRequestHeader(userAgentHeader);
> >   @@ -112,11 +121,20 @@
> >            return method.getResponseBodyAsStream();
> >        }
> >
> >   -    public void setHttp11(boolean http11) {
> >   +    public void setHttp11(boolean http11)
> >   +    {
> >            this.http11 = http11;
> >        }
> >
> >   -    public void setUserAgent(String userAgent) {
> >   +    public void setUserAgent(String userAgent)
> >   +    {
> >            userAgentHeader.setValue(userAgent);
> >        }
> >   +
> >   +    public void endClientRequest()
> >   +    throws XmlRpcClientException
> >   +    {
> >   +        // Rlease connection resources
> >   +        method.releaseConnection();
> >   +    }
> >    }
> >
> >   1.3       +16 -2
> ws-xmlrpc/src/java/org/apache/xmlrpc/DefaultXmlRpcTransport.java
> >
> >   Index: DefaultXmlRpcTransport.java
> >   ===================================================================
> >   RCS file:
> /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/DefaultXmlRpcTransport.ja
> va,v
> >   retrieving revision 1.2
> >   retrieving revision 1.3
> >   diff -u -r1.2 -r1.3
> >   --- DefaultXmlRpcTransport.java       29 Jan 2003 00:46:37 -0000
> 1.2
> >   +++ DefaultXmlRpcTransport.java       30 Mar 2005 11:19:18 -0000
> 1.3
> >   @@ -75,6 +75,7 @@
> >    {
> >        protected URL url;
> >        protected String auth;
> >   +    protected URLConnection con;
> >
> >        /**
> >         * Create a new DefaultXmlRpcTransport with the specified URL
> and basic
> >   @@ -104,7 +105,7 @@
> >        public InputStream sendXmlRpc(byte [] request)
> >        throws IOException
> >        {
> >   -        URLConnection con = url.openConnection();
> >   +        con = url.openConnection();
> >            con.setDoInput(true);
> >            con.setDoOutput(true);
> >            con.setUseCaches(false);
> >   @@ -133,4 +134,17 @@
> >        {
> >            auth = HttpUtil.encodeBasicAuthentication(user, password);
> >        }
> >   +
> >   +    public void endClientRequest()
> >   +    throws XmlRpcClientException
> >   +    {
> >   +        try
> >   +        {
> >   +            con.getInputStream().close();
> >   +        }
> >   +        catch (Exception e)
> >   +        {
> >   +            throw new XmlRpcClientException("Exception closing
> URLConnection", e);
> >   +        }
> >   +    }
> >    }
> >
> >   1.4       +10 -7
> ws-xmlrpc/src/java/org/apache/xmlrpc/LiteXmlRpcTransport.java
> >
> >   Index: LiteXmlRpcTransport.java
> >   ===================================================================
> >   RCS file:
> /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/LiteXmlRpcTransport.java,
> v
> >   retrieving revision 1.3
> >   retrieving revision 1.4
> >   diff -u -r1.3 -r1.4
> >   --- LiteXmlRpcTransport.java  1 May 2003 16:53:15 -0000       1.3
> >   +++ LiteXmlRpcTransport.java  30 Mar 2005 11:19:18 -0000      1.4
> >   @@ -147,12 +147,6 @@
> >                    }
> >                }
> >
> >   -            // eepalive is always false if XmlRpc.keepalive is
> false
> >   -            if (!keepalive)
> >   -            {
> >   -                closeConnection ();
> >   -            }
> >   -
> >                return in;
> >            }
> >            catch (IOException iox)
> >   @@ -326,6 +320,15 @@
> >            auth = HttpUtil.encodeBasicAuthentication(user, password);
> >        }
> >
> >   +    public void endClientRequest()
> >   +    {
> >   +        // eepalive is always false if XmlRpc.keepalive is false
> >   +        if (!keepalive)
> >   +        {
> >   +            closeConnection ();
> >   +        }
> >   +    }
> >   +
> >        /**
> >         *
> >         * @return
> >
> >   1.38      +41 -2
> ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpc.java
> >
> >   Index: XmlRpc.java
> >   ===================================================================
> >   RCS file:
> /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpc.java,v
> >   retrieving revision 1.37
> >   retrieving revision 1.38
> >   diff -u -r1.37 -r1.38
> >   --- XmlRpc.java       30 Jun 2004 06:11:55 -0000      1.37
> >   +++ XmlRpc.java       30 Mar 2005 11:19:18 -0000      1.38
> >   @@ -56,6 +56,7 @@
> >     */
> >
> >    import java.io.InputStream;
> >   +import java.io.InputStreamReader;
> >    import java.util.Hashtable;
> >    import java.util.Stack;
> >    import java.util.Vector;
> >   @@ -188,6 +189,15 @@
> >         */
> >        static String encoding = XmlWriter.ISO8859_1;
> >
> >   +    /**
> >   +     * Java's name for the input encoding we're using.  Defaults to
> >   +     * <code>null</code>, signifying the platform default. This may
> >   +     * need to be overridden on platforms where the default
> encoding
> >   +     * is not compatible with ASCII (eg. EBCDIC) but the network is
> >   +     * still ASCII-like.
> >   +     */
> >   +    static String inputEncoding = null;
> >   +
> >        private TypeFactory typeFactory;
> >
> >        /**
> >   @@ -342,6 +352,28 @@
> >        }
> >
> >        /**
> >   +     * Set the input encoding of the XML.
> >   +     * This is used only if set.
> >   +     *
> >   +     * @param enc The Java name of the encoding.
> >   +     */
> >   +    public static void setInputEncoding(String enc)
> >   +    {
> >   +        inputEncoding = enc;
> >   +    }
> >   +
> >   +    /**
> >   +     * Return the input encoding. This may be null. This is always
> a
> >   +     * Java encoding name, it is not transformed.
> >   +     *
> >   +     * @return the Java encoding name to use, if set, otherwise
> null.
> >   +     */
> >   +    public static String getInputEncoding ()
> >   +    {
> >   +        return inputEncoding;
> >   +    }
> >   +
> >   +    /**
> >         * Gets the maximum number of threads used at any given moment.
> >         */
> >        public static int getMaxThreads()
> >   @@ -440,7 +472,14 @@
> >            }
> >            try
> >            {
> >   -            parser.parse(new InputSource (is));
> >   +            if(inputEncoding == null)
> >   +            {
> >   +              parser.parse(new InputSource (is));
> >   +            }
> >   +            else
> >   +            {
> >   +              parser.parse( new InputSource( new
> InputStreamReader(is, inputEncoding)));
> >   +            }
> >            }
> >            finally
> >            {
> >
> >   1.2       +8 -0
> ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java
> >
> >   Index: XmlRpcClientWorker.java
> >   ===================================================================
> >   RCS file:
> /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java,v
> >   retrieving revision 1.1
> >   retrieving revision 1.2
> >   diff -u -r1.1 -r1.2
> >   --- XmlRpcClientWorker.java   5 Dec 2002 08:49:24 -0000       1.1
> >   +++ XmlRpcClientWorker.java   30 Mar 2005 11:19:18 -0000      1.2
> >   @@ -136,6 +136,14 @@
> >                    System.out.println("Spent " +
> (System.currentTimeMillis() - now)
> >                                       + " millis in
> request/process/response");
> >                }
> >   +            try
> >   +            {
> >   +                transport.endClientRequest();
> >   +            }
> >   +            catch (RuntimeException re)
> >   +            {
> >   +                throw new XmlRpcClientException("Transport
> exception in endClientRequest()", re);
> >   +            }
> >            }
> >        }
> >
> >   1.2       +19 -1
> ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcTransport.java
> >
> >   Index: XmlRpcTransport.java
> >   ===================================================================
> >   RCS file:
> /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcTransport.java,v
> >   retrieving revision 1.1
> >   retrieving revision 1.2
> >   diff -u -r1.1 -r1.2
> >   --- XmlRpcTransport.java      5 Dec 2002 08:49:24 -0000       1.1
> >   +++ XmlRpcTransport.java      30 Mar 2005 11:19:18 -0000      1.2
> >   @@ -68,6 +68,24 @@
> >     */
> >    public interface XmlRpcTransport
> >    {
> >   +  /**
> >   +   * Send an XML-RPC message. This method is called to send a
> message to the
> >   +   * other party.
> >   +   *
> >   +   * @param request the request in network encoding.
> >   +   *
> >   +   * @throws IOException if an IOException occurs in the IO level
> of the transport.
> >   +   * @throws XmlRpcClientException if an exception occurs in the
> transport.
> >   +   */
> >      public InputStream sendXmlRpc(byte [] request)
> >      throws IOException, XmlRpcClientException;
> >   +
> >   +  /**
> >   +   * End an XML-RPC request. This method is called by the
> XmlRpcClient when then
> >   +   * request has been sent and the response (or an exception)
> recieved.
> >   +   *
> >   +   * @throws XmlRpcClientException if an exception occurs in the
> transport.
> >   +   */
> >   +  public void endClientRequest()
> >   +  throws XmlRpcClientException;
> >    }
> >
> >
>

Mime
View raw message