From f0f23e3b453d455ec4bb6821065ac1116b30d16d Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Sat, 17 Dec 2011 16:32:44 +0000 Subject: [PATCH] Refactor for server/client/shared package structure. SVN: 24023 --- .../serviceconversation/IServiceMessenger.java | 4 ++-- .../serviceconversation/ServiceConversationDTO.java | 2 +- .../{ => client}/ClientMessenger.java | 6 +++++- .../ClientResponseMessageMultiplexer.java | 5 ++++- .../{ => client}/ClientResponseMessageQueue.java | 5 ++++- .../IRemoteServiceConversationServer.java | 4 +++- .../{ => client}/IServiceConversation.java | 6 ++++-- .../{ => client}/ServiceConversationClient.java | 5 ++++- .../{ => client}/ServiceExecutionException.java | 2 +- .../{ => server}/BidirectionalServiceMessenger.java | 6 +++++- .../serviceconversation/{ => server}/IService.java | 4 +++- .../{ => server}/IServiceFactory.java | 2 +- .../{ => server}/ServiceConversationRecord.java | 2 +- .../{ => server}/ServiceConversationServer.java | 12 ++++++++++-- .../serviceconversation/ServiceConversationTest.java | 7 +++++++ 15 files changed, 55 insertions(+), 17 deletions(-) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/ClientMessenger.java (92%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/ClientResponseMessageMultiplexer.java (90%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/ClientResponseMessageQueue.java (88%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/IRemoteServiceConversationServer.java (88%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/IServiceConversation.java (86%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/ServiceConversationClient.java (91%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => client}/ServiceExecutionException.java (97%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => server}/BidirectionalServiceMessenger.java (92%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => server}/IService.java (87%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => server}/IServiceFactory.java (94%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => server}/ServiceConversationRecord.java (95%) rename common/source/java/ch/systemsx/cisd/common/serviceconversation/{ => server}/ServiceConversationServer.java (93%) diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceMessenger.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceMessenger.java index d5c87e8a51f..ae080c4dee1 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceMessenger.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceMessenger.java @@ -27,12 +27,12 @@ import java.io.Serializable; public interface IServiceMessenger { /** - * Send a message to the client. + * Send a message to the counter part. */ public void send(Serializable message); /** - * Receive a message from the client. + * Receive a message from the counter part. */ public <T extends Serializable> T receive(Class<T> messageClass); } diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationDTO.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationDTO.java index 2625dee55a3..8da289af362 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationDTO.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationDTO.java @@ -31,7 +31,7 @@ public class ServiceConversationDTO implements Serializable private int clientTimeoutInMillis; - ServiceConversationDTO(String serviceConversationId, int clientTimeout) + public ServiceConversationDTO(String serviceConversationId, int clientTimeout) { this.serviceConversationId = serviceConversationId; this.clientTimeoutInMillis = clientTimeout; diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientMessenger.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientMessenger.java similarity index 92% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientMessenger.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientMessenger.java index 85e592882f4..5d4366a2f1f 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientMessenger.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientMessenger.java @@ -14,12 +14,16 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; import java.io.Serializable; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.base.exceptions.TimeoutExceptionUnchecked; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessageTransport; +import ch.systemsx.cisd.common.serviceconversation.ServiceConversationDTO; +import ch.systemsx.cisd.common.serviceconversation.ServiceMessage; +import ch.systemsx.cisd.common.serviceconversation.UnexpectedMessagePayloadException; /** * A class that a client can use to receive messages from a service. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientResponseMessageMultiplexer.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientResponseMessageMultiplexer.java similarity index 90% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientResponseMessageMultiplexer.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientResponseMessageMultiplexer.java index 0c0c387ca8d..71049741044 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientResponseMessageMultiplexer.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientResponseMessageMultiplexer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -23,6 +23,9 @@ import org.apache.log4j.Logger; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessageTransport; +import ch.systemsx.cisd.common.serviceconversation.ServiceMessage; +import ch.systemsx.cisd.common.serviceconversation.UnknownServiceConversationException; /** * A client-side multiplexer for incoming messages from the server. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientResponseMessageQueue.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientResponseMessageQueue.java similarity index 88% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientResponseMessageQueue.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientResponseMessageQueue.java index f6098f3f8c5..170a0573ad5 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ClientResponseMessageQueue.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ClientResponseMessageQueue.java @@ -14,12 +14,15 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessageTransport; +import ch.systemsx.cisd.common.serviceconversation.ServiceMessage; + /** * A class that holds a queue for response messages to a client. * diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IRemoteServiceConversationServer.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/IRemoteServiceConversationServer.java similarity index 88% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/IRemoteServiceConversationServer.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/IRemoteServiceConversationServer.java index b4d6cab3a50..135049bd8c4 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IRemoteServiceConversationServer.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/IRemoteServiceConversationServer.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; + +import ch.systemsx.cisd.common.serviceconversation.ServiceConversationDTO; /** * A remote role for starting a service conversation. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceConversation.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/IServiceConversation.java similarity index 86% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceConversation.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/IServiceConversation.java index 515c28acfb3..8000c00bcc9 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceConversation.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/IServiceConversation.java @@ -14,17 +14,19 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; import java.io.Closeable; import java.io.Serializable; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessenger; + /** * The service conversation. * * @author Bernd Rinn */ -public interface IServiceConversation extends Closeable +public interface IServiceConversation extends IServiceMessenger, Closeable { /** * Returns the service conversation id. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationClient.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ServiceConversationClient.java similarity index 91% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationClient.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ServiceConversationClient.java index 04806349334..c55e4b827c1 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationClient.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ServiceConversationClient.java @@ -14,7 +14,10 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; + +import ch.systemsx.cisd.common.serviceconversation.IServiceMessageTransport; +import ch.systemsx.cisd.common.serviceconversation.ServiceConversationDTO; /** * The client for the service conversations. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceExecutionException.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ServiceExecutionException.java similarity index 97% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceExecutionException.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ServiceExecutionException.java index 1e30cb466fc..5a1ae4f8a7e 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceExecutionException.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/client/ServiceExecutionException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.client; import java.io.PrintStream; import java.io.PrintWriter; diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/BidirectionalServiceMessenger.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/BidirectionalServiceMessenger.java similarity index 92% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/BidirectionalServiceMessenger.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/server/BidirectionalServiceMessenger.java index aefd3d89d54..b9b2d29d3be 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/BidirectionalServiceMessenger.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/BidirectionalServiceMessenger.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.server; import java.io.Serializable; import java.util.concurrent.BlockingQueue; @@ -25,6 +25,10 @@ import java.util.concurrent.atomic.AtomicBoolean; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.base.exceptions.InterruptedExceptionUnchecked; import ch.systemsx.cisd.base.exceptions.TimeoutExceptionUnchecked; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessageTransport; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessenger; +import ch.systemsx.cisd.common.serviceconversation.ServiceMessage; +import ch.systemsx.cisd.common.serviceconversation.UnexpectedMessagePayloadException; /** * A bidirectional messenger on the server side. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IService.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/IService.java similarity index 87% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/IService.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/server/IService.java index 04013cd0720..95daeca3854 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IService.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/IService.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.server; + +import ch.systemsx.cisd.common.serviceconversation.IServiceMessenger; /** * The interface for a service that can participate in a service conversation. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceFactory.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/IServiceFactory.java similarity index 94% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceFactory.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/server/IServiceFactory.java index 5aaef6c070f..5856028a6b5 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/IServiceFactory.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/IServiceFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.server; /** * A factory for services. diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationRecord.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/ServiceConversationRecord.java similarity index 95% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationRecord.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/server/ServiceConversationRecord.java index 005fa10b773..39b00605654 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationRecord.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/ServiceConversationRecord.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.server; import ch.systemsx.cisd.common.concurrent.ITerminableFuture; diff --git a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationServer.java b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/ServiceConversationServer.java similarity index 93% rename from common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationServer.java rename to common/source/java/ch/systemsx/cisd/common/serviceconversation/server/ServiceConversationServer.java index 0c505cf453d..636fab0a38e 100644 --- a/common/source/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationServer.java +++ b/common/source/java/ch/systemsx/cisd/common/serviceconversation/server/ServiceConversationServer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.common.serviceconversation; +package ch.systemsx.cisd.common.serviceconversation.server; import java.util.Map; import java.util.Random; @@ -33,6 +33,12 @@ import ch.systemsx.cisd.common.concurrent.TerminableCallable.ICallable; import ch.systemsx.cisd.common.concurrent.TerminableCallable.IStoppableExecutor; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.serviceconversation.IServiceMessageTransport; +import ch.systemsx.cisd.common.serviceconversation.ServiceConversationDTO; +import ch.systemsx.cisd.common.serviceconversation.ServiceMessage; +import ch.systemsx.cisd.common.serviceconversation.UnknownClientException; +import ch.systemsx.cisd.common.serviceconversation.UnknownServiceTypeException; +import ch.systemsx.cisd.common.serviceconversation.client.ServiceExecutionException; /** * A collection of service conversations. @@ -169,7 +175,9 @@ public class ServiceConversationServer final IServiceMessageTransport responseMessenger = responseMessageMap.get(clientId); if (responseMessenger == null) { - throw new UnknownClientException(clientId); + final UnknownClientException ex = new UnknownClientException(clientId); + operationLog.error(ex.getMessage()); + throw ex; } final IService serviceInstance = serviceFactory.create(); final String serviceConversationId = diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationTest.java index 695fbbe8b95..3974928f925 100644 --- a/common/sourceTest/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationTest.java +++ b/common/sourceTest/java/ch/systemsx/cisd/common/serviceconversation/ServiceConversationTest.java @@ -32,6 +32,13 @@ import ch.systemsx.cisd.base.exceptions.InterruptedExceptionUnchecked; import ch.systemsx.cisd.base.exceptions.TimeoutExceptionUnchecked; import ch.systemsx.cisd.common.concurrent.ConcurrencyUtilities; import ch.systemsx.cisd.common.logging.LogInitializer; +import ch.systemsx.cisd.common.serviceconversation.client.IRemoteServiceConversationServer; +import ch.systemsx.cisd.common.serviceconversation.client.IServiceConversation; +import ch.systemsx.cisd.common.serviceconversation.client.ServiceConversationClient; +import ch.systemsx.cisd.common.serviceconversation.client.ServiceExecutionException; +import ch.systemsx.cisd.common.serviceconversation.server.IService; +import ch.systemsx.cisd.common.serviceconversation.server.IServiceFactory; +import ch.systemsx.cisd.common.serviceconversation.server.ServiceConversationServer; /** * Test cases for the {@Link ServiceConversationCollection} class. -- GitLab