Package org.apache.uima.pear.util
Class MessageRouter
java.lang.Object
org.apache.uima.pear.util.MessageRouter
- All Implemented Interfaces:
Runnable
The
The
MessageRouter class facilitates intra-process message routing. It provides
application classes with convenient access to the message channels via the
PrintWriter class. The MessageRouter class, by default, defines 2
standard message channels - for standard output and standard error messages. Applications can
publish their standard output and standard error messages using the outWriter() and
errWriter() methods correspondingly. The
MessageRouter class distributes the messages to a number of message channel
listeners, added by applications. Standard message channel listeners should implement the
MessageRouter.StdChannelListener interface. The MessageRouter class
collects all published messages. When a new message channel listener is added, it receives all
collected messages from the message history.
The MessageRouter code runs in a separate thread that should be started and
terminated by applications. Applications should use the start() and
terminate() methods to start and terminate the MessageRouter thread
correspondingly.
For terminology see the Enterprise
Integration Patterns book.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceTheStdChannelListenerinterface declares methods that should be implemented by each standard message channel listener. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a given object, implementing theStdChannelListenerinterface, to the list of standard message channel listeners.intbooleanvoidRemoves a givenStdChannelListenerobject from the list of standard channel listeners.voidrun()Implements the main service method that runs in a separate thread.voidstart()Starts the main service thread.voidTerminates the main service thread.
-
Constructor Details
-
MessageRouter
public MessageRouter()Default constructor for theMessageRouterclass. This constructor allocates all resources, but does not start the main service thread. Applications should start theMessageRouterthread using thestart()method.
-
-
Method Details
-
addChannelListener
Adds a given object, implementing theStdChannelListenerinterface, to the list of standard message channel listeners. Sends to the new listener all previously collected messages for this channel.- Parameters:
listener- The given new standard message channel listener.
-
countStdChannelListeners
public int countStdChannelListeners()- Returns:
- Current number of standard channel listeners.
-
isRunning
public boolean isRunning()- Returns:
true, if the router thread is running,falseotherwise.
-
removeChannelListener
Removes a givenStdChannelListenerobject from the list of standard channel listeners.- Parameters:
listener- TheStdChannelListenerobject to be removed from the list.
-
run
public void run()Implements the main service method that runs in a separate thread. -
errWriter
- Returns:
- The standard error message channel writer.
-
outWriter
- Returns:
- The standard output message channel writer.
-
start
public void start()Starts the main service thread. -
terminate
public void terminate()Terminates the main service thread.
-