Search in sources :

Example 1 with EventExchangeHolderFactory

use of io.siddhi.core.util.event.handler.EventExchangeHolderFactory in project siddhi by wso2.

the class EventTestCase method testEventCreation.

@Test
public void testEventCreation() {
    EventExchangeHolderFactory eventExchangeHolderFactory = new EventExchangeHolderFactory(2);
    AssertJUnit.assertEquals(2, eventExchangeHolderFactory.newInstance().getEvent().getData().length);
    StreamEventFactory streamEventFactory = new StreamEventFactory(2, 3, 4);
    StreamEvent streamEvent = streamEventFactory.newInstance();
    AssertJUnit.assertEquals(2, streamEvent.getBeforeWindowData().length);
    AssertJUnit.assertEquals(3, streamEvent.getOnAfterWindowData().length);
    AssertJUnit.assertEquals(4, streamEvent.getOutputData().length);
}
Also used : EventExchangeHolderFactory(io.siddhi.core.util.event.handler.EventExchangeHolderFactory) StreamEventFactory(io.siddhi.core.event.stream.StreamEventFactory) StreamEvent(io.siddhi.core.event.stream.StreamEvent) MetaStreamEvent(io.siddhi.core.event.stream.MetaStreamEvent) Test(org.testng.annotations.Test)

Example 2 with EventExchangeHolderFactory

use of io.siddhi.core.util.event.handler.EventExchangeHolderFactory in project siddhi by wso2.

the class StreamJunction method startProcessing.

/**
 * Create and start disruptor based on annotations given in the streamDefinition.
 */
public void startProcessing() {
    this.exceptionListener = siddhiAppContext.getRuntimeExceptionListener();
    if (!receivers.isEmpty() && async) {
        for (Constructor constructor : Disruptor.class.getConstructors()) {
            if (constructor.getParameterTypes().length == 5) {
                // If new disruptor classes available
                ProducerType producerType = ProducerType.MULTI;
                disruptor = new Disruptor<EventExchangeHolder>(new EventExchangeHolderFactory(streamDefinition.getAttributeList().size()), bufferSize, executorService, producerType, new BlockingWaitStrategy());
                disruptor.handleExceptionsWith(siddhiAppContext.getDisruptorExceptionHandler());
                break;
            }
        }
        if (disruptor == null) {
            disruptor = new Disruptor<EventExchangeHolder>(new EventExchangeHolderFactory(streamDefinition.getAttributeList().size()), bufferSize, executorService);
            disruptor.handleExceptionsWith(siddhiAppContext.getDisruptorExceptionHandler());
        }
        if (workers > 0) {
            for (int i = 0; i < workers; i++) {
                disruptor.handleEventsWith(new StreamHandler(receivers, batchSize, streamDefinition.getId(), siddhiAppContext.getName(), faultStreamJunction, onErrorAction, exceptionListener));
            }
        } else {
            disruptor.handleEventsWith(new StreamHandler(receivers, batchSize, streamDefinition.getId(), siddhiAppContext.getName(), faultStreamJunction, onErrorAction, exceptionListener));
        }
        ringBuffer = disruptor.start();
    } else {
        for (Receiver receiver : receivers) {
            if (receiver instanceof StreamCallback) {
                ((StreamCallback) receiver).startProcessing();
            }
        }
    }
}
Also used : EventExchangeHolderFactory(io.siddhi.core.util.event.handler.EventExchangeHolderFactory) BlockingWaitStrategy(com.lmax.disruptor.BlockingWaitStrategy) ProducerType(com.lmax.disruptor.dsl.ProducerType) EventExchangeHolder(io.siddhi.core.util.event.handler.EventExchangeHolder) Constructor(java.lang.reflect.Constructor) StreamHandler(io.siddhi.core.util.event.handler.StreamHandler) StreamCallback(io.siddhi.core.stream.output.StreamCallback)

Aggregations

EventExchangeHolderFactory (io.siddhi.core.util.event.handler.EventExchangeHolderFactory)2 BlockingWaitStrategy (com.lmax.disruptor.BlockingWaitStrategy)1 ProducerType (com.lmax.disruptor.dsl.ProducerType)1 MetaStreamEvent (io.siddhi.core.event.stream.MetaStreamEvent)1 StreamEvent (io.siddhi.core.event.stream.StreamEvent)1 StreamEventFactory (io.siddhi.core.event.stream.StreamEventFactory)1 StreamCallback (io.siddhi.core.stream.output.StreamCallback)1 EventExchangeHolder (io.siddhi.core.util.event.handler.EventExchangeHolder)1 StreamHandler (io.siddhi.core.util.event.handler.StreamHandler)1 Constructor (java.lang.reflect.Constructor)1 Test (org.testng.annotations.Test)1