Application state is now RUNNING.

1-18 Oracle Complex Event Processing Developers Guide ■ AdapterFactory—Adapter factories must implement this interface. ■ Component life cycle interfaces—If you want some control over the life cycle of the component you are programming, then your component should implement one or more of the following interfaces: – ActivatableBean—Use if you want to run some code after all dynamic configuration has been set and the event processing network has been activated. Implement the afterConfigurationActive method. – DisposableBean—Use if you want to release resources when the application is undeployed. Implement the destroy method in your component code. – InitializingBean—Use if you require custom initialization after Oracle CEP has set all the properties of the component. Implement the afterPropertiesSet method. – ResumableBean—Use if you want to perform some task, such as acquire or configure resources, before the component resumes work. – RunnableBean—Use if you want the component to be run in a thread. The Spring framework implements similar bean life cycle interfaces; however, the equivalent Spring interfaces do not allow you to manipulate beans that were created by factories, while the Oracle CEP interfaces do. – SuspendableBean—Use if you want to suspend resources or stop processing events when the event processing network is suspended. Implement the suspend method. See also Appendix I, Oracle CEP Metadata Annotation Reference for additional lifecycle annotations. ■ EventBuilder—Use to create events whose Java representation does not expose the necessary setter and getter methods for its properties. If your event type is represented with a JavaBean with all required getter and setter methods, then you do not need to create an EventBuilder. ■ EventBuilder.Factory—Factory for creating EventBuilders. ■ StreamSink—Components that want to receive events as an Oracle CEP stream must implement this interface. An Oracle CEP stream has the following characteristics: ■ Append-only, that is, events are always appended to the end of the stream. ■ Unbounded and generally need a window to be defined before it can be processed. ■ Events have non-decreasing time-stamps. The interface has a callback method, onInsertEvent, in which programmers put the code that handles the received events. ■ StreamSource—Components that send events modeling an Oracle CEP stream, such as adapters, must implement this interface. The interface has a setEventSender method for setting the StreamSender, which actually sends the event to the next component in the network. ■ RelationSink—Components that want to receive events modeling an Oracle CEP relation must implement this interface. An Oracle CEP relation has the following characteristics: ■ Supports events that insert, delete, and update its content.