/** * 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 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 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"); }
super.init(outputStreamDefinition, optionHolder, configReader, siddhiAppContext); this.outputStreamDefinition = outputStreamDefinition; this.sinkId = optionHolder.validateAndGetStaticValue(HttpConstants.SINK_ID); this.isDownloadEnabled = Boolean.parseBoolean(optionHolder.validateAndGetStaticValue(HttpConstants .DOWNLOAD_ENABLED, HttpConstants.DEFAULT_DOWNLOAD_ENABLED_VALUE)); if (isDownloadEnabled) { this.downloadPath = optionHolder.validateAndGetOption(HttpConstants.DOWNLOAD_PATH); this.tokenURL = optionHolder.validateAndGetStaticValue(HttpConstants.TOKEN_URL, EMPTY_STRING); String userName = optionHolder.validateAndGetStaticValue(HttpConstants.RECEIVER_USERNAME, EMPTY_STRING); String password = optionHolder.validateAndGetStaticValue(HttpConstants.RECEIVER_PASSWORD, EMPTY_STRING); this.consumerKey = optionHolder.validateAndGetStaticValue(HttpConstants.CONSUMER_KEY, EMPTY_STRING); this.consumerSecret = optionHolder.validateAndGetStaticValue(HttpConstants.CONSUMER_SECRET, EMPTY_STRING); String oauthUsername = optionHolder.validateAndGetStaticValue(HttpConstants.RECEIVER_OAUTH_USERNAME, EMPTY_STRING); this.publisherURLOption = optionHolder.validateAndGetOption(HttpConstants.PUBLISHER_URL); String oauthUserPassword = optionHolder.validateAndGetStaticValue(HttpConstants.RECEIVER_OAUTH_PASSWORD, EMPTY_STRING); if (!HttpConstants.EMPTY_STRING.equals(userName) && !HttpConstants.EMPTY_STRING.equals(password)) {
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; } }
/** * 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; } }
SiddhiAppContext siddhiAppContext) { this.streamDefinition = streamDefinition; this.header = Boolean.parseBoolean(optionHolder.getOrCreateOption(HEADER, DEFAULT_HEADER).getValue()); this.eventGroupEnabled = Boolean.valueOf(optionHolder.validateAndGetStaticValue(OPTION_GROUP_EVENTS, DEFAULT_GROUP_EVENTS)); this.delimiter = optionHolder.getOrCreateOption(DELIMITER, DEFAULT_DELIMITER).getValue().charAt(0); headerOfData = new Object[streamDefinition.getAttributeNameArray().length]; if (payloadTemplateBuilderMap == null) {
if (optionHolder.isOptionExists(Constants.DIR_URI)) { dirUri = optionHolder.validateAndGetStaticValue(Constants.DIR_URI); validateURL(dirUri, "dir.uri"); if (optionHolder.isOptionExists(Constants.FILE_URI)) { fileUri = optionHolder.validateAndGetStaticValue(Constants.FILE_URI); validateURL(fileUri, "file.uri"); mode = optionHolder.validateAndGetStaticValue(Constants.MODE, Constants.LINE); tailing = optionHolder.validateAndGetStaticValue(Constants.TAILING, Constants.FALSE); } else { tailing = optionHolder.validateAndGetStaticValue(Constants.TAILING, Constants.TRUE); actionAfterProcess = optionHolder.validateAndGetStaticValue(Constants.ACTION_AFTER_PROCESS, Constants.NONE); } else { actionAfterProcess = optionHolder.validateAndGetStaticValue(Constants.ACTION_AFTER_PROCESS, Constants.DELETE); actionAfterFailure = optionHolder.validateAndGetStaticValue(Constants.ACTION_AFTER_FAILURE, Constants.DELETE); if (optionHolder.isOptionExists(Constants.MOVE_AFTER_PROCESS)) { moveAfterProcess = optionHolder.validateAndGetStaticValue(Constants.MOVE_AFTER_PROCESS); validateURL(moveAfterProcess, "moveAfterProcess"); if (optionHolder.isOptionExists(Constants.MOVE_AFTER_FAILURE)) { moveAfterFailure = optionHolder.validateAndGetStaticValue(Constants.MOVE_AFTER_FAILURE); validateURL(moveAfterFailure, "moveAfterFailure");
@Override protected void init(StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext executionPlanContext) { this.optionHolder = optionHolder; this.destination = optionHolder.getOrCreateOption(DESTINATION, null); this.jmsStaticProperties = initJMSProperties(); this.executorService = executionPlanContext.getExecutorService(); }
/** * 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; }
SiddhiAppContext siddhiAppContext) { this.streamDefinition = streamDefinition; enclosingElement = optionHolder.getOrCreateOption(OPTION_ENCLOSING_ELEMENT, null).getValue(); if (enclosingElement != null) { endingElement = getClosingElement(enclosingElement); Option validateXmlOption = optionHolder.getOrCreateOption(OPTION_VALIDATE_XML, null); if (validateXmlOption != null) { xmlValidationEnabled = Boolean.parseBoolean(validateXmlOption.getValue());
/** * 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 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(); }
String username = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_USERNAME, configReader.readConfig(EmailConstants.MAIL_PUBLISHER_USERNAME, EmailConstants.EMPTY_STRING)); if (username.isEmpty()) { String address = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_ADDRESS, configReader.readConfig(EmailConstants.MAIL_PUBLISHER_ADDRESS, EmailConstants.EMPTY_STRING)); if (address.isEmpty()) { String password = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_PASSWORD, configReader.readConfig(EmailConstants.MAIL_PUBLISHER_PASSWORD, "")); if (password.isEmpty()) { String host = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_HOST_NAME, configReader .readConfig(EmailConstants.MAIL_PUBLISHER_HOST_NAME, EmailConstants.MAIL_PUBLISHER_DEFAULT_HOST)); initProperties.put(EmailConstants.TRANSPORT_MAIL_PUBLISHER_HOST_NAME, host); String sslEnable = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_SSL_ENABLE, configReader.readConfig(EmailConstants.MAIL_PUBLISHER_SSL_ENABLE, EmailConstants.MAIL_PUBLISHER_DEFAULT_SSL_ENABLE)); String auth = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_AUTH, configReader.readConfig(EmailConstants.MAIL_PUBLISHER_AUTH, EmailConstants.MAIL_PUBLISHER_DEFAULT_AUTH)); String port = optionHolder.validateAndGetStaticValue(EmailConstants.MAIL_PUBLISHER_PORT, configReader.readConfig(EmailConstants.MAIL_PUBLISHER_PORT, EmailConstants.EMPTY_STRING)); if (!optionHolder.isOptionExists(EmailConstants.TO)) { String to = configReader.readConfig(EmailConstants.TO, EmailConstants.EMPTY_STRING);
Set<String> staticOptionsKeys = optionHolder.getStaticOptionsKeys(); staticOptionsKeys.remove("type"); boolean customMappingEnabled = staticOptionsKeys.size() > 0; if (customMappingEnabled) { staticOptionsKeys.forEach((key) -> mappedAttributes.put(optionHolder.validateAndGetStaticValue(key), key));
@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 streamDefinition, OptionHolder optionHolder, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.streamDefinition = streamDefinition; this.brokerURL = optionHolder.validateAndGetStaticValue(MqttConstants.MQTT_BROKER_URL); this.clientId = optionHolder.validateAndGetStaticValue(MqttConstants.CLIENT_ID, MqttConstants.EMPTY_STRING); this.topicOption = optionHolder.validateAndGetOption(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.getOrCreateOption(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.messageRetainOption = optionHolder.getOrCreateOption(MqttConstants.MQTT_MESSAGE_RETAIN, MqttConstants.DEFAULT_MESSAGE_RETAIN); this.cleanSession = Boolean.parseBoolean(optionHolder.validateAndGetStaticValue (MqttConstants.CLEAN_SESSION, MqttConstants.DEFAULT_CLEAN_SESSION)); }
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(); }
ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.streamDefinition = streamDefinition; this.publisherURI = optionHolder.validateAndGetStaticValue(RabbitMQConstants.RABBITMQ_SERVER_URI); this.heartbeat = Integer.parseInt(optionHolder.validateAndGetStaticValue(RabbitMQConstants.RABBITMQ_HEARTBEAT, RabbitMQConstants.DEFAULT_HEARTBEAT)); this.exchangeNameOption = optionHolder.validateAndGetOption(RabbitMQConstants.RABBITMQ_EXCHANGE_NAME); this.exchangeTypeOption = optionHolder.getOrCreateOption (RabbitMQConstants.RABBITMQ_EXCHANGE_TYPE, RabbitMQConstants.DEFAULT_EXCHANGE_TYPE); this.tlsTruststoreLocation = optionHolder.validateAndGetStaticValue (RabbitMQConstants.RABBITMQ_CONNECTION_TLS_TRUSTSTORE_LOCATION, RabbitMQSinkUtil.getTrustStorePath(configReader)); this.tlsTruststorePassword = optionHolder.validateAndGetStaticValue (RabbitMQConstants.RABBITMQ_CONNECTION_TLS_TRUSTSTORE_PASSWORD, RabbitMQSinkUtil.getTrustStorePassword(configReader)); this.tlsTruststoreType = optionHolder.validateAndGetStaticValue (RabbitMQConstants.RABBITMQ_CONNECTION_TLS_TRUSTSTORE_TYPE, RabbitMQConstants.DEFAULT_TLS_TRUSTSTORE_TYPE); this.tlsVersion = optionHolder.validateAndGetStaticValue(RabbitMQConstants.RABBITMQ_CONNECTION_TLS_VERSION, RabbitMQConstants.DEFAULT_TLS_VERSION); this.exchangeDurableAsStringOption = optionHolder.getOrCreateOption (RabbitMQConstants.RABBITMQ_EXCHANGE_DURABLE, RabbitMQConstants.DEFAULT_EXCHANGE_DURABLE); this.exchangeAutoDeleteAsStringOption = optionHolder.getOrCreateOption (RabbitMQConstants.RABBITMQ_EXCHANGE_AUTO_DELETE, RabbitMQConstants.DEFAULT_EXCHANGE_AUTODELETE); this.deliveryMode = Integer.parseInt(optionHolder.validateAndGetStaticValue (RabbitMQConstants.RABBITMQ_DELIVERY_MODE,
@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"); } }