/** * The initialization method for {@link Source}, will be called before other methods. It used to validate * all configurations and to get initial values. * @param sourceEventListener After receiving events, the source should trigger onEvent() of this listener. * Listener will then pass on the events to the appropriate mappers for processing . * @param optionHolder Option holder containing static configuration related to the {@link Source} * @param configReader ConfigReader is used to read the {@link Source} related system configuration. * @param siddhiAppContext the context of the {@link org.wso2.siddhi.query.api.SiddhiApp} used to get Siddhi * related utility functions. */ @Override public void init(SourceEventListener sourceEventListener, OptionHolder optionHolder, String[] requestedTransportPropertyNames, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.sourceEventListener = sourceEventListener; this.optionHolder = optionHolder; streamId = optionHolder.validateAndGetStaticValue("wso2.stream.id", null); }
/** * The initialization method for {@link Source}, will be called before other methods. It used to validate * all configurations and to get initial values. * @param sourceEventListener After receiving events, the source should trigger onEvent() of this listener. * Listener will then pass on the events to the appropriate mappers for processing . * @param optionHolder Option holder containing static configuration related to the {@link Source} * @param configReader ConfigReader is used to read the {@link Source} related system configuration. * @param siddhiAppContext the context of the {@link org.wso2.siddhi.query.api.SiddhiApp} used to get Siddhi * related utility functions. */ @Override public void init(SourceEventListener sourceEventListener, OptionHolder optionHolder, String[] requestedTransportPropertyNames, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.sourceEventListener = sourceEventListener; this.optionHolder = optionHolder; streamId = optionHolder.validateAndGetStaticValue("wso2.stream.id", null); }
@Override public void init(SourceEventListener sourceEventListener, OptionHolder optionHolder, String[] strings, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { siddhiAppName = siddhiAppContext.getName(); this.brokerURL = optionHolder.validateAndGetStaticValue(MqttConstants.MQTT_BROKER_URL); this.clientId = optionHolder.validateAndGetStaticValue(MqttConstants.CLIENT_ID, MqttConstants.EMPTY_STRING); this.topicOption = optionHolder.validateAndGetStaticValue(MqttConstants.MESSAGE_TOPIC); this.userName = optionHolder.validateAndGetStaticValue(MqttConstants.MQTT_BROKER_USERNAME, MqttConstants.DEFAULT_USERNAME); this.userPassword = optionHolder.validateAndGetStaticValue(MqttConstants.MQTT_BROKER_PASSWORD, MqttConstants.EMPTY_STRING); this.qosOption = optionHolder.validateAndGetStaticValue(MqttConstants.MESSAGE_QOS, MqttConstants.DEFAULT_QOS); this.keepAlive = Integer.parseInt(optionHolder.validateAndGetStaticValue (MqttConstants.CONNECTION_KEEP_ALIVE_INTERVAL, MqttConstants.DEFAULT_CONNECTION_KEEP_ALIVE_INTERVAL)); this.connectionTimeout = Integer.parseInt(optionHolder.validateAndGetStaticValue (MqttConstants.CONNECTION_TIMEOUT_INTERVAL, MqttConstants.DEFAULT_CONNECTION_TIMEOUT_INTERVAL)); this.cleanSession = Boolean.parseBoolean(optionHolder.validateAndGetStaticValue (MqttConstants.CLEAN_SESSION, MqttConstants.DEFAULT_CLEAN_SESSION)); this.mqttConsumer = new MqttConsumer(sourceEventListener); }
@Override protected void init(StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext) { bootstrapServers = optionHolder.validateAndGetStaticValue(KAFKA_BROKER_LIST); optionalConfigs = optionHolder.validateAndGetStaticValue(KAFKA_OPTIONAL_CONFIGURATION_PROPERTIES, null); topicOption = optionHolder.validateAndGetOption(KAFKA_PUBLISH_TOPIC); partitionOption = optionHolder.getOrCreateOption(KAFKA_PARTITION_NO, null); sequenceId = optionHolder.validateAndGetStaticValue(SEQ_ID, null); isBinaryMessage = Boolean.parseBoolean(optionHolder.validateAndGetStaticValue(IS_BINARY_MESSAGE, "false")); isSequenced = sequenceId != null; keyOption = optionHolder.getOrCreateOption(KAFKA_MESSAGE_KEY, null); }
protected void initSource(SourceEventListener sourceEventListener, OptionHolder optionHolder, String[] requestedTransportPropertyNames, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { super.initSource(sourceEventListener, optionHolder, requestedTransportPropertyNames, configReader, siddhiAppContext); this.sourceId = optionHolder.validateAndGetStaticValue(HttpConstants.SOURCE_ID); this.connectionTimeout = Long.parseLong( optionHolder.validateAndGetStaticValue(HttpConstants.CONNECTION_TIMEOUT, "120000")); siddhiAppName = siddhiAppContext.getName(); }
@Override protected void init(StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext) { super.init(outputStreamDefinition, optionHolder, sinkConfigReader, siddhiAppContext); topic = optionHolder.validateAndGetStaticValue(KAFKA_PUBLISH_TOPIC); partitionNo = Integer.parseInt(optionHolder.validateAndGetStaticValue(KAFKA_PARTITION_NO, "0")); if (bootstrapServers.split(",").length != 2) { throw new SiddhiAppValidationException("There should be two servers listed in 'bootstrap.servers' " + "configuration"); } }
@Override public void disconnect() { if (consumerKafkaGroup != null) { consumerKafkaGroup.shutdown(); LOG.info("Kafka Adapter disconnected for topic(s): " + optionHolder.validateAndGetStaticValue(ADAPTOR_SUBSCRIBER_TOPIC)); } }
@Override public void pause() { if (consumerKafkaGroup != null) { consumerKafkaGroup.pause(); LOG.info("Kafka Adapter paused for topic(s): " + optionHolder.validateAndGetStaticValue (ADAPTOR_SUBSCRIBER_TOPIC)); } }
@Override public void resume() { if (consumerKafkaGroup != null) { consumerKafkaGroup.resume(); if (LOG.isDebugEnabled()) { LOG.debug("Kafka Adapter resumed for topic(s): " + optionHolder.validateAndGetStaticValue (ADAPTOR_SUBSCRIBER_TOPIC)); } } }
@Override public void init(SourceEventListener sourceEventListener, OptionHolder optionHolder, String[] requestedTransportPropertyNames, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.sourceEventListener = sourceEventListener; this.requestedTransportPropertyNames = requestedTransportPropertyNames.clone(); this.sinkId = optionHolder.validateAndGetStaticValue(HttpConstants.SINK_ID); this.httpConnectorRegistry = HttpResponseSourceConnectorRegistry.getInstance(); this.siddhiAppName = siddhiAppContext.getName(); this.workerThread = optionHolder .validateAndGetStaticValue(HttpConstants.WORKER_COUNT, DEFAULT_WORKER_COUNT); this.httpStatusCode = optionHolder.validateAndGetStaticValue(HttpConstants.HTTP_STATUS_CODE, HttpConstants.DEFAULT_HTTP_SUCCESS_CODE); this.shouldAllowStreamingResponses = Boolean.parseBoolean( optionHolder.validateAndGetStaticValue(HttpConstants.ALLOW_STREAMING_RESPONSES, HttpConstants.FALSE)); }
private OptionHolder createOptionHolders(String server, OptionHolder originalOptionHolder) { Map<String, String> options = new HashMap<>(); options.put(KafkaSource.ADAPTOR_SUBSCRIBER_ZOOKEEPER_CONNECT_SERVERS, server); options.put(KafkaSource.ADAPTOR_SUBSCRIBER_GROUP_ID, UUID.randomUUID().toString()); options.put(KafkaSource.THREADING_OPTION, KafkaSource.SINGLE_THREADED); options.put(KafkaSource.SEQ_ENABLED, "false"); String partition = originalOptionHolder.validateAndGetStaticValue(KAFKA_PARTITION_NO, "0"); options.put(KafkaSource.ADAPTOR_SUBSCRIBER_PARTITION_NO_LIST, partition); String topic = originalOptionHolder.validateAndGetStaticValue(KAFKA_TOPIC); options.put(KafkaSource.ADAPTOR_SUBSCRIBER_TOPIC, topic); String optionalConfigs = originalOptionHolder.validateAndGetStaticValue( KafkaSource.ADAPTOR_OPTIONAL_CONFIGURATION_PROPERTIES, null); options.put(KafkaSource.ADAPTOR_OPTIONAL_CONFIGURATION_PROPERTIES, optionalConfigs); String isBinaryMessage = originalOptionHolder.validateAndGetStaticValue(KafkaSource.IS_BINARY_MESSAGE, "false"); options.put(KafkaSource.IS_BINARY_MESSAGE, isBinaryMessage); Extension extension = KafkaSource.class.getAnnotation(org.wso2.siddhi.annotation.Extension.class); OptionHolder holder = new OptionHolder(eventListener.getStreamDefinition(), options, new HashMap<>(), extension); return holder; } }
protected void initConnectorRegistry(OptionHolder optionHolder, ConfigReader configReader) { String requestSizeValidationConfigList = optionHolder .validateAndGetStaticValue(HttpConstants.REQUEST_SIZE_VALIDATION_CONFIG, HttpConstants.EMPTY_STRING); String serverBootstrapPropertiesList = optionHolder .validateAndGetStaticValue(HttpConstants.SERVER_BOOTSTRAP_CONFIGURATION, HttpConstants.EMPTY_STRING); this.httpConnectorRegistry = HttpConnectorRegistry.getInstance(); this.httpConnectorRegistry.initBootstrapConfigIfFirst(configReader); this.httpConnectorRegistry.setTransportConfig(serverBootstrapPropertiesList, requestSizeValidationConfigList); }
protected void initConnectorRegistry(OptionHolder optionHolder, ConfigReader configReader) { String requestSizeValidationConfigList = optionHolder .validateAndGetStaticValue(HttpConstants.REQUEST_SIZE_VALIDATION_CONFIG, HttpConstants.EMPTY_STRING); String serverBootstrapPropertiesList = optionHolder .validateAndGetStaticValue(HttpConstants.SERVER_BOOTSTRAP_CONFIGURATION, HttpConstants.EMPTY_STRING); this.httpConnectorRegistry = HttpSyncConnectorRegistry.getInstance(); this.httpConnectorRegistry.initBootstrapConfigIfFirst(configReader); this.httpConnectorRegistry.setTransportConfig(serverBootstrapPropertiesList, requestSizeValidationConfigList); }
@Override protected void init(StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext) { kafkaConnect = optionHolder.validateAndGetStaticValue(KAFKA_BROKER_LIST); optionalConfigs = optionHolder.validateAndGetStaticValue(KAFKA_OPTIONAL_CONFIGURATION_PROPERTIES, null); topicOption = optionHolder.validateAndGetOption(KAFKA_PUBLISH_TOPIC); partitionOption = optionHolder.getOrCreateOption(KAFKA_PARTITION_NO, null); executorService = siddhiAppContext.getScheduledExecutorService(); }
/** * Initializing JMS properties. * The properties in the required options list are mandatory. * Other JMS options can be passed in as key value pairs, key being in the JMS spec or the broker spec. * * @return all the options map. */ private Map<String, String> initJMSProperties() { Map<String, String> carbonPropertyMapping = JMSOptionsMapper.getCarbonPropertyMapping(); List<String> requiredOptions = JMSOptionsMapper.getRequiredOptions(); // getting the required values Map<String, String> transportProperties = new HashMap<>(); requiredOptions.forEach(requiredOption -> transportProperties.put(carbonPropertyMapping.get(requiredOption), optionHolder.validateAndGetStaticValue(requiredOption))); // getting optional values optionHolder.getStaticOptionsKeys().stream() .filter(option -> !requiredOptions.contains(option) && !option.equals("type")) .forEach(option -> transportProperties.put( carbonPropertyMapping.get(option) == null ? option : carbonPropertyMapping.get(option), optionHolder.validateAndGetStaticValue(option))); return transportProperties; }
/** * Initializing JMS properties. * The properties in the required options list are mandatory. * Other JMS options can be passed in as key value pairs, key being in the JMS spec or the broker spec. * * @return all the options map. */ private Map<String, String> initJMSProperties() { List<String> requiredOptions = JMSOptionsMapper.getRequiredOptions(); Map<String, String> customPropertyMapping = JMSOptionsMapper.getCarbonPropertyMapping(); // getting the required values Map<String, String> transportProperties = new HashMap<>(); requiredOptions.forEach(requiredOption -> transportProperties.put(customPropertyMapping.get(requiredOption), optionHolder.validateAndGetStaticValue(requiredOption))); // getting optional values optionHolder.getStaticOptionsKeys().stream() .filter(option -> !requiredOptions.contains(option) && !option.equals("type")).forEach(option -> transportProperties.put(customPropertyMapping.get(option), optionHolder.validateAndGetStaticValue (option))); return transportProperties; } }
protected void init(StreamDefinition streamDefinition, OptionHolder optionHolder, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.siddhiAppContext = siddhiAppContext; uriOption = optionHolder.validateAndGetOption(Constants.FILE_URI); String append = optionHolder.validateAndGetStaticValue(Constants.APPEND, Constants.TRUE); properties = new HashMap<>(); properties.put(Constants.ACTION, Constants.WRITE); if (Constants.TRUE.equalsIgnoreCase(append)) { properties.put(Constants.APPEND, append); } String mapType = streamDefinition.getAnnotations().get(0).getAnnotations().get(0).getElements().get(0) .getValue(); addEventSeparator = optionHolder.isOptionExists(Constants.ADD_EVENT_SEPARATOR) ? Boolean.parseBoolean(optionHolder.validateAndGetStaticValue(Constants.ADD_EVENT_SEPARATOR)) : !mapType.equalsIgnoreCase("csv"); }
@Override public void init(StreamDefinition streamDefinition, OptionHolder optionHolder, Map<String, TemplateBuilder> payloadTemplateBuilderMap, ConfigReader mapperConfigReader, SiddhiAppContext siddhiAppContext) { this.streamID = streamDefinition.getId(); this.attributeList = streamDefinition.getAttributeList(); this.eventGroupEnabled = Boolean.valueOf(optionHolder .validateAndGetStaticValue(OPTION_GROUP_EVENTS, DEFAULT_GROUP_EVENTS)); this.endOfLine = optionHolder.validateAndGetStaticValue(OPTION_NEW_LINE, DEFAULT_NEW_LINE); this.eventDelimiter = optionHolder.validateAndGetStaticValue(OPTION_GROUP_EVENTS_DELIMITER, DEFAULT_EVENTS_DELIMITER) + endOfLine; //if @payload() is added there must be at least 1 element in it, otherwise a SiddhiParserException raised if (payloadTemplateBuilderMap != null && payloadTemplateBuilderMap.size() != 1) { throw new SiddhiAppCreationException("Text sink-mapper does not support multiple @payload mappings, " + "error at the mapper of '" + streamDefinition.getId() + "'"); } if (payloadTemplateBuilderMap != null && payloadTemplateBuilderMap.get(payloadTemplateBuilderMap.keySet().iterator().next()).isObjectMessage()) { throw new SiddhiAppCreationException("Text sink-mapper does not support object @payload mappings, " + "error at the mapper of '" + streamDefinition.getId() + "'"); } }
@Override public void init(StreamDefinition streamDefinition, OptionHolder optionHolder, List<AttributeMapping> attributeMappingList, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.streamDefinition = streamDefinition; this.attributeMappingList = attributeMappingList; this.streamAttributes = this.streamDefinition.getAttributeList(); this.attributesSize = this.streamDefinition.getAttributeList().size(); this.failOnMissingAttribute = Boolean.parseBoolean(optionHolder. validateAndGetStaticValue(FAIL_ON_MISSING_ATTRIBUTE_IDENTIFIER, "true")); if (attributeMappingList != null && attributeMappingList.size() > 0) { customMapping = true; } else { this.attributeMappingList = new ArrayList<>(streamDefinition.getAttributeList().size()); for (int i = 0; i < attributesSize; i++) { String name = this.streamDefinition.getAttributeList().get(i).getName(); this.attributeMappingList.add(new AttributeMapping(name, i, name)); } } }
/** * The initialization method for {@link Sink}, which will be called before other methods and validate * the all configuration and getting the intial values. * * @param outputStreamDefinition containing stream definition bind to the {@link Sink} * @param optionHolder Option holder containing static and dynamic configuration related * to the {@link Sink} * @param configReader to read the sink related system configuration. * @param siddhiAppContext the context of the {@link org.wso2.siddhi.query.api.SiddhiApp} used to * get siddhi related utilty functions. */ @Override protected void init(StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { //read configurations this.messageIdOption = optionHolder.validateAndGetOption(HttpConstants.MESSAGE_ID); this.sourceId = optionHolder.validateAndGetStaticValue(HttpConstants.SOURCE_ID); this.httpHeaderOption = optionHolder.getOrCreateOption(HttpConstants.HEADERS, HttpConstants.DEFAULT_HEADER); this.mapType = outputStreamDefinition.getAnnotations().get(0).getAnnotations().get(0).getElements().get(0) .getValue(); }