Search in sources :

Example 41 with Sink

use of org.wso2.siddhi.core.stream.output.sink.Sink in project siddhi by wso2.

the class DefineStreamTestCase method testMultilevelNestedAnnotations1.

@Test
public void testMultilevelNestedAnnotations1() throws SiddhiParserException {
    StreamDefinition streamDefinition = SiddhiCompiler.parseStreamDefinition("@sink(url='http://foo.com/test/{{data}}', " + "   @map(type='xml', " + "@payload('<test><time>{{time}}</time></test>')" + "   )" + ") " + "define stream fooStream (id int, name string);");
    AssertJUnit.assertEquals(StreamDefinition.id("fooStream").attribute("id", Attribute.Type.INT).attribute("name", Attribute.Type.STRING).annotation(Annotation.annotation("sink").element("url", "http://foo.com/test/{{data}}").annotation(Annotation.annotation("map").element("type", "xml").annotation(Annotation.annotation("payload").element("<test><time>{{time}}</time></test>")))), streamDefinition);
}
Also used : StreamDefinition(org.wso2.siddhi.query.api.definition.StreamDefinition) Test(org.testng.annotations.Test)

Example 42 with Sink

use of org.wso2.siddhi.core.stream.output.sink.Sink in project siddhi by wso2.

the class SinkMapper method init.

public final void init(StreamDefinition streamDefinition, String type, OptionHolder mapOptionHolder, List<Element> unmappedPayloadList, Sink sink, ConfigReader mapperConfigReader, LatencyTracker mapperLatencyTracker, SiddhiAppContext siddhiAppContext) {
    this.mapperLatencyTracker = mapperLatencyTracker;
    this.siddhiAppContext = siddhiAppContext;
    sink.setTrpDynamicOptions(trpDynamicOptions);
    this.sinkListener = sink;
    this.optionHolder = mapOptionHolder;
    this.type = type;
    if (unmappedPayloadList != null && !unmappedPayloadList.isEmpty()) {
        templateBuilderMap = new HashMap<>();
        for (Element e : unmappedPayloadList) {
            TemplateBuilder templateBuilder = new TemplateBuilder(streamDefinition, e.getValue());
            if (templateBuilderMap.containsKey(e.getKey())) {
                throw new SiddhiAppCreationException("Duplicate Keys, " + e.getKey() + ", in @payload() ");
            }
            templateBuilderMap.put(e.getKey(), templateBuilder);
        }
    }
    init(streamDefinition, mapOptionHolder, templateBuilderMap, mapperConfigReader, siddhiAppContext);
}
Also used : SiddhiAppCreationException(org.wso2.siddhi.core.exception.SiddhiAppCreationException) Element(org.wso2.siddhi.query.api.annotation.Element) TemplateBuilder(org.wso2.siddhi.core.util.transport.TemplateBuilder)

Aggregations

Test (org.testng.annotations.Test)27 SiddhiAppRuntime (org.wso2.siddhi.core.SiddhiAppRuntime)25 SiddhiManager (org.wso2.siddhi.core.SiddhiManager)25 InputHandler (org.wso2.siddhi.core.stream.input.InputHandler)17 InMemoryBroker (org.wso2.siddhi.core.util.transport.InMemoryBroker)16 Sink (org.wso2.siddhi.core.stream.output.sink.Sink)5 HashMap (java.util.HashMap)4 Logger (org.apache.log4j.Logger)4 UnitTestAppender (org.wso2.siddhi.core.UnitTestAppender)4 Extension (org.wso2.siddhi.query.api.extension.Extension)4 Event (org.wso2.siddhi.core.event.Event)3 SiddhiAppCreationException (org.wso2.siddhi.core.exception.SiddhiAppCreationException)3 Source (org.wso2.siddhi.core.stream.input.source.Source)3 InMemoryConfigManager (org.wso2.siddhi.core.util.config.InMemoryConfigManager)3 OptionHolder (org.wso2.siddhi.core.util.transport.OptionHolder)3 APIPolicy (org.wso2.carbon.apimgt.core.models.policy.APIPolicy)2 RequestCountLimit (org.wso2.carbon.apimgt.core.models.policy.RequestCountLimit)2 ConnectionUnavailableException (org.wso2.siddhi.core.exception.ConnectionUnavailableException)2 SourceHandlerManager (org.wso2.siddhi.core.stream.input.source.SourceHandlerManager)2 SinkHandlerManager (org.wso2.siddhi.core.stream.output.sink.SinkHandlerManager)2