Class JmsOutputChannel
- java.lang.Object
-
- org.apache.uima.adapter.jms.activemq.JmsOutputChannel
-
- All Implemented Interfaces:
Channel
,OutputChannel
public class JmsOutputChannel extends java.lang.Object implements OutputChannel
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JmsOutputChannel.BrokerConnectionEntry
protected class
JmsOutputChannel.ConnectionTimer
-
Field Summary
-
Fields inherited from interface org.apache.uima.aae.Channel
CloseAllChannels, InputChannels
-
-
Constructor Summary
Constructors Constructor Description JmsOutputChannel()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bindWithClientEndpoint(Endpoint anEndpoint)
This method verifies that the destination (queue) exists.void
cancelTimers()
AnalysisEngineController
getAnalysisEngineController()
org.apache.activemq.ActiveMQConnectionFactory
getConnectionFactory()
java.lang.String
getControllerInputEndpoint()
java.lang.String
getName()
java.lang.String
getServerURI()
void
initialize()
void
sendReply(int aCommand, Endpoint anEndpoint, java.lang.String aCasReferenceId, boolean notifyOnJmsException)
void
sendReply(java.lang.Throwable t, java.lang.String aCasReferenceId, java.lang.String aParentCasReferenceId, Endpoint anEndpoint, int aCommand)
Sends JMS Reply Message to a given endpoint.void
sendReply(InProcessCache.CacheEntry entry, Endpoint anEndpoint)
void
sendReply(org.apache.uima.resource.metadata.ProcessingResourceMetaData aProcessingResourceMetadata, Endpoint anEndpoint, boolean serialize)
void
sendRequest(int aCommand, java.lang.String aCasReferenceId, Endpoint anEndpoint)
Sends request message to a delegate.java.lang.String
serializeCAS(boolean isReply, org.apache.uima.cas.CAS aCAS, java.lang.String aCasReferenceId, java.lang.String aSerializerKey)
Serializes CAS using indicated Serializer.void
setConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory connectionFactory)
void
setController(AnalysisEngineController analysisEngineController)
void
setControllerInputEndpoint(java.lang.String controllerInputEndpoint)
protected void
setFreeCasQueue(javax.jms.Destination destination)
void
setSecondaryInputQueue(java.lang.String anEndpoint)
void
setServerURI(java.lang.String aServerURI)
Sets the ActiveMQ Broker URIvoid
setServiceInputEndpoint(java.lang.String anEnpoint)
void
stop()
void
stop(int channelsToClose)
-
-
-
Method Detail
-
setServerURI
public void setServerURI(java.lang.String aServerURI)
Sets the ActiveMQ Broker URI- Specified by:
setServerURI
in interfaceOutputChannel
-
setFreeCasQueue
protected void setFreeCasQueue(javax.jms.Destination destination)
-
getServerURI
public java.lang.String getServerURI()
-
setConnectionFactory
public void setConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory connectionFactory)
- Parameters:
connectionFactory
-
-
setServiceInputEndpoint
public void setServiceInputEndpoint(java.lang.String anEnpoint)
-
setSecondaryInputQueue
public void setSecondaryInputQueue(java.lang.String anEndpoint)
-
getConnectionFactory
public org.apache.activemq.ActiveMQConnectionFactory getConnectionFactory()
-
initialize
public void initialize() throws AsynchAEException
- Specified by:
initialize
in interfaceOutputChannel
- Throws:
AsynchAEException
-
serializeCAS
public java.lang.String serializeCAS(boolean isReply, org.apache.uima.cas.CAS aCAS, java.lang.String aCasReferenceId, java.lang.String aSerializerKey) throws java.lang.Exception
Serializes CAS using indicated Serializer.- Parameters:
aCAS
- - CAS instance to serializeaSerializerKey
- - a key identifying which serializer to use- Returns:
- - String - serialized CAS as String
- Throws:
java.lang.Exception
-
bindWithClientEndpoint
public void bindWithClientEndpoint(Endpoint anEndpoint) throws java.lang.Exception
This method verifies that the destination (queue) exists. It opens a connection the a broker, creates a session and a message producer. Finally, using the message producer, sends an empty message to a queue. This API support enables checking for existence of the reply (temp) queue before any processing of a cas is done. This is an optimization to prevent expensive processing if the client destination is no longer available.- Specified by:
bindWithClientEndpoint
in interfaceOutputChannel
- Throws:
java.lang.Exception
-
sendRequest
public void sendRequest(int aCommand, java.lang.String aCasReferenceId, Endpoint anEndpoint) throws AsynchAEException
Sends request message to a delegate.- Specified by:
sendRequest
in interfaceOutputChannel
- Parameters:
aCommand
- - the type of request [Process|GetMeta]anEndpoint
- - the destination where the delegate receives messages- Throws:
AsynchAEException
-
sendReply
public void sendReply(InProcessCache.CacheEntry entry, Endpoint anEndpoint) throws AsynchAEException
- Specified by:
sendReply
in interfaceOutputChannel
- Throws:
AsynchAEException
-
sendReply
public void sendReply(int aCommand, Endpoint anEndpoint, java.lang.String aCasReferenceId, boolean notifyOnJmsException) throws AsynchAEException
- Specified by:
sendReply
in interfaceOutputChannel
- Throws:
AsynchAEException
-
sendReply
public void sendReply(java.lang.Throwable t, java.lang.String aCasReferenceId, java.lang.String aParentCasReferenceId, Endpoint anEndpoint, int aCommand) throws AsynchAEException
Sends JMS Reply Message to a given endpoint. The reply message contains given Throwable (with full stack)- Specified by:
sendReply
in interfaceOutputChannel
- Parameters:
t
- - Throwable to include in the reply messageanEndpoint
- - an endpoint to receive the reply messageaCasReferenceId
- - a unique CAS reference id- Throws:
AsynchAEException
-
sendReply
public void sendReply(org.apache.uima.resource.metadata.ProcessingResourceMetaData aProcessingResourceMetadata, Endpoint anEndpoint, boolean serialize) throws AsynchAEException
- Specified by:
sendReply
in interfaceOutputChannel
- Parameters:
aProcessingResourceMetadata
-anEndpoint
-serialize
-- Throws:
AsynchAEException
-
getAnalysisEngineController
public AnalysisEngineController getAnalysisEngineController()
-
setController
public void setController(AnalysisEngineController analysisEngineController)
- Specified by:
setController
in interfaceOutputChannel
-
getControllerInputEndpoint
public java.lang.String getControllerInputEndpoint()
-
setControllerInputEndpoint
public void setControllerInputEndpoint(java.lang.String controllerInputEndpoint)
-
stop
public void stop()
- Specified by:
stop
in interfaceChannel
- Specified by:
stop
in interfaceOutputChannel
-
cancelTimers
public void cancelTimers()
- Specified by:
cancelTimers
in interfaceOutputChannel
-
-