WSO2 Complex Event Processor is succeeded by WSO2 Stream Processor. To view the latest documentation for WSO2 SP, see WSO2 Stream Processor Documentation.
Skip to end of metadata
Go to start of metadata


This sample demonstrates how to set up an execution plan with time windows and length windows and perform a join (with a condition) to trigger an output. This sample uses Event simulator for inputs and the logger publisher for logging the outputs to the CEP console.

The execution plan used in this sample are as follows:

from TempStream[temp > 30.0]#window.time(1 min) as T 
  join RegulatorStream[isOn == false]#window.length(1) as R
  on T.roomNo == R.roomNo
select T.roomNo, T.temp, R.deviceID, 'start' as action
insert into RegulatorActionStream ;

The first query,

  • Processes the events received through the TempStream, filters events with temp > 30.0 and inserts the events that satisfy the filter condition into a 1-minute time window (renamed as T).
  • Filters events coming through the RegulatorStream with the condition isOn == false, and inserts the events that satisfy the condition into a length window of 1 event (renamed as R).
  • Performs a join between the above two windows, with the condition T.roomNo == R.roomNo, this will create tuples consisting of the events matching this condition as in SQL.
  • Selects the roomNo from T evnets, temp from T events, deviceID from R, and also inserts and additional attribute named 'action' with the value 'start'.
  • Emits those events as output events through the RegulatorActionStream stream.



Set up the prerequisites required for all samples.

Building the sample

Start the WSO2 CEP server with the sample configuration numbered 0105. For instructions, see Starting sample CEP configurations. This sample configuration does the following:

  • Points the default Axis2 repo to <CEP_HOME>/samples/cep/artifacts/0105 (by default, the Axis2 repo is <CEP_HOME>/repository/deployment/server).

Executing the sample

  1. Log into the CEP management console which is located at https://localhost:9443/carbon.

  2. Go to Tools -> Event Simulator. The following files are displayed under the Send multiple events section.
    • events.csv: This file contains sample events to simulate the event flow of the event stream named TempStream:1.0.0.
    • regularEvents.csv: This file contains sample events to simulate the event flow of the event stream named RegularStream:1.0.0.
    Click Play for both files to start sending sample events in these files.
  3. See the output events received from the CEP console. This sample uses the logger adaptor to log output events to the console.

    For example, given below is a screenshot of the output of the consumer sending events from the producer:

  • No labels