org.apache.uima.adapter.jms.activemq
Class JmsOutputChannel

java.lang.Object
  extended by org.apache.uima.adapter.jms.activemq.JmsOutputChannel
All Implemented Interfaces:
Channel, OutputChannel

public class JmsOutputChannel
extends java.lang.Object
implements OutputChannel


Nested Class Summary
static class JmsOutputChannel.BrokerConnectionEntry
           
protected  class JmsOutputChannel.ConnectionTimer
           
 
Field Summary
 
Fields inherited from interface org.apache.uima.aae.Channel
CloseAllChannels, InputChannels
 
Constructor Summary
JmsOutputChannel()
           
 
Method Summary
 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(InProcessCache.CacheEntry entry, Endpoint anEndpoint)
           
 void sendReply(int aCommand, Endpoint anEndpoint, java.lang.String aCasReferenceId, boolean notifyOnJmsException)
           
 void sendReply(org.apache.uima.resource.metadata.ProcessingResourceMetaData aProcessingResourceMetadata, Endpoint anEndpoint, boolean serialize)
           
 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 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 URI
 void setServiceInputEndpoint(java.lang.String anEnpoint)
           
 void stop()
           
 void stop(int channelsToClose)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JmsOutputChannel

public JmsOutputChannel()
Method Detail

setServerURI

public void setServerURI(java.lang.String aServerURI)
Sets the ActiveMQ Broker URI

Specified by:
setServerURI in interface OutputChannel

setFreeCasQueue

protected void setFreeCasQueue(javax.jms.Destination destination)

getServerURI

public java.lang.String getServerURI()

getName

public java.lang.String getName()
Specified by:
getName in interface Channel

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 interface OutputChannel
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 serialize
aSerializerKey - - 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 interface OutputChannel
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 interface OutputChannel
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 interface OutputChannel
Throws:
AsynchAEException

sendReply

public void sendReply(int aCommand,
                      Endpoint anEndpoint,
                      java.lang.String aCasReferenceId,
                      boolean notifyOnJmsException)
               throws AsynchAEException
Specified by:
sendReply in interface OutputChannel
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 interface OutputChannel
Parameters:
t - - Throwable to include in the reply message
anEndpoint - - an endpoint to receive the reply message
aCasReferenceId - - 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 interface OutputChannel
Parameters:
aProcessingResourceMetadata -
anEndpoint -
serialize -
Throws:
AsynchAEException

getAnalysisEngineController

public AnalysisEngineController getAnalysisEngineController()

setController

public void setController(AnalysisEngineController analysisEngineController)
Specified by:
setController in interface OutputChannel

getControllerInputEndpoint

public java.lang.String getControllerInputEndpoint()

setControllerInputEndpoint

public void setControllerInputEndpoint(java.lang.String controllerInputEndpoint)

stop

public void stop()
Specified by:
stop in interface Channel
Specified by:
stop in interface OutputChannel

stop

public void stop(int channelsToClose)
Specified by:
stop in interface Channel

cancelTimers

public void cancelTimers()
Specified by:
cancelTimers in interface OutputChannel


Copyright © 2011. All Rights Reserved.