Stop Thinking, Just Do!

Sungsoo Kim's Blog

Esper Adapter Concept

tagsTags

21 January 2014


Adapter Overview

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

AdapterDescription
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 com.espertech.esper.client.EventBean events into JMS messages.

Opentick Input Adapter

The opentick input adapter receives real-time stock market data from opentick corporation's API. Please see http://www.opentick.com for more information. Opentick license, copyright and trademark are properties of opentick corporation.

Adapter Library Classes --- ### The Adapter Interface 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*.

Table 1.2. Adapter State Transitions

Start StateMethodNext State
Openedstart()Started
Openeddestroy()Destroyed
Startedstop()Opened
Startedpause()Paused
Starteddestroy()Destroyed
Pausedresume()Started
Pausedstop()Opened
Pauseddestroy()Destroyed
### Using AdapterInputSource The `com.espertech.esperio.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` References --- [1] [EsperIO Adapters](http://esper.codehaus.org/esperio-4.0.0/doc/reference/en/html_single/index.html#adapter_overview), *EsperIO Reference Documentation 4.0.0*, 2009.

comments powered by Disqus