org.apache.uima.pear.util

## Class MessageRouter

- java.lang.Object
- - org.apache.uima.pear.util.MessageRouter

- All Implemented Interfaces:
    Runnable

      public class MessageRouter
      extends Object
      implements Runnable

  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 Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `MessageRouter.StdChannelListener` The `StdChannelListener` interface declares methods that should be implemented by each standard message channel listener.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MessageRouter()` Default constructor for the `MessageRouter` class.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addChannelListener(MessageRouter.StdChannelListener listener)` Adds a given object, implementing the `StdChannelListener` interface, to the list of standard message channel listeners.
    `int` | `countStdChannelListeners()`
    `PrintWriter` | `errWriter()`
    `boolean` | `isRunning()`
    `PrintWriter` | `outWriter()`
    `void` | `removeChannelListener(MessageRouter.StdChannelListener listener)` Removes a given `StdChannelListener` 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` | `terminate()` Terminates the main service thread.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MessageRouter

          public MessageRouter()

      Default constructor for the `MessageRouter` class. This constructor allocates all resources, but does not start the main service thread. Applications should start the `MessageRouter` thread using the `start()` method.

  - ### Method Detail

    - #### addChannelListener

          public void addChannelListener(MessageRouter.StdChannelListener listener)

      Adds a given object, implementing the `StdChannelListener` 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

          public void removeChannelListener(MessageRouter.StdChannelListener listener)

      Removes a given `StdChannelListener` object from the list of standard channel listeners.
      Parameters:
        `listener` - The `StdChannelListener` object to be removed from the list.

    - #### run

          public void run()

      Implements the main service method that runs in a separate thread.
      Specified by:
        `run` in interface `Runnable`

    - #### errWriter

          public PrintWriter errWriter()

      Returns:
        The standard error message channel writer.

    - #### outWriter

          public PrintWriter 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.

Copyright © 2006–2021 The Apache Software Foundation. All rights reserved.