r1203 - in xwiki-clients/p2pxwiki/src: main/java/com/xpn/p2pxwiki/communication main/java/com/xpn/p2pxwiki/communication/jxta main/java/com/xpn/p2pxwiki/communication/rpc main/java/com/xpn/p2pxwiki/examples main/java/com/xpn/p2pxwiki/registry main/java/com/xpn/p2pxwiki/replication main/java/com/xpn/p2pxwiki/services/file test/java/com/xpn/p2pxwiki test/java/com/xpn/p2pxwiki/communication test/java/com/xpn/p2pxwiki/mocks
Sergiu Dumitriu
sdumitriu at users.forge.objectweb.org
Thu Aug 24 11:04:47 CEST 2006
Author: sdumitriu
Date: 2006-08-24 11:04:46 +0200 (Thu, 24 Aug 2006)
New Revision: 1203
Added:
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractConnectionFactory.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/AllTests.java
Modified:
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractNetwork.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectionFactory.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorApi.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorPlugin.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Handler.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerManager.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerStub.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Network.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaConnectionFactory.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerManager.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerStub.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaNetwork.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcConnectionFactory.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerManager.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerStub.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcNetwork.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/examples/ReplicationClientExamples.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/registry/RegistryClient.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/replication/ReplicationClient.java
xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/services/file/FileP2PServer.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/AbstractLocalTest.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/ConnectorPluginTest.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/JxtaLocalTest.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/RpcLocalTest.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockConnectionFactory.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerManager.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerStub.java
xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockNetwork.java
Log:
Even more refactoring of XWikiP2P communication packages.
Added: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractConnectionFactory.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractConnectionFactory.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractConnectionFactory.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -0,0 +1,91 @@
+package com.xpn.p2pxwiki.communication;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.xpn.p2pxwiki.P2PXWikiException;
+import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.cache.api.XWikiCache;
+import com.xpn.xwiki.cache.api.XWikiCacheNeedsRefreshException;
+
+public abstract class AbstractConnectionFactory implements ConnectionFactory {
+ public static final String CACHETIME = "p2pxwiki.connector.cachetime";
+ public static final int DEFAULT_CACHETIME = -1;
+
+ private static final Log log = LogFactory.getFactory().getInstance(AbstractConnectionFactory.class);
+ private Network network;
+ private XWikiCache cache;
+ private int cacheTime;
+ private XWiki xwiki;
+
+ public abstract HandlerStub openConnection(String peer);
+
+ public AbstractConnectionFactory(Network network) {
+ this.network = network;
+ xwiki = ConnectorPlugin.getInstance().getXWiki();
+ log.debug("Creating connection cache");
+ try{
+ cache = xwiki.getCacheService().newLocalCache();
+ }
+ catch(XWikiException ex){
+ // TODO: Handle this better, e.g. use a HashMap
+ log.error("Cannot create cache!", ex);
+ }
+
+ log.debug("Configuring cache time");
+ cacheTime = (int)xwiki.ParamAsLong(CACHETIME, DEFAULT_CACHETIME);
+ log.debug("Configured cache time: " + cacheTime);
+ }
+
+ public Network getNetwork() {
+ return network;
+ }
+
+ /**
+ * Usually you don't need to override this and just implement openConnection.
+ * @see com.xpn.p2pxwiki.communication.ConnectionFactory#getConnection(java.lang.String)
+ */
+ public HandlerStub getConnection(String peer) throws P2PXWikiException {
+ log.debug("Get connection for " + peer);
+ HandlerStub connection = null;
+ boolean updated = false;
+ if (cache != null){
+ try{
+ connection = (HandlerStub)cache.getFromCache(peer, cacheTime);
+ if(connection == null){
+ log.debug("Connection not found in cache; creating a new connection");
+ connection = openConnection(peer);
+ cache.putInCache(peer, connection);
+ }
+ else{
+ log.debug("Connection found in cache");
+ }
+ }
+ catch(XWikiCacheNeedsRefreshException ex){
+ log.debug("Expired connection found in cache; creating a new connection");
+ try {
+ connection = openConnection(peer);
+ cache.putInCache(peer, connection);
+ updated = true;
+ } finally {
+ if (!updated) {
+ cache.cancelUpdate(peer);
+ }
+ }
+ }
+ }
+ else{
+ connection = openConnection(peer);
+ }
+ return connection;
+ }
+
+ /**
+ * Might need to override this to actually close the stub.
+ * In that case remember to call parent closeConnection first.
+ */
+ public void closeConnection(HandlerStub stub) throws P2PXWikiException {
+ cache.flushEntry(stub.getPeerName());
+ }
+}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractNetwork.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractNetwork.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/AbstractNetwork.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -6,22 +6,15 @@
import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.utils.P2PUtil;
import com.xpn.xwiki.XWiki;
-import com.xpn.xwiki.XWikiException;
-import com.xpn.xwiki.cache.api.XWikiCache;
-import com.xpn.xwiki.cache.api.XWikiCacheNeedsRefreshException;
public abstract class AbstractNetwork implements Network {
public static final String CONNECTOR_FACTORY = "p2pxwiki.connector.type";
public static final String HANDLER_MANAGER = "p2pxwiki.connector.handler";
public static final String SERVER_PORT = "p2pxwiki.server.port";
- public static final String CACHETIME = "p2pxwiki.connector.cachetime";
- public static final int DEFAULT_CACHETIME = -1;
public static final String PEER_NAME = "p2pxwiki.peername";
private static final Log log = LogFactory.getFactory().getInstance(AbstractNetwork.class);
- private XWikiCache cache;
private String peerName;
- private int cacheTime;
private int serverPort;
private ConnectionFactory factory;
private HandlerManager handlerManager;
@@ -32,105 +25,61 @@
public abstract String defaultHandlerManager();
public abstract int defaultServerPort();
- public AbstractNetwork(XWiki xwiki) {
- log.debug("Creating connection cache");
- try{
- cache = xwiki.getCacheService().newLocalCache();
- }
- catch(XWikiException ex){
- // TODO: Handle this better, e.g. use a HashMap
- log.error("Cannot create cache!", ex);
- }
-
+ public AbstractNetwork() throws P2PXWikiException {
+ XWiki xwiki = ConnectorPlugin.getInstance().getXWiki();
+
log.debug("Configuring peer name");
peerName = xwiki.Param(PEER_NAME);
log.debug("Peer name: " + peerName);
- log.debug("Configuring cache time");
- cacheTime = (int)xwiki.ParamAsLong(CACHETIME, DEFAULT_CACHETIME);
- log.debug("Configured cache time: " + cacheTime);
log.debug("Configuring server port");
serverPort = (int)xwiki.ParamAsLong(SERVER_PORT, defaultServerPort());
log.debug("Configured server port: " + serverPort);
log.debug("Configuring connector factory");
String connectorType = xwiki.Param(CONNECTOR_FACTORY, defaultConnectorFactory());
- // TODO: Retry with default connector on failure, if this isn't already the default
- try{
+ try {
factory = (ConnectionFactory)P2PUtil.getInstance(connectorType,
new Object[] {this}, new Class[] {getClass()});
- }
- catch(P2PXWikiException ex){
+ } catch(P2PXWikiException ex){
log.error("Cannot load connector factory", ex);
- // we continue and hope for the best
+ if (connectorType != defaultConnectorFactory()) {
+ log.debug("Retrying with default connector factory");
+ factory = (ConnectionFactory)P2PUtil.getInstance(defaultConnectorFactory(),
+ new Object[] {this}, new Class[] {getClass()});
+ } else {
+ throw ex;
+ }
}
log.debug("Obtained factory: " + factory.getClass().getCanonicalName());
log.debug("Configuring handler manager");
- // TODO: Retry with default manager on failure, if this isn't already the default
String handlerManagerType = xwiki.Param(HANDLER_MANAGER, defaultHandlerManager());
try{
handlerManager = (HandlerManager)P2PUtil.getInstance(handlerManagerType,
new Object[] {this}, new Class[] {getClass()});
- }
- catch(P2PXWikiException ex){
+ } catch(P2PXWikiException ex){
log.error("Cannot load handler manager", ex);
- ex.printStackTrace();
- // we continue and hope for the best
+ if (handlerManagerType != defaultHandlerManager()) {
+ log.debug("Retrying with default handler manager");
+ handlerManager = (HandlerManager)P2PUtil.getInstance(defaultHandlerManager(),
+ new Object[] {this}, new Class[] {getClass()});
+ } else {
+ throw ex;
+ }
}
log.debug("Obtained handler manager: " + handlerManager.getClass().getCanonicalName());
}
+
+ public ConnectionFactory getConnectionFactory() {
+ return factory;
+ }
- public HandlerStub getConnection(String peer) throws P2PXWikiException {
- // TODO: does this really belong here? AbstractConnectionFactory?
- log.debug("Get connection for " + peer);
- HandlerStub connection = null;
- boolean updated = false;
- if (cache != null){
- try{
- connection = (HandlerStub)cache.getFromCache(peer, cacheTime);
- if(connection == null){
- log.debug("Connection not found in cache; creating a new connection");
- connection = factory.getConnection(peer);
- cache.putInCache(peer, connection);
- }
- else{
- log.debug("Connection found in cache");
- }
- }
- catch(XWikiCacheNeedsRefreshException ex){
- log.debug("Expired connection found in cache; creating a new connection");
- try {
- connection = factory.getConnection(peer);
- cache.putInCache(peer, connection);
- updated = true;
- } finally {
- if (!updated) {
- cache.cancelUpdate(peer);
- }
- }
- }
- }
- else{
- connection = factory.getConnection(peer);
- }
- return connection;
- }
+ public HandlerManager getHandlerManager() {
+ return handlerManager;
+ }
- public void closeConnection(HandlerStub stub) throws P2PXWikiException {
- cache.flushEntry(stub.getPeerName());
- stub.close();
- }
-
- public boolean addHandler(Handler handler) throws P2PXWikiException {
- return handlerManager.addHandler(handler);
- }
-
- public boolean removeHandler(Handler handler) throws P2PXWikiException {
- return handlerManager.removeHandler(handler);
- }
-
/**
* Returns the network name of the local host.
* @return The peerName.
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectionFactory.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectionFactory.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectionFactory.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -2,7 +2,8 @@
import com.xpn.p2pxwiki.P2PXWikiException;
-// TODO Q: No close connection?
public interface ConnectionFactory {
- HandlerStub getConnection(String peer) throws P2PXWikiException;
+ public Network getNetwork();
+ public HandlerStub getConnection(String peer) throws P2PXWikiException;
+ public void closeConnection(HandlerStub stub) throws P2PXWikiException;
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorApi.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorApi.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorApi.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -55,8 +55,16 @@
return false;
}
}
+
+ public String getCanonicalLocalName() {
+ return plugin.getCanonicalLocalName();
+ }
+
+ public String getCanonicalRemoteName(String peer) {
+ return plugin.getCanonicalRemoteName(peer);
+ }
- public Network getNetwork(){
- return plugin.getNetwork();
- }
+ public String getPeerName() {
+ return plugin.getPeerName();
+ }
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorPlugin.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorPlugin.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/ConnectorPlugin.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -53,13 +53,14 @@
public static final String PLUGIN_NAME = "p2pxwikiconnector";
public static final String NETWORK_TYPE = "p2pxwiki.connector.network";
public static final String DEFAULT_NETWORK_TYPE = JxtaNetwork.class.getName();
-
+
private static final Log log = LogFactory.getFactory().getInstance(ConnectorPlugin.class);
private Network network;
+ private XWiki xwiki;
protected static ConnectorPlugin instance;
- // TODO think about this ... make it more elegant
- // always called for ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName();
+ // TODO think about this ... try to make it more elegant
+ // usually called for ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName();
public static ConnectorPlugin getInstance() {
return instance;
}
@@ -93,13 +94,12 @@
public void init(XWikiContext context) {
log.debug("constructor");
super.init(context);
- XWiki xwiki = context.getWiki();
+ xwiki = context.getWiki();
log.debug("Configuring network type");
String networkType = xwiki.Param(NETWORK_TYPE, DEFAULT_NETWORK_TYPE);
try {
- network = (Network)P2PUtil.getInstance(networkType,
- new Object[] {xwiki}, new Class[] {XWiki.class});
+ network = (Network)P2PUtil.getInstance(networkType);
log.debug("Obtained network: " + network.getClass().getCanonicalName());
} catch(P2PXWikiException ex) {
log.error("Cannot load network", ex);
@@ -107,8 +107,7 @@
if (!networkType.equals(DEFAULT_NETWORK_TYPE)) {
log.debug("Retrying with default network type");
try {
- network = (Network)P2PUtil.getInstance(DEFAULT_NETWORK_TYPE,
- new Object[] {xwiki}, new Class[] {XWiki.class});
+ network = (Network)P2PUtil.getInstance(DEFAULT_NETWORK_TYPE);
log.debug("Obtained network: " + network.getClass().getCanonicalName());
} catch(P2PXWikiException ex2) {
log.error("Cannot load default network", ex2);
@@ -126,7 +125,7 @@
* @throws XWikiException If no connection could be established.
*/
public HandlerStub getConnection(String peer) throws XWikiException{
- return network.getConnection(peer);
+ return network.getConnectionFactory().getConnection(peer);
}
/**
@@ -137,7 +136,7 @@
* @throws XWikiException When the connection could not be closed.
*/
void closeConnection(HandlerStub stub) throws XWikiException{
- network.closeConnection(stub);
+ network.getConnectionFactory().closeConnection(stub);
}
/**
@@ -147,7 +146,7 @@
* @throws XWikiException TODO when? you said false otherwise
*/
public boolean addHandler(Handler handler) throws XWikiException {
- return network.addHandler(handler);
+ return network.getHandlerManager().addHandler(handler);
}
/**
@@ -157,9 +156,21 @@
* @throws XWikiException TODO when? you said false otherwise
*/
public boolean removeHandler(Handler handler) throws XWikiException {
- return network.removeHandler(handler);
+ return network.getHandlerManager().removeHandler(handler);
}
+
+ public String getCanonicalLocalName() {
+ return network.getCanonicalLocalName();
+ }
+
+ public String getCanonicalRemoteName(String peer) {
+ return network.getCanonicalRemoteName(peer);
+ }
+ public String getPeerName() {
+ return network.getPeerName();
+ }
+
/**
* Returns an API for using this plugin from scripts.
* @see com.xpn.xwiki.plugin.XWikiPluginInterface#getPluginApi(com.xpn.xwiki.plugin.XWikiPluginInterface, com.xpn.xwiki.XWikiContext) Overridden method.
@@ -172,11 +183,16 @@
return new ConnectorApi(context, this);
}
+ public XWiki getXWiki() {
+ return xwiki;
+ }
+
/**
- * Returns the configured {@link Network Network} helper object.
+ * Returns the configured {@link Network Network} helper object.
+ * Useful for testing. Package access.
* @return The network
*/
- public Network getNetwork() {
+ Network getNetwork() {
return network;
}
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Handler.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Handler.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Handler.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -1,5 +1,5 @@
package com.xpn.p2pxwiki.communication;
public interface Handler {
- String getName();
+ public String getName();
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerManager.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerManager.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerManager.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -9,7 +9,7 @@
* @return true on succcess
* @throws P2PXWikiException
*/
- boolean addHandler(Handler handler) throws P2PXWikiException;
+ public boolean addHandler(Handler handler) throws P2PXWikiException;
/**
*
@@ -17,5 +17,7 @@
* @return true on succcess
* @throws P2PXWikiException
*/
- boolean removeHandler(Handler handler) throws P2PXWikiException;
+ public boolean removeHandler(Handler handler) throws P2PXWikiException;
+
+ public Network getNetwork();
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerStub.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerStub.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/HandlerStub.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -4,7 +4,7 @@
import com.xpn.p2pxwiki.P2PXWikiException;
public interface HandlerStub {
- String getPeerName();
- Object execute(String function, Object[] params) throws P2PXWikiException;
- void close() throws P2PXWikiException;
+ public String getPeerName();
+ public Object execute(String function, Object[] params) throws P2PXWikiException;
+ public ConnectionFactory getConnectionFactory();
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Network.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Network.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/Network.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -1,7 +1,5 @@
package com.xpn.p2pxwiki.communication;
-import com.xpn.p2pxwiki.P2PXWikiException;
-
/**
*
*/
@@ -11,11 +9,6 @@
public String getPeerName();
public int getServerPort();
-
- // TODO Q: Replace these with 2 methods? getConnectionFactory + getHandlerManager
- // - in this case ConnectionFactory will call back for caching
- public HandlerStub getConnection(String peer) throws P2PXWikiException;
- public void closeConnection(HandlerStub stub) throws P2PXWikiException;
- public boolean addHandler(Handler handler) throws P2PXWikiException;
- public boolean removeHandler(Handler handler) throws P2PXWikiException;
+ public ConnectionFactory getConnectionFactory();
+ public HandlerManager getHandlerManager();
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaConnectionFactory.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaConnectionFactory.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaConnectionFactory.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -3,18 +3,16 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import com.xpn.p2pxwiki.P2PXWikiException;
-import com.xpn.p2pxwiki.communication.HandlerStub;
+import com.xpn.p2pxwiki.communication.AbstractConnectionFactory;
import com.xpn.p2pxwiki.communication.ConnectionFactory;
+import com.xpn.p2pxwiki.communication.HandlerStub;
-public class JxtaConnectionFactory
- implements ConnectionFactory {
+public class JxtaConnectionFactory extends AbstractConnectionFactory implements ConnectionFactory {
private static Log log = LogFactory.getFactory().getInstance(JxtaConnectionFactory.class);
- private JxtaNetwork network;
public JxtaConnectionFactory(JxtaNetwork network) {
+ super(network);
log.debug("constructor");
- this.network = network;
init();
}
@@ -23,11 +21,8 @@
// Nothing to be done here yet
}
- /**
- * @see com.xpn.p2pxwiki.communication.ConnectionFactory#getConnection(java.lang.String)
- */
- public HandlerStub getConnection(String peer) throws P2PXWikiException {
- log.debug("getConnection");
- return new JxtaHandlerStub(peer, network);
- }
+ public HandlerStub openConnection(String peer) {
+ log.debug("openConnection");
+ return new JxtaHandlerStub(peer, this);
+ }
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerManager.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerManager.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerManager.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -7,6 +7,7 @@
import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.communication.Handler;
import com.xpn.p2pxwiki.communication.HandlerManager;
+import com.xpn.p2pxwiki.communication.Network;
public class JxtaHandlerManager implements HandlerManager {
private static Log log = LogFactory.getFactory().getInstance(
@@ -31,6 +32,10 @@
log.error("Error initializing!", ex);
}
}
+
+ public Network getNetwork() {
+ return network;
+ }
/**
* @see com.xpn.p2pxwiki.communication.HandlerManager#addHandler(com.xpn.p2pxwiki.communication.Handler)
@@ -47,4 +52,8 @@
p2pwebserver.removeHandler(handler.getName());
return true;
}
+
+ public void shutdown() {
+ p2pwebserver.shutdown();
+ }
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerStub.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerStub.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaHandlerStub.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -9,17 +9,20 @@
import org.apache.xmlrpc.XmlRpcException;
import com.xpn.p2pxwiki.P2PXWikiException;
+import com.xpn.p2pxwiki.communication.ConnectionFactory;
import com.xpn.p2pxwiki.communication.HandlerStub;
public class JxtaHandlerStub implements HandlerStub {
protected static Log log = LogFactory.getFactory().getInstance(JxtaHandlerStub.class);
private String peer;
private P2PXmlRpcClientLite connection = null;
+ private JxtaConnectionFactory factory;
- public JxtaHandlerStub(String peer, JxtaNetwork network){
+ public JxtaHandlerStub(String peer, JxtaConnectionFactory factory){
try {
this.peer = peer;
- this.connection = new P2PXmlRpcClientLite(network.getCanonicalRemoteName(peer));
+ this.factory = factory;
+ this.connection = new P2PXmlRpcClientLite(factory.getNetwork().getCanonicalRemoteName(peer));
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
}
@@ -48,7 +51,7 @@
return this.peer;
}
- public void close(){
- // Nothing to do here
- }
+ public ConnectionFactory getConnectionFactory() {
+ return factory;
+ }
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaNetwork.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaNetwork.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/jxta/JxtaNetwork.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -7,15 +7,13 @@
import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.communication.AbstractNetwork;
import com.xpn.p2pxwiki.communication.Network;
-import com.xpn.xwiki.XWiki;
public class JxtaNetwork extends AbstractNetwork implements Network{
private static final Log log = LogFactory.getFactory().getInstance(JxtaNetwork.class);
private static final String networkName = "JXTA:P2PXWikiNetwork";
private static boolean inited = false;
- public JxtaNetwork(XWiki xwiki) throws P2PXWikiException {
- super(xwiki);
+ public JxtaNetwork() throws P2PXWikiException {
log.debug("constructor");
init();
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcConnectionFactory.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcConnectionFactory.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcConnectionFactory.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -3,18 +3,16 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import com.xpn.p2pxwiki.P2PXWikiException;
-import com.xpn.p2pxwiki.communication.HandlerStub;
+import com.xpn.p2pxwiki.communication.AbstractConnectionFactory;
import com.xpn.p2pxwiki.communication.ConnectionFactory;
+import com.xpn.p2pxwiki.communication.HandlerStub;
-public class RpcConnectionFactory
- implements ConnectionFactory {
+public class RpcConnectionFactory extends AbstractConnectionFactory implements ConnectionFactory {
private static Log log = LogFactory.getFactory().getInstance(RpcConnectionFactory.class);
- private RpcNetwork network;
public RpcConnectionFactory(RpcNetwork network) {
+ super(network);
log.debug("constructor");
- this.network = network;
init();
}
@@ -22,12 +20,9 @@
log.debug("init");
// Nothing to be done here
}
-
- /**
- * @see com.xpn.p2pxwiki.communication.ConnectionFactory#getConnection(java.lang.String)
- */
- public HandlerStub getConnection(String peer) throws P2PXWikiException {
+
+ public HandlerStub openConnection(String peer) {
log.debug("getConnection");
- return new RpcHandlerStub(peer, network);
+ return new RpcHandlerStub(peer, this);
}
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerManager.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerManager.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerManager.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -7,6 +7,7 @@
import com.xpn.p2pxwiki.P2PXWikiException;
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);
@@ -30,6 +31,10 @@
log.error("Error initializing!", ex);
}
}
+
+ public Network getNetwork() {
+ return network;
+ }
/**
* @see com.xpn.p2pxwiki.communication.HandlerManager#addHandler(com.xpn.p2pxwiki.communication.Handler)
@@ -46,4 +51,9 @@
webserver.removeHandler(handler.getName());
return true;
}
+
+ public void shutdown() {
+ // TODO This is not enough to kill this guy
+ webserver.shutdown();
+ }
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerStub.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerStub.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcHandlerStub.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -9,17 +9,20 @@
import org.apache.xmlrpc.XmlRpcException;
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 XmlRpcClientLite connection = null;
+ private RpcConnectionFactory factory;
- public RpcHandlerStub(String peer, RpcNetwork network){
+ public RpcHandlerStub(String peer, RpcConnectionFactory factory){
try {
this.peer = peer;
- this.connection = new XmlRpcClientLite(network.getCanonicalRemoteName(peer));
+ this.factory = factory;
+ this.connection = new XmlRpcClientLite(factory.getNetwork().getCanonicalRemoteName(peer));
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
}
@@ -48,7 +51,7 @@
return this.peer;
}
- public void close(){
- // Nothing to do here
- }
+ public ConnectionFactory getConnectionFactory() {
+ return factory;
+ }
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcNetwork.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcNetwork.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/communication/rpc/RpcNetwork.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -6,21 +6,20 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.communication.AbstractNetwork;
import com.xpn.p2pxwiki.communication.Network;
-import com.xpn.xwiki.XWiki;
public class RpcNetwork extends AbstractNetwork implements Network{
private static Log log = LogFactory.getFactory().getInstance(RpcNetwork.class);
private static boolean inited = false;
- public RpcNetwork(XWiki xwiki){
- super(xwiki);
+ public RpcNetwork() throws P2PXWikiException {
log.debug("constructor");
init();
}
- protected void init(){
+ protected void init() throws P2PXWikiException {
if(inited){
return;
}
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/examples/ReplicationClientExamples.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/examples/ReplicationClientExamples.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/examples/ReplicationClientExamples.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -29,7 +29,7 @@
Vector allXML = client.getAllPagesAsXML(token,wikiserver, "http://bikash.p2pxwiki.com");
log.error("got "+allXML.size()+" entries from the wiki at: "+ wikiserver );
- log.error("address of local jxta peer is : "+ ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName());
+ log.error("address of local jxta peer is : "+ ConnectorPlugin.getInstance().getCanonicalLocalName());
token = client.login("Admin","admin");
log.error("result of loggin in to local peer as Admin for replication is token:"+ token);
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/registry/RegistryClient.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/registry/RegistryClient.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/registry/RegistryClient.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -15,7 +15,7 @@
public RegistryClient(XWikiContext context){
super(context);
}
- private String P2PXWIKIREGISTRYADDRESS = ConnectorPlugin.getInstance().getNetwork().getCanonicalRemoteName("registry");
+ private String P2PXWIKIREGISTRYADDRESS = ConnectorPlugin.getInstance().getCanonicalRemoteName("registry");
private String HANDLERCLASS = "registry";
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/replication/ReplicationClient.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/replication/ReplicationClient.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/replication/ReplicationClient.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -28,7 +28,7 @@
}
public String login(String username, String password) {
- String peerserver = ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName();
+ String peerserver = ConnectorPlugin.getInstance().getCanonicalLocalName();
if (peerserver == null) {
log.error("error in getting local JXTA server address: ---ERRROR --- ") ;
return null;
@@ -37,7 +37,7 @@
}
public boolean logout(String token) {
- String peerserver = ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName();
+ String peerserver = ConnectorPlugin.getInstance().getCanonicalLocalName();
if (peerserver == null) {
log.error("error in getting local JXTA server address: ---ERRROR --- ") ;
return false;
@@ -118,7 +118,7 @@
/* api to replicate locally */
public boolean replicatePageFromXML(String token, String docsXML, String wikiapp) {
- String peerserver = ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName();
+ String peerserver = ConnectorPlugin.getInstance().getCanonicalLocalName();
if (peerserver == null) {
log.error("error in getting local JXTA server address: ---ERRROR --- ") ;
return false;
@@ -129,7 +129,7 @@
/* api to replicate locally */
public boolean replicateAllPagesFromXML(String token, Vector docsXML, String wikiapp) {
- String peerserver = ConnectorPlugin.getInstance().getNetwork().getCanonicalLocalName();
+ String peerserver = ConnectorPlugin.getInstance().getCanonicalLocalName();
if (peerserver == null) {
log.error("error in getting local JXTA server address: ---ERRROR --- ") ;
return false;
Modified: xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/services/file/FileP2PServer.java
===================================================================
--- xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/services/file/FileP2PServer.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/main/java/com/xpn/p2pxwiki/services/file/FileP2PServer.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -29,7 +29,7 @@
protected void init() throws P2PXWikiException {
log.debug("init");
- this.name = ConnectorPlugin.getInstance().getNetwork().getPeerName();
+ this.name = ConnectorPlugin.getInstance().getPeerName();
}
/**
Added: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/AllTests.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/AllTests.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/AllTests.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -0,0 +1,26 @@
+package com.xpn.p2pxwiki;
+
+import com.xpn.p2pxwiki.communication.ConnectorPluginTest;
+import com.xpn.p2pxwiki.communication.JxtaLocalTest;
+import com.xpn.p2pxwiki.communication.RpcLocalTest;
+import com.xpn.p2pxwiki.services.FileP2PServerTest;
+
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ *
+ */
+
+public class AllTests extends TestSuite {
+ public AllTests() {
+ addTest(new TestSuite(ConnectorPluginTest.class));
+ addTest(new TestSuite(JxtaLocalTest.class));
+ addTest(new TestSuite(RpcLocalTest.class));
+// addTest(new TestSuite(FileP2PServerTest.class));
+ }
+
+ public static void main(String[] args) {
+ TestRunner.run(new AllTests());
+ }
+}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/AbstractLocalTest.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/AbstractLocalTest.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/AbstractLocalTest.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -28,6 +28,7 @@
public abstract String getNetwork();
public abstract String getHandlerManager();
public abstract String getConnectionFactory();
+ public abstract void shutdown(HandlerManager handlerManager);
public void setUp() throws Exception {
localPeer = getLocalPeer();
@@ -53,6 +54,7 @@
public void tearDown() throws Exception {
plugin.closeConnection(stub);
plugin.removeHandler(handler1);
+ shutdown(plugin.getNetwork().getHandlerManager());
}
public void test() throws XWikiException {
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/ConnectorPluginTest.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/ConnectorPluginTest.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/ConnectorPluginTest.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -66,8 +66,10 @@
assertFalse(plugin.removeHandler(handler2));
}
- public void testGetNetwork() {
- MockNetwork network = (MockNetwork)plugin.getNetwork();
- assertEquals(MockNetwork.class, network.getClass());
- }
+// public void testGetNetwork() {
+// MockNetwork network = (MockNetwork)plugin.getNetwork();
+// assertEquals(MockNetwork.class, network.getClass());
+// }
+
+ // TODO add more tests
}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/JxtaLocalTest.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/JxtaLocalTest.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/JxtaLocalTest.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -26,4 +26,7 @@
return JxtaNetwork.class.getName();
}
+ public void shutdown(HandlerManager handlerManager) {
+ ((JxtaHandlerManager)handlerManager).shutdown();
+ }
}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/RpcLocalTest.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/RpcLocalTest.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/communication/RpcLocalTest.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -2,6 +2,7 @@
import junit.textui.TestRunner;
+import com.xpn.p2pxwiki.communication.jxta.JxtaHandlerManager;
import com.xpn.p2pxwiki.communication.rpc.RpcConnectionFactory;
import com.xpn.p2pxwiki.communication.rpc.RpcHandlerManager;
import com.xpn.p2pxwiki.communication.rpc.RpcNetwork;
@@ -31,4 +32,8 @@
public static void main(String[] args) {
TestRunner.run(RpcLocalTest.class);
}
+
+ public void shutdown(HandlerManager handlerManager) {
+ ((RpcHandlerManager)handlerManager).shutdown();
+ }
}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockConnectionFactory.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockConnectionFactory.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockConnectionFactory.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -3,18 +3,25 @@
import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.communication.ConnectionFactory;
import com.xpn.p2pxwiki.communication.HandlerStub;
+import com.xpn.p2pxwiki.communication.Network;
public class MockConnectionFactory implements ConnectionFactory {
- protected static MockConnectionFactory instance;
+ private Network network;
+
+ public MockConnectionFactory(Network network) {
+ this.network = network;
+ }
+
public HandlerStub getConnection(String peer) throws P2PXWikiException {
- return new MockHandlerStub(peer);
+ return new MockHandlerStub(peer, this);
}
+
+ public void closeConnection(HandlerStub stub) {
+ // does nothing
+ }
- public static MockConnectionFactory getInstance() {
- if (instance == null) {
- instance = new MockConnectionFactory();
- }
- return instance;
- }
+ public Network getNetwork() {
+ return network;
+ }
}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerManager.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerManager.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerManager.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -6,12 +6,16 @@
import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.communication.Handler;
import com.xpn.p2pxwiki.communication.HandlerManager;
+import com.xpn.p2pxwiki.communication.Network;
public class MockHandlerManager implements HandlerManager {
- protected static MockHandlerManager instance;
private List list = new LinkedList();
+ private Network network;
- @SuppressWarnings("unchecked")
+ public MockHandlerManager(Network network) {
+ this.network = network;
+ }
+
public boolean addHandler(Handler handler) throws P2PXWikiException {
return list.add(handler);
}
@@ -20,10 +24,7 @@
return list.remove(handler);
}
- public static MockHandlerManager getInstance() {
- if (instance == null) {
- instance = new MockHandlerManager();
- }
- return instance;
- }
+ public Network getNetwork() {
+ return network;
+ }
}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerStub.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerStub.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockHandlerStub.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -1,13 +1,16 @@
package com.xpn.p2pxwiki.mocks;
import com.xpn.p2pxwiki.P2PXWikiException;
+import com.xpn.p2pxwiki.communication.ConnectionFactory;
import com.xpn.p2pxwiki.communication.HandlerStub;
public class MockHandlerStub implements HandlerStub {
private String peerName;
+ private ConnectionFactory factory;
- public MockHandlerStub(String peerName) {
+ public MockHandlerStub(String peerName, ConnectionFactory factory) {
this.peerName = peerName;
+ this.factory = factory;
}
public void close() throws P2PXWikiException {
@@ -23,4 +26,7 @@
return peerName;
}
+ public ConnectionFactory getConnectionFactory() {
+ return factory;
+ }
}
Modified: xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockNetwork.java
===================================================================
--- xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockNetwork.java 2006-08-24 03:07:16 UTC (rev 1202)
+++ xwiki-clients/p2pxwiki/src/test/java/com/xpn/p2pxwiki/mocks/MockNetwork.java 2006-08-24 09:04:46 UTC (rev 1203)
@@ -1,12 +1,8 @@
package com.xpn.p2pxwiki.mocks;
-import com.xpn.p2pxwiki.P2PXWikiException;
import com.xpn.p2pxwiki.communication.ConnectionFactory;
-import com.xpn.p2pxwiki.communication.Handler;
import com.xpn.p2pxwiki.communication.HandlerManager;
-import com.xpn.p2pxwiki.communication.HandlerStub;
import com.xpn.p2pxwiki.communication.Network;
-import com.xpn.xwiki.XWiki;
public class MockNetwork implements Network {
private String localName;
@@ -15,15 +11,14 @@
private int serverPort;
private String peerName;
- public MockNetwork(XWiki wiki) {
- this.factory = new MockConnectionFactory();
- this.manager = new MockHandlerManager();
+ public MockNetwork() {
+ this.factory = new MockConnectionFactory(this);
+ this.manager = new MockHandlerManager(this);
this.serverPort = 0;
this.peerName = "unnamed";
this.localName = "";
}
-
public void setLocalName(String localName) {
this.localName = localName;
}
@@ -36,18 +31,6 @@
return peer;
}
- public boolean addHandler(Handler handler) throws P2PXWikiException {
- return manager.addHandler(handler);
- }
-
- public void closeConnection(HandlerStub stub) throws P2PXWikiException {
- // TODO factory.closeConnection();
- }
-
- public HandlerStub getConnection(String peer) throws P2PXWikiException {
- return factory.getConnection(peer);
- }
-
public String getPeerName() {
return peerName;
}
@@ -56,31 +39,6 @@
return serverPort;
}
- public boolean removeHandler(Handler handler) throws P2PXWikiException {
- return manager.removeHandler(handler);
- }
-
-
- public ConnectionFactory getFactory() {
- return factory;
- }
-
-
- public void setFactory(ConnectionFactory factory) {
- this.factory = factory;
- }
-
-
- public HandlerManager getManager() {
- return manager;
- }
-
-
- public void setManager(HandlerManager manager) {
- this.manager = manager;
- }
-
-
public void setServerPort(int serverPort) {
this.serverPort = serverPort;
}
@@ -94,4 +52,23 @@
public String getLocalName() {
return localName;
}
+
+
+ public ConnectionFactory getConnectionFactory() {
+ return factory;
+ }
+
+
+ public HandlerManager getHandlerManager() {
+ return manager;
+ }
+
+// TODO this does not work like this ... can only get class and instantiate via reflection
+// public void setHandlerManager(HandlerManager manager) {
+// this.manager = manager;
+// }
+//
+// public void setConnectionFactory(ConnectionFactory factory) {
+// this.factory = factory;
+// }
}
More information about the Xwiki-notifications
mailing list