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
Modifier and TypeClassDescriptionstatic interface
TheStdChannelListener
interface declares methods that should be implemented by each standard message channel listener. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a given object, implementing theStdChannelListener
interface, to the list of standard message channel listeners.int
boolean
void
Removes a givenStdChannelListener
object from the list of standard channel listeners.void
run()
Implements the main service method that runs in a separate thread.void
start()
Starts the main service thread.void
Terminates the main service thread.
-
Constructor Details
-
MessageRouter
public MessageRouter()Default constructor for theMessageRouter
class. This constructor allocates all resources, but does not start the main service thread. Applications should start theMessageRouter
thread using thestart()
method.
-
-
Method Details
-
addChannelListener
Adds a given object, implementing theStdChannelListener
interface, 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,false
otherwise.
-
removeChannelListener
Removes a givenStdChannelListener
object from the list of standard channel listeners.- Parameters:
listener
- TheStdChannelListener
object 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.
-