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