You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ha...@apache.org on 2002/01/03 11:49:38 UTC
cvs commit: jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test DirectTest.java PipeTest.java RmiServerTest.java SocketServerTest.java TestClient.java
hammant 02/01/03 02:49:38
Modified: armi/src/java/org/apache/commons/armi/client
ArmiConnectionListener.java
armi/src/java/org/apache/commons/armi/client/impl
BaseServedObject.java
DefaultArmiConnectionListener.java
ObjectStreamInvocationHandler.java
armi/src/java/org/apache/commons/armi/client/impl/direct
DirectInvocationHandler.java
armi/src/java/org/apache/commons/armi/client/impl/rmi
RmiInvocationHandler.java
armi/src/java/org/apache/commons/armi/client/impl/socket
PlainSocketInvocationHandler.java
armi/src/java/org/apache/commons/armi/common ArmiReply.java
ClassReply.java ExceptionReply.java
MethodReply.java NotPublishedReply.java
RequestFailedReply.java SuspendedReply.java
TryLaterReply.java
armi/src/java/org/apache/commons/armi/server ArmiServer.java
armi/src/java/org/apache/commons/armi/server/impl
AbstractServer.java DefaultInvocationHandler.java
ObjectStreamServerConnection.java
armi/src/java/org/apache/commons/armi/server/impl/direct
DirectServer.java
armi/src/java/org/apache/commons/armi/server/impl/piped
PipedServer.java
armi/src/java/org/apache/commons/armi/server/impl/rmi
RmiServer.java
armi/src/java/org/apache/commons/armi/server/impl/socket
PlainSocketServer.java
armi/src/java/org/apache/commons/armi/test DirectTest.java
PipeTest.java RmiServerTest.java
SocketServerTest.java TestClient.java
Added: armi/src/java/org/apache/commons/armi/common
EndConnectionReply.java
armi/src/java/org/apache/commons/armi/server
ArmiServerConnection.java
armi/src/java/org/apache/commons/armi/server/impl/piped
PipedObjectStreamServerConnection.java
armi/src/java/org/apache/commons/armi/server/impl/socket
SocketObjectStreamServerConnection.java
Removed: armi/src/java/org/apache/commons/armi/common
ProblemReply.java
Log:
start() and stop() added. Performance improved (via less instanceof).
Revision Changes Path
1.2 +17 -7 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/ArmiConnectionListener.java
Index: ArmiConnectionListener.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/ArmiConnectionListener.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ArmiConnectionListener.java 1 Jan 2002 23:12:46 -0000 1.1
+++ ArmiConnectionListener.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/ArmiConnectionListener.java,v 1.1 2002/01/01 23:12:46 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2002/01/01 23:12:46 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/ArmiConnectionListener.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -72,7 +72,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.1 $
+ * @version * $Revision: 1.2 $
*/
public interface ArmiConnectionListener {
@@ -83,24 +83,34 @@
* @return
*
*/
- void armiMethodCalled(String methodSignature, long duration);
+ void methodCalled(String methodSignature, long duration);
+
+
+ /**
+ * Method methodLogging tests if the implementing class intends to do method logging.
+ *
+ *
+ * @return
+ *
+ */
+ boolean methodLogging();
/**
- * Method armiServiceSuspended
+ * Method serviceSuspended
*
*
* @return
*
*/
- void armiServiceSuspended(ArmiRequest armiRequest, int attempt, int suggestedWaitMillis);
+ void serviceSuspended(ArmiRequest armiRequest, int attempt, int suggestedWaitMillis);
/**
- * Method armiServiceAbend
+ * Method serviceAbend
*
*
* @return
*
*/
- void armiServiceAbend(int attempt);
+ void serviceAbend(int attempt);
}
1.2 +11 -13 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/BaseServedObject.java
Index: BaseServedObject.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/BaseServedObject.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BaseServedObject.java 28 Dec 2001 18:08:37 -0000 1.1
+++ BaseServedObject.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/BaseServedObject.java,v 1.1 2001/12/28 18:08:37 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:37 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/BaseServedObject.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -77,7 +77,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class BaseServedObject {
@@ -145,18 +145,17 @@
synchronized (syncObject) {
ArmiReply reply = mInvocationHandler.handleInvocation(request);
- if (reply instanceof MethodReply) {
+ if (reply.getReplyCode() == ArmiReply.METHODREPLY) {
MethodReply or = (MethodReply) reply;
-
return or.getReplyObject();
- } else if (reply instanceof ExceptionReply) {
+ } else if (reply.getReplyCode() == ArmiReply.EXCEPTIONREPLY) {
ExceptionReply er = (ExceptionReply) reply;
-
throw er.getReplyException();
+ } else {
+ throw new ArmiInvocationException("Internal Error : Unknown reply type :"
+ + reply.getClass().getName());
}
}
-
- return null;
}
/**
@@ -172,15 +171,14 @@
public void armiProcessVoidRequest(String methodSignature, Object[] args) throws Throwable {
MethodRequest request = new MethodRequest(mPublishedObjectName, methodSignature, args);
-
synchronized (syncObject) {
ArmiReply reply = mInvocationHandler.handleInvocation(request);
- if (reply instanceof MethodReply) {
+ if (reply.getReplyCode() == ArmiReply.METHODREPLY) {
MethodReply or = (MethodReply) reply;
return;
- } else if (reply instanceof ExceptionReply) {
+ } else if (reply.getReplyCode() == ArmiReply.EXCEPTIONREPLY) {
ExceptionReply er = (ExceptionReply) reply;
throw er.getReplyException();
1.2 +18 -7 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/DefaultArmiConnectionListener.java
Index: DefaultArmiConnectionListener.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/DefaultArmiConnectionListener.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultArmiConnectionListener.java 1 Jan 2002 23:12:47 -0000 1.1
+++ DefaultArmiConnectionListener.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/DefaultArmiConnectionListener.java,v 1.1 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/DefaultArmiConnectionListener.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -74,7 +74,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.1 $
+ * @version * $Revision: 1.2 $
*/
public class DefaultArmiConnectionListener implements ArmiConnectionListener {
@@ -85,18 +85,29 @@
* @return
*
*/
- public void armiMethodCalled(final String methodSignature, final long duration) {
+ public void methodCalled(final String methodSignature, final long duration) {
// do mothing in default impl, could do logging.
}
/**
- * Method armiServiceSuspended
+ * Method methodLogging tests if the implementing class intends to do method logging.
*
*
* @return
*
*/
- public void armiServiceSuspended(final ArmiRequest armiRequest, final int attempt, final int suggestedWaitMillis) {
+ public boolean methodLogging() {
+ return false;
+ }
+
+ /**
+ * Method serviceSuspended
+ *
+ *
+ * @return
+ *
+ */
+ public void serviceSuspended(final ArmiRequest armiRequest, final int attempt, final int suggestedWaitMillis) {
// Lets say that ten retries is too many.
if (attempt == 10) {
throw new ArmiInvocationException("Too many retries on suspended service");
@@ -111,13 +122,13 @@
}
/**
- * Method armiServiceAbend
+ * Method serviceAbend
*
*
* @return
*
*/
- public void armiServiceAbend(int attempt) {
+ public void serviceAbend(int attempt) {
// Lets say that ten retries is too many.
if (attempt == 3) {
throw new ArmiInvocationException("Too many retries on abended service");
1.6 +33 -13 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/ObjectStreamInvocationHandler.java
Index: ObjectStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/ObjectStreamInvocationHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ObjectStreamInvocationHandler.java 1 Jan 2002 23:12:47 -0000 1.5
+++ ObjectStreamInvocationHandler.java 3 Jan 2002 10:49:37 -0000 1.6
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/ObjectStreamInvocationHandler.java,v 1.5 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.5 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/ObjectStreamInvocationHandler.java,v 1.6 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.6 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -73,6 +73,7 @@
import org.apache.commons.armi.common.NotPublishedException;
import org.apache.commons.armi.common.PublishedNameRequest;
import org.apache.commons.armi.common.ProblemReply;
+import org.apache.commons.armi.client.ArmiConnectionListener;
import java.io.IOException;
import java.io.ObjectOutputStream;
@@ -85,12 +86,25 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public abstract class ObjectStreamInvocationHandler extends ArmiClientInvocationHandler {
- ObjectInputStream mOIS;
- ObjectOutputStream mOOS;
+ private ObjectInputStream mOIS;
+ private ObjectOutputStream mOOS;
+ private boolean mMethodLogging = false;
+
+ /**
+ * Method setArmiConnectionListener
+ *
+ *
+ * @param armiConnectionListener
+ *
+ */
+ public void setArmiConnectionListener(ArmiConnectionListener armiConnectionListener) {
+ super.setArmiConnectionListener(armiConnectionListener);
+ mMethodLogging = armiConnectionListener.methodLogging();
+ }
/**
* Method setObjectInputStream
@@ -132,19 +146,23 @@
boolean again = true;
ArmiReply reply = null;
int tries = 0;
- long start = System.currentTimeMillis();
+ long start = 0;
+ if (mMethodLogging) {
+ start = System.currentTimeMillis();
+ }
while (again) {
tries++;
again = false;
try {
+ long t1 = System.currentTimeMillis();
mOOS.writeObject(request);
mOOS.flush();
reply = (ArmiReply) mOIS.readObject();
- if (!(reply instanceof ProblemReply)) {
- // speed?
+ long t2 = System.currentTimeMillis();
+ if (reply.getReplyCode() >= 100) {
if (reply instanceof TryLaterReply) {
int millis = ((TryLaterReply) reply).getSuggestedDelayMillis();
- mArmiConnectionListener.armiServiceSuspended(request,tries,millis);
+ mArmiConnectionListener.serviceSuspended(request,tries,millis);
again = true;
} else if (reply instanceof NotPublishedReply) {
throw new NotPublishedException(((PublishedNameRequest) request).getPublishedObjectName());
@@ -154,7 +172,7 @@
if (ioe instanceof SocketException) {
int retryConnectTries = 0;
while (!tryReconnect()) {
- mArmiConnectionListener.armiServiceAbend(retryConnectTries);
+ mArmiConnectionListener.serviceAbend(retryConnectTries);
retryConnectTries++;
}
} else {
@@ -163,8 +181,10 @@
}
}
}
- if (request instanceof MethodRequest) {
- mArmiConnectionListener.armiMethodCalled(((MethodRequest) request).getMethodSignature(), System.currentTimeMillis() - start);
+ if (mMethodLogging) {
+ if (request instanceof MethodRequest) {
+ mArmiConnectionListener.methodCalled(((MethodRequest) request).getMethodSignature(), System.currentTimeMillis() - start);
+ }
}
return reply;
}
1.6 +30 -11 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/direct/DirectInvocationHandler.java
Index: DirectInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/direct/DirectInvocationHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DirectInvocationHandler.java 1 Jan 2002 23:12:47 -0000 1.5
+++ DirectInvocationHandler.java 3 Jan 2002 10:49:37 -0000 1.6
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/direct/DirectInvocationHandler.java,v 1.5 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.5 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/direct/DirectInvocationHandler.java,v 1.6 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.6 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -75,6 +75,7 @@
import org.apache.commons.armi.common.ProblemReply;
import org.apache.commons.armi.common.MethodRequest;
import org.apache.commons.armi.client.impl.ArmiClientInvocationHandler;
+import org.apache.commons.armi.client.ArmiConnectionListener;
/**
@@ -82,11 +83,12 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public final class DirectInvocationHandler extends ArmiClientInvocationHandler {
- ArmiInvocationHandler mArmiInvocationHandler;
+ private ArmiInvocationHandler mArmiInvocationHandler;
+ private boolean mMethodLogging = false;
/**
* Constructor DirectInvocationHandler
@@ -103,6 +105,18 @@
}
/**
+ * Method setArmiConnectionListener
+ *
+ *
+ * @param armiConnectionListener
+ *
+ */
+ public void setArmiConnectionListener(ArmiConnectionListener armiConnectionListener) {
+ super.setArmiConnectionListener(armiConnectionListener);
+ mMethodLogging = armiConnectionListener.methodLogging();
+ }
+
+ /**
* Method handleInvocation
*
*
@@ -115,24 +129,29 @@
boolean again = true;
ArmiReply reply = null;
int tries = 0;
- long start = System.currentTimeMillis();
+ long start = 0;
+ if (mMethodLogging) {
+ start = System.currentTimeMillis();
+ }
while (again) {
tries++;
again = false;
reply = mArmiInvocationHandler.handleInvocation(request);
- if (!(reply instanceof ProblemReply)) {
- // speed?
+ //if ((reply instanceof ProblemReply)) { // slower by 11%
+ if (reply.getReplyCode() >= 100) {
if (reply instanceof TryLaterReply) {
int millis = ((TryLaterReply) reply).getSuggestedDelayMillis();
- mArmiConnectionListener.armiServiceSuspended(request,tries,millis);
+ mArmiConnectionListener.serviceSuspended(request,tries,millis);
again = true;
} else if (reply instanceof NotPublishedReply) {
throw new NotPublishedException(((PublishedNameRequest) request).getPublishedObjectName());
}
}
}
- if (request instanceof MethodRequest) {
- mArmiConnectionListener.armiMethodCalled(((MethodRequest) request).getMethodSignature(), System.currentTimeMillis() - start);
+ if (mMethodLogging) {
+ if (request instanceof MethodRequest) {
+ mArmiConnectionListener.methodCalled(((MethodRequest) request).getMethodSignature(), System.currentTimeMillis() - start);
+ }
}
return reply;
}
1.6 +34 -21 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/rmi/RmiInvocationHandler.java
Index: RmiInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/rmi/RmiInvocationHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RmiInvocationHandler.java 1 Jan 2002 23:12:47 -0000 1.5
+++ RmiInvocationHandler.java 3 Jan 2002 10:49:37 -0000 1.6
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/rmi/RmiInvocationHandler.java,v 1.5 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.5 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/rmi/RmiInvocationHandler.java,v 1.6 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.6 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -61,28 +61,24 @@
*/
package org.apache.commons.armi.client.impl.rmi;
-
-
-import org.apache.commons.armi.common.ArmiInvocationHandler;
+import org.apache.commons.armi.client.impl.ArmiClientInvocationHandler;
+import org.apache.commons.armi.client.ArmiConnectionListener;
import org.apache.commons.armi.common.RmiArmiInvocationHandler;
+import org.apache.commons.armi.common.ArmiConnectionException;
import org.apache.commons.armi.common.ArmiReply;
import org.apache.commons.armi.common.ArmiRequest;
-import org.apache.commons.armi.common.ArmiInvocationException;
-import org.apache.commons.armi.common.ArmiConnectionException;
import org.apache.commons.armi.common.TryLaterReply;
import org.apache.commons.armi.common.NotPublishedReply;
import org.apache.commons.armi.common.NotPublishedException;
import org.apache.commons.armi.common.PublishedNameRequest;
+import org.apache.commons.armi.common.ArmiInvocationException;
import org.apache.commons.armi.common.MethodRequest;
-import org.apache.commons.armi.common.ProblemReply;
-import org.apache.commons.armi.client.impl.ArmiClientInvocationHandler;
import java.rmi.Naming;
-import java.rmi.RemoteException;
import java.rmi.NotBoundException;
-import java.rmi.ConnectException;
+import java.rmi.RemoteException;
import java.rmi.ConnectIOException;
-
+import java.rmi.ConnectException;
import java.net.MalformedURLException;
@@ -91,12 +87,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public final class RmiInvocationHandler extends ArmiClientInvocationHandler {
private RmiArmiInvocationHandler mRmiArmiInvocationHandler;
private String mURL;
+ private boolean mMethodLogging = false;
/**
* Constructor RmiInvocationHandler
@@ -127,6 +124,18 @@
}
/**
+ * Method setArmiConnectionListener
+ *
+ *
+ * @param armiConnectionListener
+ *
+ */
+ public void setArmiConnectionListener(ArmiConnectionListener armiConnectionListener) {
+ super.setArmiConnectionListener(armiConnectionListener);
+ mMethodLogging = armiConnectionListener.methodLogging();
+ }
+
+ /**
* Method tryReconnect
*
* @return
@@ -155,18 +164,20 @@
boolean again = true;
ArmiReply reply = null;
int tries = 0;
- long start = System.currentTimeMillis();
+ long start = 0;
+ if (mMethodLogging) {
+ start = System.currentTimeMillis();
+ }
while (again) {
tries++;
again = false;
try {
reply = mRmiArmiInvocationHandler.handleInvocation(request);
- if (!(reply instanceof ProblemReply)) {
- // speed?
+ if (reply.getReplyCode() >= 100) {
if (reply instanceof TryLaterReply) {
int millis = ((TryLaterReply) reply).getSuggestedDelayMillis();
- mArmiConnectionListener.armiServiceSuspended(request,tries,millis);
+ mArmiConnectionListener.serviceSuspended(request,tries,millis);
again = true;
} else if (reply instanceof NotPublishedReply) {
throw new NotPublishedException(((PublishedNameRequest) request).getPublishedObjectName());
@@ -177,7 +188,7 @@
int retryConnectTries = 0;
mRmiArmiInvocationHandler = null;
while (!tryReconnect()) {
- mArmiConnectionListener.armiServiceAbend(retryConnectTries);
+ mArmiConnectionListener.serviceAbend(retryConnectTries);
retryConnectTries++;
}
} else {
@@ -185,8 +196,10 @@
}
}
}
- if (request instanceof MethodRequest) {
- mArmiConnectionListener.armiMethodCalled(((MethodRequest) request).getMethodSignature(), System.currentTimeMillis() - start);
+ if (mMethodLogging) {
+ if (request instanceof MethodRequest) {
+ mArmiConnectionListener.methodCalled(((MethodRequest) request).getMethodSignature(), System.currentTimeMillis() - start);
+ }
}
return reply;
}
1.3 +5 -4 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/socket/PlainSocketInvocationHandler.java
Index: PlainSocketInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/socket/PlainSocketInvocationHandler.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PlainSocketInvocationHandler.java 1 Jan 2002 23:12:47 -0000 1.2
+++ PlainSocketInvocationHandler.java 3 Jan 2002 10:49:37 -0000 1.3
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/socket/PlainSocketInvocationHandler.java,v 1.2 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.2 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/client/impl/socket/PlainSocketInvocationHandler.java,v 1.3 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -75,7 +75,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public final class PlainSocketInvocationHandler extends ObjectStreamInvocationHandler {
@@ -115,6 +115,7 @@
* @return connected or not.
*/
protected boolean tryReconnect() {
+ System.out.println("Tryin....");
try {
Socket socket = new Socket(mHost, mPort);
ObjectOutputStream oOS = new ObjectOutputStream(socket.getOutputStream());
1.2 +26 -4 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ArmiReply.java
Index: ArmiReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ArmiReply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ArmiReply.java 28 Dec 2001 18:08:38 -0000 1.1
+++ ArmiReply.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ArmiReply.java,v 1.1 2001/12/28 18:08:38 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:38 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ArmiReply.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -71,14 +71,36 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class ArmiReply implements Serializable {
+ public static final int CLASSREPLY = 1;
+ public static final int METHODREPLY = 2;
+ public static final int EXCEPTIONREPLY = 3;
+
+ public static final int PROBLEMREPLY = 100;
+ public static final int NOTPUBLISHEDREPLY = 102;
+ public static final int REQUESTFAILEDREPLY = 103;
+ public static final int SUSPENDEDREPLY = 104;
+ public static final int ENDCONNECTIONREPLY = 105;
+
+
+
/**
* Constructor ArmiReply
*
*
*/
ArmiReply() {}
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public abstract int getReplyCode();
+
}
1.2 +13 -2 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ClassReply.java
Index: ClassReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ClassReply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ClassReply.java 30 Dec 2001 00:42:10 -0000 1.1
+++ ClassReply.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ClassReply.java,v 1.1 2001/12/30 00:42:10 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/30 00:42:10 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ClassReply.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -68,7 +68,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class ClassReply extends ArmiReply {
@@ -94,5 +94,16 @@
*/
public byte[] getClassBytes() {
return mClassBytes;
+ }
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public int getReplyCode() {
+ return CLASSREPLY;
}
}
1.2 +15 -4 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ExceptionReply.java
Index: ExceptionReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ExceptionReply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ExceptionReply.java 28 Dec 2001 18:08:38 -0000 1.1
+++ ExceptionReply.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ExceptionReply.java,v 1.1 2001/12/28 18:08:38 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:38 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/ExceptionReply.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -68,7 +68,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class ExceptionReply extends ArmiReply {
@@ -94,5 +94,16 @@
*/
public Throwable getReplyException() {
return mReplyExcpt;
+ }
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public int getReplyCode() {
+ return EXCEPTIONREPLY;
}
}
1.2 +15 -4 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/MethodReply.java
Index: MethodReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/MethodReply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MethodReply.java 28 Dec 2001 18:08:38 -0000 1.1
+++ MethodReply.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/MethodReply.java,v 1.1 2001/12/28 18:08:38 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:38 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/MethodReply.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -68,7 +68,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class MethodReply extends ArmiReply {
@@ -94,5 +94,16 @@
*/
public Object getReplyObject() {
return mReplyObj;
+ }
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public int getReplyCode() {
+ return METHODREPLY;
}
}
1.3 +16 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/NotPublishedReply.java
Index: NotPublishedReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/NotPublishedReply.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NotPublishedReply.java 1 Jan 2002 23:12:47 -0000 1.2
+++ NotPublishedReply.java 3 Jan 2002 10:49:37 -0000 1.3
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/NotPublishedReply.java,v 1.2 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.2 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/NotPublishedReply.java,v 1.3 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -66,9 +66,9 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
-public class NotPublishedReply extends ProblemReply {
+public class NotPublishedReply extends ArmiReply {
/**
@@ -76,6 +76,17 @@
*
*/
public NotPublishedReply() {
+ }
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public int getReplyCode() {
+ return NOTPUBLISHEDREPLY;
}
}
1.3 +16 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/RequestFailedReply.java
Index: RequestFailedReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/RequestFailedReply.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RequestFailedReply.java 1 Jan 2002 23:12:47 -0000 1.2
+++ RequestFailedReply.java 3 Jan 2002 10:49:37 -0000 1.3
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/RequestFailedReply.java,v 1.2 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.2 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/RequestFailedReply.java,v 1.3 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -68,9 +68,9 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
-public class RequestFailedReply extends ProblemReply {
+public class RequestFailedReply extends ArmiReply {
private final String mFailureReason;
@@ -94,5 +94,16 @@
*/
public String getFailureReason() {
return mFailureReason;
+ }
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public int getReplyCode() {
+ return REQUESTFAILEDREPLY;
}
}
1.2 +13 -2 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/SuspendedReply.java
Index: SuspendedReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/SuspendedReply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SuspendedReply.java 1 Jan 2002 17:53:06 -0000 1.1
+++ SuspendedReply.java 3 Jan 2002 10:49:37 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/SuspendedReply.java,v 1.1 2002/01/01 17:53:06 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2002/01/01 17:53:06 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/SuspendedReply.java,v 1.2 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -67,8 +67,19 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class SuspendedReply extends TryLaterReply {
+
+ /**
+ * Method getReplyCode. This is quicker than instanceof for type checking.
+ *
+ *
+ * @return
+ *
+ */
+ public int getReplyCode() {
+ return SUSPENDEDREPLY;
+ }
}
1.4 +5 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/TryLaterReply.java
Index: TryLaterReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/TryLaterReply.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TryLaterReply.java 1 Jan 2002 23:12:47 -0000 1.3
+++ TryLaterReply.java 3 Jan 2002 10:49:37 -0000 1.4
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/TryLaterReply.java,v 1.3 2002/01/01 23:12:47 hammant Exp $
- * $Revision: 1.3 $
- * $Date: 2002/01/01 23:12:47 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/TryLaterReply.java,v 1.4 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.4 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -68,9 +68,9 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
-public class TryLaterReply extends ProblemReply {
+public abstract class TryLaterReply extends ArmiReply {
private final int mSuggestedDelayMillis;
1.1 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/EndConnectionReply.java
Index: EndConnectionReply.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/common/EndConnectionReply.java,v 1.1 2002/01/03 10:49:37 hammant Exp $
* $Revision: 1.1 $
* $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.armi.common;
/**
* Class EndConnectionReply
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class EndConnectionReply extends ArmiReply {
/**
* Constructor EndConnectionReply
*
*/
public EndConnectionReply() {
}
/**
* Method getReplyCode. This is quicker than instanceof for type checking.
*
*
* @return
*
*/
public int getReplyCode() {
return ENDCONNECTIONREPLY;
}
}
1.4 +19 -4 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/ArmiServer.java
Index: ArmiServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/ArmiServer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ArmiServer.java 2 Jan 2002 12:11:56 -0000 1.3
+++ ArmiServer.java 3 Jan 2002 10:49:37 -0000 1.4
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/ArmiServer.java,v 1.3 2002/01/02 12:11:56 hammant Exp $
- * $Revision: 1.3 $
- * $Date: 2002/01/02 12:11:56 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/ArmiServer.java,v 1.4 2002/01/03 10:49:37 hammant Exp $
+ * $Revision: 1.4 $
+ * $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
@@ -72,7 +72,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.3 $
+ * @version * $Revision: 1.4 $
*/
public interface ArmiServer {
@@ -142,5 +142,20 @@
*
*/
void resume();
+
+ /**
+ * Method start
+ *
+ */
+ void start() throws ArmiServerException ;
+
+ /**
+ * Method stop
+ *
+ */
+ void stop();
+
+
+
}
1.1 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/ArmiServerConnection.java
Index: ArmiServerConnection.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/ArmiServerConnection.java,v 1.1 2002/01/03 10:49:37 hammant Exp $
* $Revision: 1.1 $
* $Date: 2002/01/03 10:49:37 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.armi.server;
public interface ArmiServerConnection {
void endConnection();
}
1.7 +41 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/AbstractServer.java
Index: AbstractServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/AbstractServer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractServer.java 2 Jan 2002 12:11:56 -0000 1.6
+++ AbstractServer.java 3 Jan 2002 10:49:38 -0000 1.7
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/AbstractServer.java,v 1.6 2002/01/02 12:11:56 hammant Exp $
- * $Revision: 1.6 $
- * $Date: 2002/01/02 12:11:56 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/AbstractServer.java,v 1.7 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.7 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -65,6 +65,7 @@
import org.apache.commons.armi.server.ArmiServer;
import org.apache.commons.armi.server.ArmiPublicationException;
+import org.apache.commons.armi.server.ArmiServerConnection;
import org.apache.commons.armi.common.ArmiInvocationHandler;
import org.apache.commons.armi.common.ArmiRequest;
import org.apache.commons.armi.common.ArmiReply;
@@ -83,6 +84,7 @@
import java.util.HashMap;
import java.util.Vector;
+import java.util.Iterator;
/**
@@ -90,12 +92,20 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
-public class AbstractServer extends AbstractMethodHandler implements ArmiServer {
+public abstract class AbstractServer extends AbstractMethodHandler implements ArmiServer {
private HashMap mPublishedObjects = new HashMap();
private boolean mSuspend = false;
+ private Vector mConnections = new Vector();
+
+ protected static final int SHUTTINGDOWN = 11;
+ protected static final int STARTED = 22;
+ protected static final int STOPPED = 33;
+ protected static final int UNSTARTED = 44;
+
+ protected int mState = UNSTARTED;
/**
* Method publish
@@ -252,4 +262,30 @@
public void resume() {
mSuspend = false;
}
+
+ /**
+ * Method connectionStart
+ *
+ */
+ protected void connectionStart(ArmiServerConnection armiConnection) {
+ mConnections.add(armiConnection);
+ }
+
+ /**
+ * Method connectionCompleted
+ *
+ */
+ protected void connectionCompleted(ArmiServerConnection armiConnection) {
+ mConnections.remove(armiConnection);
+ }
+
+ protected void killAllConnections() {
+ Iterator it = mConnections.iterator();
+ while (it.hasNext()) {
+ ArmiServerConnection asc = (ArmiServerConnection) it.next();
+ asc.endConnection();
+ }
+ }
+
+
}
1.3 +4 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/DefaultInvocationHandler.java
Index: DefaultInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/DefaultInvocationHandler.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultInvocationHandler.java 2 Jan 2002 12:11:56 -0000 1.2
+++ DefaultInvocationHandler.java 3 Jan 2002 10:49:38 -0000 1.3
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/DefaultInvocationHandler.java,v 1.2 2002/01/02 12:11:56 hammant Exp $
- * $Revision: 1.2 $
- * $Date: 2002/01/02 12:11:56 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/DefaultInvocationHandler.java,v 1.3 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -84,7 +84,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class DefaultInvocationHandler implements ArmiInvocationHandler {
@@ -141,7 +141,6 @@
*
*/
public ArmiReply handleInvocation(ArmiRequest request) {
-
MethodRequest mr = (MethodRequest) request;
String methodSignature = mr.getMethodSignature();
1.2 +36 -7 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/ObjectStreamServerConnection.java
Index: ObjectStreamServerConnection.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/ObjectStreamServerConnection.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ObjectStreamServerConnection.java 28 Dec 2001 18:08:38 -0000 1.1
+++ ObjectStreamServerConnection.java 3 Jan 2002 10:49:38 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/ObjectStreamServerConnection.java,v 1.1 2001/12/28 18:08:38 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:38 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/ObjectStreamServerConnection.java,v 1.2 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -65,6 +65,8 @@
import org.apache.commons.armi.common.ArmiRequest;
import org.apache.commons.armi.common.ArmiReply;
+import org.apache.commons.armi.common.EndConnectionReply;
+import org.apache.commons.armi.server.ArmiServerConnection;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -81,13 +83,14 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class ObjectStreamServerConnection implements Runnable {
+public abstract class ObjectStreamServerConnection implements Runnable, ArmiServerConnection {
private InputStream mInputStream;
private OutputStream mOutputStream;
private AbstractServer mAbstractServer;
+ private boolean mEndConnection = false;
/**
* Constructor ObjectStreamServerConnection
@@ -113,6 +116,8 @@
*/
public void run() {
+ mAbstractServer.connectionStart(this);
+
try {
ObjectInputStream oIS = new ObjectInputStream(mInputStream);
ObjectOutputStream oOS = new ObjectOutputStream(mOutputStream);
@@ -122,11 +127,16 @@
try {
ArmiRequest request = (ArmiRequest) oIS.readObject();
ArmiReply reply = mAbstractServer.processRequest(request);
-
oOS.writeObject(reply);
oOS.flush();
- } catch (IOException ioe) {
+ if (mEndConnection) {
+ oOS.writeObject(new EndConnectionReply());
+ oOS.flush();
+ more = false;
+ }
+
+ } catch (IOException ioe) {
// pipe closed?
more = false;
}
@@ -136,5 +146,24 @@
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
+
+ mAbstractServer.connectionCompleted(this);
+ }
+
+ /**
+ * Method endConnection
+ *
+ *
+ */
+ public void endConnection() {
+ mEndConnection = true;
}
+
+ /**
+ * Method killConnection
+ *
+ *
+ */
+ protected abstract void killConnection();
+
}
1.2 +47 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/direct/DirectServer.java
Index: DirectServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/direct/DirectServer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DirectServer.java 28 Dec 2001 18:08:38 -0000 1.1
+++ DirectServer.java 3 Jan 2002 10:49:38 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/direct/DirectServer.java,v 1.1 2001/12/28 18:08:38 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:38 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/direct/DirectServer.java,v 1.2 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -64,6 +64,10 @@
import org.apache.commons.armi.server.impl.AbstractServer;
+import org.apache.commons.armi.server.ArmiServerException;
+import org.apache.commons.armi.common.ArmiReply;
+import org.apache.commons.armi.common.ArmiRequest;
+import org.apache.commons.armi.common.ArmiInvocationException;
/**
@@ -71,6 +75,44 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class DirectServer extends AbstractServer {}
+public class DirectServer extends AbstractServer {
+
+
+
+ /**
+ * Method start
+ *
+ */
+ public void start() {
+ mState = STARTED;
+ }
+
+ /**
+ * Method stop
+ *
+ */
+ public void stop() {
+ mState = SHUTTINGDOWN;
+ killAllConnections();
+ mState = STOPPED;
+ }
+
+ /**
+ * Method processRequest
+ *
+ *
+ * @param request
+ *
+ * @return
+ *
+ */
+ public ArmiReply processRequest(ArmiRequest request) {
+ if (mState == STARTED) {
+ return super.processRequest(request);
+ } else {
+ throw new ArmiInvocationException("Service is not started");
+ }
+ }
+}
1.2 +32 -6 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/piped/PipedServer.java
Index: PipedServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/piped/PipedServer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PipedServer.java 28 Dec 2001 18:08:38 -0000 1.1
+++ PipedServer.java 3 Jan 2002 10:49:38 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/piped/PipedServer.java,v 1.1 2001/12/28 18:08:38 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:38 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/piped/PipedServer.java,v 1.2 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -78,7 +78,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class PipedServer extends AbstractServer implements ArmiPipeConnector {
@@ -95,6 +95,12 @@
*/
public PipedInputStream connect(PipedOutputStream clientPOS) throws ArmiConnectionException {
+ if (mState == UNSTARTED) {
+ throw new ArmiConnectionException("Server not started yet");
+ } else if (mState == SHUTTINGDOWN) {
+ throw new ArmiConnectionException("Server is Shutting down");
+ }
+
try {
PipedInputStream pIS = new PipedInputStream();
@@ -105,8 +111,8 @@
clientPIS.connect(pOS);
- ObjectStreamServerConnection dsc = new ObjectStreamServerConnection(this, pIS, pOS);
- Thread thread = new Thread(dsc);
+ PipedObjectStreamServerConnection ossc = new PipedObjectStreamServerConnection(this, pIS, pOS);
+ Thread thread = new Thread(ossc);
thread.start();
@@ -116,4 +122,24 @@
+ pe.getMessage());
}
}
+
+ /**
+ * Method start
+ *
+ */
+ public void start() {
+ mState = STARTED;
+ }
+
+ /**
+ * Method stop
+ *
+ */
+ public void stop() {
+ mState = SHUTTINGDOWN;
+ killAllConnections();
+ mState = STOPPED;
+ }
+
+
}
1.1 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/piped/PipedObjectStreamServerConnection.java
Index: PipedObjectStreamServerConnection.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/piped/PipedObjectStreamServerConnection.java,v 1.1 2002/01/03 10:49:38 hammant Exp $
* $Revision: 1.1 $
* $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.armi.server.impl.piped;
import org.apache.commons.armi.server.impl.ObjectStreamServerConnection;
import org.apache.commons.armi.server.impl.AbstractServer;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
/**
* Class PipedObjectStreamServerConnection
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class PipedObjectStreamServerConnection extends ObjectStreamServerConnection {
private PipedInputStream mPipedIn;
private PipedOutputStream mPipedOut;
/**
* Constructor PipedObjectStreamServerConnection
*
*
* @param abstractServer
* @param socket
*
* @throws IOException
*
*/
public PipedObjectStreamServerConnection(AbstractServer abstractServer, PipedInputStream pipedIn, PipedOutputStream pipedOut)
throws IOException {
super(abstractServer, pipedIn, pipedOut);
mPipedIn = pipedIn;
mPipedOut = pipedOut;
}
protected void killConnection() {
try {
mPipedIn.close();
mPipedOut.close();
} catch (IOException e) {}
}
}
1.2 +39 -6 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/rmi/RmiServer.java
Index: RmiServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/rmi/RmiServer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RmiServer.java 28 Dec 2001 18:08:39 -0000 1.1
+++ RmiServer.java 3 Jan 2002 10:49:38 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/rmi/RmiServer.java,v 1.1 2001/12/28 18:08:39 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:39 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/rmi/RmiServer.java,v 1.2 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -71,6 +71,7 @@
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.RemoteException;
+import java.rmi.NotBoundException;
/**
@@ -78,12 +79,16 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class RmiServer extends AbstractServer {
private RmiArmiInovcationAdapter mRmiArmiInovcationAdapter;
+ private String mHost;
+ private int mPort;
+ private Registry mRegistry;
+
/**
* Constructor RmiServer
*
@@ -96,16 +101,44 @@
*/
public RmiServer(String host, int port) throws ArmiServerException {
+ mHost = host;
+ mPort = port;
+
+ }
+
+ /**
+ * Method start
+ *
+ */
+ public void start() throws ArmiServerException {
+ mState = STARTED;
try {
mRmiArmiInovcationAdapter = new RmiArmiInovcationAdapter(this);
UnicastRemoteObject.exportObject(mRmiArmiInovcationAdapter);
- Registry registry = LocateRegistry.createRegistry(port);
+ mRegistry = LocateRegistry.createRegistry(mPort);
- registry.rebind(RmiArmiInvocationHandler.class.getName(), mRmiArmiInovcationAdapter);
+ mRegistry.rebind(RmiArmiInvocationHandler.class.getName(), mRmiArmiInovcationAdapter);
} catch (RemoteException re) {
throw new ArmiServerException("Some problem setting up server : " + re.getMessage());
}
+
+ }
+
+ /**
+ * Method stop
+ *
+ */
+ public void stop() {
+ mState = SHUTTINGDOWN;
+ killAllConnections();
+ try {
+ mRegistry.unbind(RmiArmiInvocationHandler.class.getName());
+ } catch (RemoteException re) {
+ } catch (NotBoundException nbe) {
+ //TODO ?
+ }
+ mState = STOPPED;
}
}
1.2 +39 -9 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/socket/PlainSocketServer.java
Index: PlainSocketServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/socket/PlainSocketServer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainSocketServer.java 28 Dec 2001 18:08:39 -0000 1.1
+++ PlainSocketServer.java 3 Jan 2002 10:49:38 -0000 1.2
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/socket/PlainSocketServer.java,v 1.1 2001/12/28 18:08:39 hammant Exp $
- * $Revision: 1.1 $
- * $Date: 2001/12/28 18:08:39 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/socket/PlainSocketServer.java,v 1.2 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -81,12 +81,14 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class PlainSocketServer extends AbstractServer implements Runnable {
private ServerSocket mServerSocket;
+ private Thread mThread;
+
/**
* Constructor PlainSocketServer
*
@@ -113,12 +115,11 @@
public void run() {
try {
- while (true) {
+ while (mState == STARTED) {
Socket sock = mServerSocket.accept();
- ObjectStreamServerConnection dsc = new ObjectStreamServerConnection(this,
- sock.getInputStream(),
- sock.getOutputStream());
- Thread thread = new Thread(dsc);
+ SocketObjectStreamServerConnection ossc = new SocketObjectStreamServerConnection(this, sock,
+ sock.getInputStream(), sock.getOutputStream());
+ Thread thread = new Thread(ossc);
thread.start();
}
@@ -126,4 +127,33 @@
System.err.println("Some problem connecting client via sockets.");
}
}
+
+ /**
+ * Method start
+ *
+ */
+ public void start() {
+ mState = STARTED;
+ getThread().start();
+ }
+
+ /**
+ * Method stop
+ *
+ */
+ public void stop() {
+ mState = SHUTTINGDOWN;
+ killAllConnections();
+ getThread().interrupt();
+ mState = STOPPED;
+ }
+
+ private Thread getThread() {
+ if (mThread == null) {
+ mThread = new Thread(this);
+ }
+ return mThread;
+ }
+
+
}
1.1 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/socket/SocketObjectStreamServerConnection.java
Index: SocketObjectStreamServerConnection.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/server/impl/socket/SocketObjectStreamServerConnection.java,v 1.1 2002/01/03 10:49:38 hammant Exp $
* $Revision: 1.1 $
* $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.armi.server.impl.socket;
import org.apache.commons.armi.server.impl.ObjectStreamServerConnection;
import org.apache.commons.armi.server.impl.AbstractServer;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
/**
* Class SocketObjectStreamServerConnection
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class SocketObjectStreamServerConnection extends ObjectStreamServerConnection {
private Socket mSocket;
/**
* Constructor SocketObjectStreamServerConnection
*
*
* @param abstractServer
* @param socket
*
* @throws IOException
*
*/
public SocketObjectStreamServerConnection(final AbstractServer abstractServer, final Socket socket, InputStream inStream, OutputStream outStream)
throws IOException {
super(abstractServer, inStream, outStream);
mSocket = socket;
}
protected void killConnection() {
try {
mSocket.close();
} catch (IOException e) {}
}
}
1.5 +6 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/DirectTest.java
Index: DirectTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/DirectTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DirectTest.java 31 Dec 2001 12:07:31 -0000 1.4
+++ DirectTest.java 3 Jan 2002 10:49:38 -0000 1.5
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/DirectTest.java,v 1.4 2001/12/31 12:07:31 hammant Exp $
- * $Revision: 1.4 $
- * $Date: 2001/12/31 12:07:31 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/DirectTest.java,v 1.5 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.5 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -79,7 +79,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class DirectTest {
@@ -104,6 +104,7 @@
TestInterfaceImpl ti = new TestInterfaceImpl();
ds.publish(ti, "Hello", TestInterface.class);
+ ds.start();
DirectTestClient dtc = new DirectTestClient(new DirectArmiInovcationAdapter(ds));
Thread thread = new Thread(dtc);
@@ -116,7 +117,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
static class DirectTestClient implements Runnable {
1.5 +6 -5 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/PipeTest.java
Index: PipeTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/PipeTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PipeTest.java 31 Dec 2001 12:07:31 -0000 1.4
+++ PipeTest.java 3 Jan 2002 10:49:38 -0000 1.5
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/PipeTest.java,v 1.4 2001/12/31 12:07:31 hammant Exp $
- * $Revision: 1.4 $
- * $Date: 2001/12/31 12:07:31 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/PipeTest.java,v 1.5 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.5 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -80,7 +80,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class PipeTest {
@@ -105,6 +105,7 @@
TestInterfaceImpl ti = new TestInterfaceImpl();
ps.publish(ti, "Hello", TestInterface.class);
+ ps.start();
PipedTestClient ptc = new PipedTestClient(ps);
Thread thread = new Thread(ptc);
@@ -117,7 +118,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
static class PipedTestClient implements Runnable {
1.3 +5 -4 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/RmiServerTest.java
Index: RmiServerTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/RmiServerTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RmiServerTest.java 30 Dec 2001 01:12:04 -0000 1.2
+++ RmiServerTest.java 3 Jan 2002 10:49:38 -0000 1.3
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/RmiServerTest.java,v 1.2 2001/12/30 01:12:04 hammant Exp $
- * $Revision: 1.2 $
- * $Date: 2001/12/30 01:12:04 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/RmiServerTest.java,v 1.3 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -73,7 +73,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class RmiServerTest {
@@ -94,5 +94,6 @@
TestInterfaceImpl ti = new TestInterfaceImpl();
rs.publish(ti, "Hello", TestInterface.class);
+ rs.start();
}
}
1.3 +7 -7 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/SocketServerTest.java
Index: SocketServerTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/SocketServerTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SocketServerTest.java 30 Dec 2001 01:12:04 -0000 1.2
+++ SocketServerTest.java 3 Jan 2002 10:49:38 -0000 1.3
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/SocketServerTest.java,v 1.2 2001/12/30 01:12:04 hammant Exp $
- * $Revision: 1.2 $
- * $Date: 2001/12/30 01:12:04 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/SocketServerTest.java,v 1.3 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -73,7 +73,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class SocketServerTest {
@@ -90,10 +90,10 @@
System.out.println("Stream over Socket Server");
- PlainSocketServer ds = new PlainSocketServer(1234);
+ PlainSocketServer pss = new PlainSocketServer(1234);
TestInterfaceImpl ti = new TestInterfaceImpl();
- ds.publish(ti, "Hello", TestInterface.class);
- ds.run();
+ pss.publish(ti, "Hello", TestInterface.class);
+ pss.start();
}
}
1.4 +7 -7 jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/TestClient.java
Index: TestClient.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/TestClient.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestClient.java 30 Dec 2001 01:12:04 -0000 1.3
+++ TestClient.java 3 Jan 2002 10:49:38 -0000 1.4
@@ -1,8 +1,8 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/TestClient.java,v 1.3 2001/12/30 01:12:04 hammant Exp $
- * $Revision: 1.3 $
- * $Date: 2001/12/30 01:12:04 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/armi/src/java/org/apache/commons/armi/test/TestClient.java,v 1.4 2002/01/03 10:49:38 hammant Exp $
+ * $Revision: 1.4 $
+ * $Date: 2002/01/03 10:49:38 $
*
* ====================================================================
*
@@ -77,7 +77,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class TestClient {
@@ -110,7 +110,7 @@
System.out.println("CLT: " + ti.hello4((float) 1.3, 2.1));
- System.out.println("Two timings about to start, please stand by...");
+ System.out.println("CLT: Two timings about to start, please stand by...");
ti.testSpeed(); // to ignore for timing
long start = System.currentTimeMillis();
@@ -118,7 +118,7 @@
ti.testSpeed();
}
long end = System.currentTimeMillis();
- System.out.println("Total time take for 100,000 simple calls (millis) = " + (end - start));
+ System.out.println("CLT: Total time take for 100,000 simple calls (millis) = " + (end - start));
String rv = ti.testSpeed2("toIgnoreForTiming");
start = System.currentTimeMillis();
@@ -126,7 +126,7 @@
rv = ti.testSpeed2("qwerty");
}
end = System.currentTimeMillis();
- System.out.println("Total time take for 100,000 retval/param calls (millis) = " + (end - start));
+ System.out.println("CLT: Total time take for 100,000 retval/param calls (millis) = " + (end - start));
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>