Author: jochen
Date: Tue Feb 21 17:13:32 2006
New Revision: 379645

URL: http://svn.apache.org/viewcvs?rev=379645&view=rev
Log:
Splitting the project into the subprojects common, client, server, and tests.

Added:
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ClientStreamConnection.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/LocalStreamConnection.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ServerStreamConnection.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessor.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessorFactory.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcStreamRequestProcessor.java
    
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcLocalStreamServer.java

Added: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ClientStreamConnection.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ClientStreamConnection.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ClientStreamConnection.java
 (added)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ClientStreamConnection.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,11 @@
+package org.apache.xmlrpc.common;
+
+
+/** Interface of an object, to which an XML-RPC
+ * request may be written as an XML stream.
+ * Additionally, the object may provide an
+ * XML stream with the response.
+ */
+public interface ClientStreamConnection {
+
+}

Added: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/LocalStreamConnection.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/LocalStreamConnection.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/LocalStreamConnection.java
 (added)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/LocalStreamConnection.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,41 @@
+package org.apache.xmlrpc.common;
+
+import java.io.ByteArrayOutputStream;
+
+
+/** Implementation of [EMAIL PROTECTED] StreamConnection} for
+ * use by the
+ * [EMAIL PROTECTED] org.apache.xmlrpc.client.XmlRpcLocalStreamTransport}.
+ */
+public class LocalStreamConnection
+               implements ClientStreamConnection, ServerStreamConnection {
+       private ByteArrayOutputStream ostream, istream;
+
+       /** Returns the output stream, to which the response
+        * is being written.
+        */
+       public ByteArrayOutputStream getOstream() {
+               return ostream;
+       }
+
+       /** Sets the output stream, to which the response
+        * is being written.
+        */
+       public void setOstream(ByteArrayOutputStream pOstream) {
+               ostream = pOstream;
+       }
+
+       /** Returns the input stream, to which the request
+        * is being written.
+        */
+       public ByteArrayOutputStream getIstream() {
+               return istream;
+       }
+
+       /** Sets the input stream, to which the request
+        * is being written.
+        */
+       public void setIstream(ByteArrayOutputStream pIstream) {
+               istream = pIstream;
+       }
+}

Added: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ServerStreamConnection.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ServerStreamConnection.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ServerStreamConnection.java
 (added)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/ServerStreamConnection.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,11 @@
+package org.apache.xmlrpc.common;
+
+
+/** Interface of an object, which is able to provide
+ * an XML stream, containing an XML-RPC request.
+ * Additionally, the object may also be used to
+ * write the response as an XML stream.
+ */
+public interface ServerStreamConnection {
+
+}

Added: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessor.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessor.java
 (added)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessor.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,16 @@
+package org.apache.xmlrpc.common;
+
+import org.apache.xmlrpc.XmlRpcException;
+import org.apache.xmlrpc.XmlRpcRequest;
+
+
+/** Interface of an object, which is able to process
+ * XML-RPC requests.
+ */
+public interface XmlRpcRequestProcessor {
+       /** Processes the given request and returns a
+        * result object.
+        * @throws XmlRpcException Processing the request failed.
+        */
+       Object execute(XmlRpcRequest pRequest) throws XmlRpcException;
+}

Added: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessorFactory.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessorFactory.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessorFactory.java
 (added)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcRequestProcessorFactory.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,14 @@
+package org.apache.xmlrpc.common;
+
+
+/** Interface of an object, which may be used
+ * to create instances of [EMAIL PROTECTED] XmlRpcRequestProcessor}.
+ */
+public interface XmlRpcRequestProcessorFactory {
+       /** Returns the [EMAIL PROTECTED] XmlRpcRequestProcessor} being invoked.
+        * @return Server object being invoked. This will typically
+        * be a singleton instance, but could as well create a new
+        * instance with any call.
+        */
+       XmlRpcRequestProcessor getXmlRpcServer();
+}

Added: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcStreamRequestProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcStreamRequestProcessor.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcStreamRequestProcessor.java
 (added)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcStreamRequestProcessor.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,20 @@
+package org.apache.xmlrpc.common;
+
+import java.io.IOException;
+
+import org.apache.xmlrpc.XmlRpcException;
+
+
+/** An instance of [EMAIL PROTECTED] XmlRpcRequestProcessor},
+ * which is processing an XML stream.
+ */
+public interface XmlRpcStreamRequestProcessor extends XmlRpcRequestProcessor {
+       /** Reads an XML-RPC request from the connection
+        * object and processes the request, writing the
+        * result to the same connection object.
+        * @throws XmlRpcException Processing the request failed.
+        * @throws IOException An I/O error occurred while reading
+        * the response, or writing the result.
+        */
+       void execute(XmlRpcStreamRequestConfig pConfig, ServerStreamConnection 
pConnection) throws IOException, XmlRpcException;
+}

Added: 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcLocalStreamServer.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcLocalStreamServer.java?rev=379645&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcLocalStreamServer.java
 (added)
+++ 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcLocalStreamServer.java
 Tue Feb 21 17:13:32 2006
@@ -0,0 +1,42 @@
+package org.apache.xmlrpc.server;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.xmlrpc.XmlRpcException;
+import org.apache.xmlrpc.XmlRpcRequest;
+import org.apache.xmlrpc.common.LocalStreamConnection;
+import org.apache.xmlrpc.common.ServerStreamConnection;
+import org.apache.xmlrpc.common.XmlRpcRequestProcessor;
+import org.apache.xmlrpc.common.XmlRpcRequestProcessorFactory;
+import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
+
+
+/** Server part of a local stream transport.
+ */
+public class XmlRpcLocalStreamServer extends XmlRpcStreamServer {
+       public Object execute(XmlRpcRequest pRequest) throws XmlRpcException {
+               XmlRpcRequestProcessor server = 
((XmlRpcRequestProcessorFactory) pRequest.getConfig()).getXmlRpcServer();
+               return server.execute(pRequest);
+       }
+       protected InputStream newInputStream(XmlRpcStreamRequestConfig pConfig, 
ServerStreamConnection pConnection) throws IOException {
+               LocalStreamConnection lsc = (LocalStreamConnection) pConnection;
+               return new ByteArrayInputStream(lsc.getOstream().toByteArray());
+       }
+       protected OutputStream newOutputStream(XmlRpcStreamRequestConfig 
pConfig, ServerStreamConnection pConnection) throws IOException {
+               LocalStreamConnection lsc = (LocalStreamConnection) pConnection;
+               ByteArrayOutputStream istream = new ByteArrayOutputStream();
+               lsc.setIstream(istream);
+               return istream;
+       }
+       protected void closeConnection(ServerStreamConnection pConnection) 
throws IOException {
+               LocalStreamConnection lsc = (LocalStreamConnection) pConnection;
+               final ByteArrayOutputStream istream = lsc.getIstream();
+               if (istream != null) {
+                       try { istream.close(); } catch (Throwable ignore) {}
+               }
+       }
+}
\ No newline at end of file


Reply via email to