r1204 - in xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication: . xmlrpc

Sergiu Dumitriu sdumitriu at users.forge.objectweb.org
Thu Aug 24 18:12:43 CEST 2006


Author: sdumitriu
Date: 2006-08-24 18:12:42 +0200 (Thu, 24 Aug 2006)
New Revision: 1204

Added:
   xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/
Modified:
   xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcConnectionFactory.java
   xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerManager.java
   xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerMapping.java
   xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerStub.java
   xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcNetwork.java
Log:
Renamed package rpc3 to xmlrpc in P2PXWiki.

Copied: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc (from rev 1202, xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc3)

Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcConnectionFactory.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc3/RpcConnectionFactory.java	2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcConnectionFactory.java	2006-08-24 16:12:42 UTC (rev 1204)
@@ -1,4 +1,4 @@
-package com.xpn.p2pxwiki.communication.rpc3;
+package com.xpn.p2pxwiki.communication.xmlrpc;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -11,32 +11,31 @@
 import org.apache.xmlrpc.client.XmlRpcTransportFactory;
 
 import com.xpn.p2pxwiki.P2PXWikiException;
+import com.xpn.p2pxwiki.communication.AbstractConnectionFactory;
 import com.xpn.p2pxwiki.communication.ConnectionFactory;
-import com.xpn.p2pxwiki.communication.ConnectorPlugin;
 import com.xpn.p2pxwiki.communication.HandlerStub;
+import com.xpn.p2pxwiki.communication.rpc.RpcNetwork;
 import com.xpn.p2pxwiki.utils.P2PUtil;
 
-public class RpcConnectionFactory implements ConnectionFactory {
+public class RpcConnectionFactory extends AbstractConnectionFactory implements ConnectionFactory {
 	private static Log log = LogFactory.getFactory().getInstance(RpcConnectionFactory.class);
 	
-	protected static RpcConnectionFactory instance = null;
-	
 	private XmlRpcClientConfigImpl config;
 	private String transportType;
 
-	public RpcConnectionFactory() throws P2PXWikiException {
+	public RpcConnectionFactory(RpcNetwork network) throws P2PXWikiException {
+		super(network);
 		config = new XmlRpcClientConfigImpl();
 		// TODO get properties and add them to the config
 		transportType = XmlRpcCommonsTransportFactory.class.getName();
 		// TODO make transport type customizable
 	}
-	
-	public HandlerStub getConnection(String peer) throws P2PXWikiException {
+
+    public HandlerStub openConnection(String peer) throws P2PXWikiException {
 		try {
 			log.debug("getting xmlrpc connection");
 			
-			// TODO make this dependency between connection factory and network explicit (in the general case!)
-			URL url = new URL(ConnectorPlugin.getNetwork().getCanonicalRemoteName(peer));
+			URL url = new URL(getNetwork().getCanonicalRemoteName(peer));
 			config.setServerURL(url);
 			
 			XmlRpcClient client = new XmlRpcClient();
@@ -45,17 +44,9 @@
 
 			client.setTransportFactory(transport);
 			client.setConfig(config);
-			return new RpcHandlerStub(peer, client);
+			return new RpcHandlerStub(peer, client, this);
 		} catch (MalformedURLException e) {
 			throw new P2PXWikiException(0, e);
 		}
-	}
-
-	public static RpcConnectionFactory getInstance() throws P2PXWikiException {
-		log.debug("getInstance");
-		if (instance == null) {
-			instance = new RpcConnectionFactory();
-		}
-		return instance;
-	}
+    }
 }

Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerManager.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc3/RpcHandlerManager.java	2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerManager.java	2006-08-24 16:12:42 UTC (rev 1204)
@@ -1,4 +1,4 @@
-package com.xpn.p2pxwiki.communication.rpc3;
+package com.xpn.p2pxwiki.communication.xmlrpc;
 
 import java.io.IOException;
 
@@ -9,22 +9,25 @@
 import org.apache.xmlrpc.webserver.WebServer;
 
 import com.xpn.p2pxwiki.P2PXWikiException;
-import com.xpn.p2pxwiki.communication.ConnectorPlugin;
 import com.xpn.p2pxwiki.communication.Handler;
 import com.xpn.p2pxwiki.communication.HandlerManager;
+import com.xpn.p2pxwiki.communication.Network;
 
 public class RpcHandlerManager implements HandlerManager {
 	private static Log log = LogFactory.getFactory().getInstance(RpcHandlerManager.class);
 //	private XmlRpcServlet servlet;
 	private RpcHandlerMapping handlerMapping = new RpcHandlerMapping(); // TODO could allow this to be loaded from a file at startup (PropertyHandlerMapping)
+	private RpcNetwork network;
+	private WebServer webServer;
 	
 	protected static RpcHandlerManager instance = null;
 
-	protected RpcHandlerManager() throws P2PXWikiException {
+	protected RpcHandlerManager(RpcNetwork network) throws P2PXWikiException {
 		log.debug("constructor");
+		this.network = network;
 		try {
 			// TODO this is only one (stupid) way to do it - could be useful in tests
-			WebServer webServer = new WebServer(ConnectorPlugin.getServerPort()); // TODO make dependency to network explicit (obtain the port from the network object)
+			webServer = new WebServer(getNetwork().getServerPort());
 			XmlRpcServer server = webServer.getXmlRpcServer();
 			server.setHandlerMapping(handlerMapping);
 			XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl) server.getConfig();
@@ -50,11 +53,12 @@
 	public boolean removeHandler(Handler handler) throws P2PXWikiException {
 		return handlerMapping.removeHandler(handler.getName());
 	}
+
+	public Network getNetwork() {
+	    return network;
+    }
 	
-	public static RpcHandlerManager getInstance() throws P2PXWikiException {
-		if(instance == null){
-			instance = new RpcHandlerManager();
-		}
-		return instance;
+	public void shutdown() {
+		webServer.shutdown(); // TODO This is not enough to kill this guy ... is it ?
 	}
 }

Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerMapping.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc3/RpcHandlerMapping.java	2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerMapping.java	2006-08-24 16:12:42 UTC (rev 1204)
@@ -1,4 +1,4 @@
-package com.xpn.p2pxwiki.communication.rpc3;
+package com.xpn.p2pxwiki.communication.xmlrpc;
 
 import java.lang.reflect.Method;
 import java.util.HashMap;

Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerStub.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc3/RpcHandlerStub.java	2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcHandlerStub.java	2006-08-24 16:12:42 UTC (rev 1204)
@@ -1,18 +1,25 @@
-package com.xpn.p2pxwiki.communication.rpc3;
+package com.xpn.p2pxwiki.communication.xmlrpc;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.xmlrpc.XmlRpcException;
 import org.apache.xmlrpc.client.XmlRpcClient;
 
 import com.xpn.p2pxwiki.P2PXWikiException;
+import com.xpn.p2pxwiki.communication.ConnectionFactory;
 import com.xpn.p2pxwiki.communication.HandlerStub;
 
 public class RpcHandlerStub implements HandlerStub {
-
+	protected static Log log = LogFactory.getFactory().getInstance(RpcHandlerStub.class);
+	
 	private String peer;
 	private XmlRpcClient client;
+	private RpcConnectionFactory factory;
 
-	public RpcHandlerStub(String peer, XmlRpcClient client) {
+	public RpcHandlerStub(String peer, XmlRpcClient client,
+			RpcConnectionFactory factory) throws P2PXWikiException {
 		this.peer = peer;
+		this.factory = factory;
 		this.client = client;
     }
 
@@ -27,8 +34,8 @@
 	public String getPeerName() {
 	    return peer;
 	}
-	
-	public void close() throws P2PXWikiException {
-	    // nothing to do here	    
-	}
+
+	public ConnectionFactory getConnectionFactory() {
+	    return factory;
+    }
 }

Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcNetwork.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc3/RpcNetwork.java	2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/xmlrpc/RpcNetwork.java	2006-08-24 16:12:42 UTC (rev 1204)
@@ -1,4 +1,4 @@
-package com.xpn.p2pxwiki.communication.rpc3;
+package com.xpn.p2pxwiki.communication.xmlrpc;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -6,42 +6,43 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-//TODO remove this import from ANYWHERE! statics will have to go away!
-import com.xpn.p2pxwiki.communication.ConnectorPlugin;
+import com.xpn.p2pxwiki.P2PXWikiException;
+import com.xpn.p2pxwiki.communication.AbstractNetwork;
 
 import com.xpn.p2pxwiki.communication.Network;
 
-public class RpcNetwork implements Network {
+public class RpcNetwork extends AbstractNetwork implements Network {
 	private static Log log = LogFactory.getFactory().getInstance(RpcNetwork.class);
 	protected static RpcNetwork instance = null;
 
-	protected RpcNetwork(){
+	protected RpcNetwork() throws P2PXWikiException {
 		log.debug("constructor");
 	}
 
-	// TODO This will be written differently
+	// TODO This will be written differently - http://p2psockets.jxta.org/docs/tutorials/1.html (The Loopback)
 	public String getCanonicalLocalName() {
-		// TODO network should store the local server port
-		// TODO network should store the local peer name / address too 
 		try{
-			return "http://" + InetAddress.getLocalHost().getCanonicalHostName() + ":" + ConnectorPlugin.getServerPort();
+			return "http://" + InetAddress.getLocalHost().getCanonicalHostName() + ":" + getServerPort();
 		}
 		catch(UnknownHostException ex){
-			return "http://" + ConnectorPlugin.getPeerName() + ".xwiki.com:" + ConnectorPlugin.getServerPort();
+			return "http://" + getPeerName() + ".xwiki.com:" + getServerPort();
 		}
 	}
 
-	// FIXME This will be written differently
+	// TODO This will be written differently - http://p2psockets.jxta.org/docs/tutorials/1.html
 	public String getCanonicalRemoteName(String peer) {
-		// TODO network should store the server port
-		// TODO this assumes all peers are using the same port ... crap
-		return "http://" + peer + ":" + ConnectorPlugin.getServerPort();
+		return "http://" + peer + ":" + getServerPort();
 	}
 
-	public static RpcNetwork getInstance(){
-		if(instance == null){
-			instance = new RpcNetwork();
-		}
-		return instance;
-	}
+    public String defaultConnectorFactory() {
+	    return RpcConnectionFactory.class.getName();
+    }
+
+    public String defaultHandlerManager() {
+	    return RpcHandlerManager.class.getName();
+    }
+
+    public int defaultServerPort() {
+	    return 9083;
+    }
 }





More information about the Xwiki-notifications mailing list