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);
}
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);
}
Aggregations