Input and output adapters to Esper provide the means of accepting events from various sources, and for making available events to destinations.
The following input and output adapters exist:
Table 1.1. Input and Output Adapters
Adapter | Description |
---|---|
CSV Input Adapter | The CSV input adapter can read one or more CSV-formatted input sources, transform the textual values into events, and play the events into the engine. The adapter also makes it possible to run complete simulations of events arriving in time-order from different input streams. |
Spring JMS Input and Output Adapter | JMS adapters based on the JmsTemplate offered by Spring 2. Provides unmarshalling of JMS javax.jms.Message messages for sending into an engine instance, and marshaling of net.esper.EventBean events into JMS messages. |
The Adapter interface allows client applications to control the state of an input and output adapter. It provides state transition methods that each input and output adapter implements.
An input or output adapter is always in one of the following states:
Opened - The begin state; The adapter is not generating or accepting events in this state
Started - When the adapter is active, generating and accepting events
Paused - When operation of the adapter is suspended
Destroyed
The state transition table below outlines adapter states and, for each state, the valid state transitions:
The net.esper.adapter.AdapterInputSource encapsulates information about an input source. Input adapters use the AdapterInputSource to determine how to read input. The class provides constructors for use with different input sources:
java.io.Reader to read character streams
java.io.InputStream to read byte streams
java.net.URL
Classpath resource by name
java.io.File
Adapters resolve Classpath resources in the following order:
Current thread classloader via Thread.currentThread().getContextClassLoader().getResourceAsStream
If the resource is not found: AdapterInputSource.class.getResourceAsStream
If the resource is not found: AdapterInputSource.class.getClassLoader().getResourceAsStream