private Kafka2TupleMetadata buildAggregationDatasource() { Kafka2TupleMetadata datasource = new Kafka2TupleMetadata(); datasource.setName(NODATA_ALERT_AGGR_DATASOURCE_NAME); datasource.setType(DATASOURCE_TYPE); datasource.setSchemeCls(DATASOURCE_SCHEME_CLS); datasource.setTopic(NODATA_ALERT_AGGR_TOPIC_NAME); Tuple2StreamMetadata codec = new Tuple2StreamMetadata(); codec.setStreamNameSelectorCls(JSON_STRING_STREAM_NAME_SELECTOR_CLS); codec.setTimestampColumn(STREAM_TIMESTAMP_COLUMN_NAME); codec.setTimestampFormat(STREAM_TIMESTAMP_FORMAT); Properties codecProperties = new Properties(); codecProperties.put("userProvidedStreamName", NODATA_ALERT_AGGR_STREAM); codecProperties.put("streamNameFormat", "%s"); codec.setStreamNameSelectorProp(codecProperties); datasource.setCodec(codec); return datasource; }
private Kafka2TupleMetadata buildAggregationOutputDatasource() { Kafka2TupleMetadata datasource = new Kafka2TupleMetadata(); datasource.setName(NODATA_ALERT_AGGR_OUTPUT_DATASOURCE_NAME); datasource.setType(DATASOURCE_TYPE); datasource.setSchemeCls(DATASOURCE_SCHEME_CLS); datasource.setTopic(NODATA_ALERT_AGGR_OUTPUT_TOPIC_NAME); Tuple2StreamMetadata codec = new Tuple2StreamMetadata(); codec.setStreamNameSelectorCls(JSON_STRING_STREAM_NAME_SELECTOR_CLS); codec.setTimestampColumn(STREAM_TIMESTAMP_COLUMN_NAME); codec.setTimestampFormat(STREAM_TIMESTAMP_FORMAT); Properties codecProperties = new Properties(); codecProperties.put("userProvidedStreamName", NODATA_ALERT_AGGR_OUTPUT_STREAM); codecProperties.put("streamNameFormat", "%s"); codec.setStreamNameSelectorProp(codecProperties); datasource.setCodec(codec); return datasource; }
public void validateAndEnsureDefault() { Preconditions.checkNotNull(streamSource); Preconditions.checkNotNull(streamDefinition); if (streamSource.getType() == null) { streamSource.setType("KAFKA"); } String dataSourceName = (getStreamDefinition().getStreamId() + "_CUSTOMIZED").toUpperCase(); getStreamDefinition().setDataSource(dataSourceName); getStreamSource().setName(dataSourceName); Tuple2StreamMetadata codec = new Tuple2StreamMetadata(); codec.setTimestampColumn("timestamp"); codec.setStreamNameSelectorCls(JsonStringStreamNameSelector.class.getName()); Properties streamNameSelectorProp = new Properties(); streamNameSelectorProp.put("userProvidedStreamName", streamSource.getName()); codec.setStreamNameSelectorProp(streamNameSelectorProp); if (StringUtils.isBlank(codec.getStreamNameSelectorCls())) { codec.setStreamNameSelectorCls(JsonStringStreamNameSelector.class.getName()); } if (StringUtils.isBlank(codec.getTimestampFormat())) { codec.setTimestampFormat(null); } this.streamSource.setCodec(codec); } }
@SuppressWarnings( {"unchecked", "rawtypes"}) @Test public void test() { Tuple2StreamMetadata metadata = new Tuple2StreamMetadata(); Set activeStreamNames = new HashSet<>(); activeStreamNames.add("defaultStringStream"); metadata.setStreamNameSelectorCls("org.apache.eagle.alert.engine.scheme.PlainStringStreamNameSelector"); metadata.setStreamNameSelectorProp(new Properties()); metadata.getStreamNameSelectorProp().put("userProvidedStreamName", "defaultStringStream"); metadata.setActiveStreamNames(activeStreamNames); metadata.setTimestampColumn("timestamp"); Tuple2StreamConverter convert = new Tuple2StreamConverter(metadata); String topic = "testTopic"; Map m = new HashMap<>(); m.put("value", "IAmPlainString"); long t = System.currentTimeMillis(); m.put("timestamp", t); List<Object> ret = convert.convert(Arrays.asList(topic, m)); Assert.assertEquals(topic, ret.get(0)); Assert.assertEquals("defaultStringStream", ret.get(1)); Assert.assertEquals(t, ret.get(2)); Assert.assertEquals(m, ret.get(3)); } }
@Test public void testTuple2StreamMetadata() { Tuple2StreamMetadata metadata = new Tuple2StreamMetadata(); Set activeStreamNames = new HashSet<>(); activeStreamNames.add("defaultStringStream"); metadata.setStreamNameSelectorCls("org.apache.eagle.alert.engine.scheme.PlainStringStreamNameSelector"); metadata.setStreamNameSelectorProp(new Properties()); metadata.getStreamNameSelectorProp().put("userProvidedStreamName", "defaultStringStream"); metadata.setActiveStreamNames(activeStreamNames); metadata.setTimestampColumn("timestamp"); Tuple2StreamMetadata metadata1 = new Tuple2StreamMetadata(); Set activeStreamNames1 = new HashSet<>(); activeStreamNames1.add("defaultStringStream"); metadata1.setStreamNameSelectorCls("org.apache.eagle.alert.engine.scheme.PlainStringStreamNameSelector"); metadata1.setStreamNameSelectorProp(new Properties()); metadata1.getStreamNameSelectorProp().put("userProvidedStreamName", "defaultStringStream"); metadata1.setActiveStreamNames(activeStreamNames1); metadata1.setTimestampColumn("timestamp"); Assert.assertFalse(metadata == metadata1); Assert.assertFalse(metadata.equals(metadata1)); Assert.assertFalse(metadata.hashCode() == metadata1.hashCode()); } }
Properties prop = new Properties(); prop.put(JsonStringStreamNameSelector.USER_PROVIDED_STREAM_NAME_PROPERTY, streamDesc.getStreamId()); tuple2Stream.setStreamNameSelectorProp(prop); tuple2Stream.setTimestampColumn("timestamp"); tuple2Stream.setStreamNameSelectorCls(JsonStringStreamNameSelector.class.getCanonicalName());
activeStreamNames.add(streamId); tuple2StreamMetadata.setStreamNameSelectorCls("org.apache.eagle.alert.engine.scheme.PlainStringStreamNameSelector"); tuple2StreamMetadata.setStreamNameSelectorProp(new Properties()); tuple2StreamMetadata.getStreamNameSelectorProp().put("userProvidedStreamName", streamId); tuple2StreamMetadata.setActiveStreamNames(activeStreamNames); activeStreamNames.add(streamId); tuple2StreamMetadata.setStreamNameSelectorCls("org.apache.eagle.alert.engine.scheme.JsonStringStreamNameSelector"); tuple2StreamMetadata.setStreamNameSelectorProp(new Properties()); tuple2StreamMetadata.getStreamNameSelectorProp().put("userProvidedStreamName", streamId); tuple2StreamMetadata.setActiveStreamNames(activeStreamNames);