You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2020/06/10 13:15:15 UTC

[uima-async-scaleout] 31/34: UIMA-5501 refactored to use pluggagble endpoints

This is an automated email from the ASF dual-hosted git repository.

cwiklik pushed a commit to branch uima-as-3
in repository https://gitbox.apache.org/repos/asf/uima-async-scaleout.git

commit 2746d5ed69e3ae29f3219a8bdfb5b24bbf031e10
Author: cwiklik <cwiklik>
AuthorDate: Thu Nov 29 17:35:04 2018 +0000

    UIMA-5501 refactored to use pluggagble endpoints
---
 .../as/connectors/direct/DirectMessageBuilder.java | 115 +++++++++++++++++++++
 1 file changed, 115 insertions(+)

diff --git a/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java b/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java
new file mode 100644
index 0000000..2774f58
--- /dev/null
+++ b/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java
@@ -0,0 +1,115 @@
+package org.apache.uima.as.connectors.direct;
+
+import org.apache.uima.aae.definition.connectors.UimaAsConsumer;
+import org.apache.uima.aae.definition.connectors.UimaAsConsumer.ConsumerType;
+import org.apache.uima.aae.definition.connectors.UimaAsEndpoint;
+import org.apache.uima.aae.message.AsynchAEMessage;
+import org.apache.uima.aae.message.MessageBuilder;
+import org.apache.uima.aae.message.MessageContext;
+import org.apache.uima.aae.message.Origin;
+import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
+import org.apache.uima.as.client.DirectMessage;
+import org.apache.uima.as.client.DirectMessageContext;
+
+public class DirectMessageBuilder implements MessageBuilder {
+		private DirectMessage message;
+		private String id;
+		private UimaAsEndpoint endpoint;
+		
+		protected DirectMessageBuilder(UimaAsEndpoint endpoint ) {
+			this.endpoint = endpoint;
+		}
+		private MessageBuilder newMessage(int command, int msgType, Origin origin) {
+			message = new DirectMessage().
+					withCommand(command).
+					withMessageType(msgType).
+					withOrigin(origin);
+			return this;
+		}
+
+		public MessageContext build() {
+			return new DirectMessageContext(message,id,id);
+		}
+
+		public DirectMessageBuilder withSenderKey(String senderKey) {
+			message.withDelegateKey(senderKey);
+			return this;
+		}
+		public DirectMessageBuilder withReplyDestination(Object replyToDestination) {
+			message.withReplyDestination(replyToDestination);
+			return this;
+		}
+		public DirectMessageBuilder withPayload(int payload) {
+			message.withPayload(payload);
+			return this;
+		}
+
+		@Override
+		public MessageBuilder withId(String id) {
+			message.withEndpointName(id);
+			return this;
+		}
+		@Override
+		public MessageBuilder withCasReferenceId(String casReferenceId) {
+			message.withCasReferenceId(casReferenceId);
+			return this;
+		}
+		@Override
+		public MessageBuilder withParentCasReferenceId(String parentCasReferenceId) {
+			message.withParentCasReferenceId(parentCasReferenceId);
+			return this;
+		}
+		@Override
+		public MessageBuilder withMetadata(AnalysisEngineMetaData meta) {
+			message.withMetadata(meta);
+			return this;
+		}
+		@Override
+		public MessageBuilder withSequenceNo(long sequence) {
+			message.withSequenceNumber(sequence);
+			return this;
+		}
+
+		@Override
+		public MessageBuilder newGetMetaReplyMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.GetMeta, AsynchAEMessage.Response, origin);
+		}
+
+		@Override
+		public MessageBuilder newGetMetaRequestMessage(Origin origin) {
+			UimaAsConsumer consumer =
+					endpoint.getConsumer(origin.getName(), ConsumerType.GetMetaResponse);
+			return newMessage(AsynchAEMessage.GetMeta, AsynchAEMessage.Request, origin).withReplyDestination(consumer);
+		}
+
+		@Override
+		public MessageBuilder newProcessCASReplyMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.Process, AsynchAEMessage.Response, origin);
+		}
+
+		@Override
+		public MessageBuilder newProcessCASRequestMessage(Origin origin) {
+			UimaAsConsumer consumer =
+					endpoint.getConsumer(origin.getName(), ConsumerType.ProcessCASResponse);
+			return newMessage(AsynchAEMessage.Process, AsynchAEMessage.Request, origin).withReplyDestination(consumer);
+		}
+
+		@Override
+		public MessageBuilder newCpCReplyMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.CollectionProcessComplete, AsynchAEMessage.Response, origin);
+		}
+
+		@Override
+		public MessageBuilder newCpCRequestMessage(Origin origin) {
+			UimaAsConsumer consumer =
+					endpoint.getConsumer(origin.getName(), ConsumerType.CpcResponse);
+			return newMessage(AsynchAEMessage.CollectionProcessComplete, AsynchAEMessage.Request, origin).withReplyDestination(consumer);
+		}
+
+		@Override
+		public MessageBuilder newReleaseCASRequestMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.ReleaseCAS, AsynchAEMessage.Request, origin);
+		}
+
+
+}