You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by jo...@apache.org on 2005/11/30 21:30:51 UTC
svn commit: r350038 - in /webservices/xmlrpc/trunk: changes.xml
src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java
src/java/org/apache/xmlrpc/CommonsXmlRpcTransportFactory.java
Author: jochen
Date: Wed Nov 30 12:30:33 2005
New Revision: 350038
URL: http://svn.apache.org/viewcvs?rev=350038&view=rev
Log:
Added the CommonsXmlRpcTransportFactory.
Submitted-By: Jimisola Laursen, lists@simisola.com
Added:
webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransportFactory.java
Modified:
webservices/xmlrpc/trunk/changes.xml
webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java
Modified: webservices/xmlrpc/trunk/changes.xml
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/changes.xml?rev=350038&r1=350037&r2=350038&view=diff
==============================================================================
--- webservices/xmlrpc/trunk/changes.xml (original)
+++ webservices/xmlrpc/trunk/changes.xml Wed Nov 30 12:30:33 2005
@@ -18,6 +18,10 @@
due-to="Thomas Mohaupt" due-to-email="Thomas.Mohaupt at gmail.com">
The wrong version of commons-codec was downloaded by build.xml.
</action>
+ <action dev="jochen" type="enhancement"
+ due-to="Jimisola Laursen" due-to-email="lists@jimisola.com">
+ Added the CommonsXmlRpcTransportFactory.
+ </action>
</release>
</body>
</document>
Modified: webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java?rev=350038&r1=350037&r2=350038&view=diff
==============================================================================
--- webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java (original)
+++ webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java Wed Nov 30 12:30:33 2005
@@ -204,6 +204,18 @@
}
/**
+ * Sets Authentication for this client.
+ *
+ * @param auth the <username>:<password> formed string used for basic \
+ authentication
+ */
+ public void setBasicAuthentication(String auth)
+ {
+ creds = new UsernamePasswordCredentials(auth);
+ client.getState().setCredentials(null, null, creds);
+ }
+
+ /**
* Releases connection resources.
*
* @exception XmlRpcClientException
Added: webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransportFactory.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransportFactory.java?rev=350038&view=auto
==============================================================================
--- webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransportFactory.java (added)
+++ webservices/xmlrpc/trunk/src/java/org/apache/xmlrpc/CommonsXmlRpcTransportFactory.java Wed Nov 30 12:30:33 2005
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed 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.xmlrpc;
+
+import java.net.URL;
+
+import org.apache.commons.httpclient.HttpClient;
+
+
+/** A transport factory, which uses the Jakarta Commons
+ * HttpClient.
+ */
+public class CommonsXmlRpcTransportFactory implements XmlRpcTransportFactory
+{
+ // default properties for new common http-client http transports
+ private URL url;
+ private String auth;
+ private Integer timeout;
+ private Integer connectionTimeout;
+
+ /** Creates a new instance with the given server URL.
+ */
+ public CommonsXmlRpcTransportFactory(URL pURL)
+ {
+ url = pURL;
+ }
+
+ public XmlRpcTransport createTransport () throws XmlRpcClientException
+ {
+ HttpClient client = new HttpClient();
+
+ CommonsXmlRpcTransport transport = new CommonsXmlRpcTransport(url, client);
+
+ if (auth != null)
+ {
+ transport.setBasicAuthentication(auth);
+ }
+
+ // set timeout if set
+ if (timeout != null)
+ {
+ transport.setTimeout(timeout.intValue());
+ }
+
+ // set connection timeout if set
+ if (connectionTimeout != null)
+ {
+ transport.setConnectionTimeout(connectionTimeout.intValue());
+ }
+
+ return transport;
+ }
+
+ /**
+ * Sets Authentication for this client. This will be sent as Basic
+ * Authentication header to the server as described in
+ * <a href="http://www.ietf.org/rfc/rfc2617.txt">
+ * http://www.ietf.org/rfc/rfc2617.txt</a>.
+ */
+ public void setBasicAuthentication(String pAuth)
+ {
+ auth = pAuth;
+ }
+
+ /**
+ * Sets Authentication for this client. This will be sent as Basic
+ * Authentication header to the server as described in
+ * <a href="http://www.ietf.org/rfc/rfc2617.txt">
+ * http://www.ietf.org/rfc/rfc2617.txt</a>.
+ */
+ public void setBasicAuthentication(String pUsername, String pPassword)
+ {
+ auth = pUsername + ":" + pPassword;
+ }
+
+ /**
+ * Sets the socket timeout (<tt>SO_TIMEOUT</tt>) in milliseconds which is the
+ * timeout for waiting for data. A timeout value of zero is interpreted as an
+ * infinite timeout.
+ *
+ * @param newTimeoutInMilliSeconds timeout in milliseconds (ms)
+ * @see org.apache.commons.httpclient.HttpClient#setTimeout
+ */
+ public void setTimeout(int newTimeoutInMilliSeconds)
+ {
+ timeout = new Integer(newTimeoutInMilliSeconds);
+ }
+
+ /**
+ * Sets the timeout until a connection is etablished. A timeout value of zero \
+ means the timeout is not used. The default value is zero.
+ *
+ * @param newConnectionTimeoutInMilliSeconds timeout in milliseconds (ms)
+ * @see org.apache.commons.httpclient.HttpClient#setConnectionTimeout
+ */
+ public void setConnectionTimeout(int newConnectionTimeoutInMilliSeconds)
+ {
+ connectionTimeout = new Integer(newConnectionTimeoutInMilliSeconds);
+ }
+
+ public void setProperty(String propertyName, Object value)
+ {
+ if (TRANSPORT_AUTH.equals(propertyName))
+ {
+ auth = (String) value;
+ }
+ else if (TRANSPORT_URL.equals(propertyName))
+ {
+ url = (URL) value;
+ }
+ }
+}