Class DistributedTransport
- java.lang.Object
-
- io.siddhi.core.stream.output.sink.Sink
-
- io.siddhi.core.stream.output.sink.distributed.DistributedTransport
-
- All Implemented Interfaces:
SinkListener
- Direct Known Subclasses:
MultiClientDistributedSink,SingleClientDistributedSink
public abstract class DistributedTransport extends Sink
This is the base class for Distributed transports. All distributed transport types must inherit from this class
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classDistributedTransport.ConnectionCallbackConnection callback to notify DistributionStrategy about new connection initiations and failures-
Nested classes/interfaces inherited from class io.siddhi.core.stream.output.sink.Sink
Sink.OnErrorAction
-
-
Field Summary
Fields Modifier and Type Field Description protected SiddhiAppContextsiddhiAppContextprotected DistributionStrategystrategyprotected io.siddhi.query.api.definition.StreamDefinitionstreamDefinition-
Fields inherited from class io.siddhi.core.stream.output.sink.Sink
isTryingToConnect
-
-
Constructor Summary
Constructors Constructor Description DistributedTransport()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description String[]getSupportedDynamicOptions()Supported dynamic options by the transportprotected StateFactory<State>init(io.siddhi.query.api.definition.StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext)Will be called for initialing theSinkvoidinit(io.siddhi.query.api.definition.StreamDefinition streamDefinition, String type, OptionHolder transportOptionHolder, ConfigReader sinkConfigReader, SinkMapper sinkMapper, String mapType, OptionHolder mapOptionHolder, SinkHandler sinkHandler, List<io.siddhi.query.api.annotation.Element> payloadElementList, ConfigReader mapperConfigReader, StreamJunction streamJunction, SiddhiAppContext siddhiAppContext, List<OptionHolder> destinationOptionHolders, io.siddhi.query.api.annotation.Annotation sinkAnnotation, DistributionStrategy strategy, String[] supportedDynamicOptions, Map<String,String> deploymentProperties, List<Map<String,String>> destinationDeploymentProperties)This is method contains the additional parameters which require to initialize distributed transportabstract voidinitTransport(OptionHolder sinkOptionHolder, List<OptionHolder> destinationOptionHolders, Map<String,String> deploymentProperties, List<Map<String,String>> destinationDeploymentProperties, io.siddhi.query.api.annotation.Annotation sinkAnnotation, ConfigReader sinkConfigReader, DistributionStrategy strategy, String type, SiddhiAppContext siddhiAppContext)booleanisConnected()voidpublish(Object payload, DynamicOptions transportOptions, State state)Sending events via output transportabstract voidpublish(Object payload, DynamicOptions transportOptions, Integer destinationId, State state)-
Methods inherited from class io.siddhi.core.stream.output.sink.Sink
connect, connectWithRetry, destroy, disconnect, exposeServiceDeploymentInfo, getHandler, getMapper, getServiceDeploymentInfoList, getStreamDefinition, getSupportedInputEventClasses, getType, init, initOnlyTransport, isStateful, onError, publish, retryPublish, setConnected, shutdown
-
-
-
-
Field Detail
-
strategy
protected DistributionStrategy strategy
-
streamDefinition
protected io.siddhi.query.api.definition.StreamDefinition streamDefinition
-
siddhiAppContext
protected SiddhiAppContext siddhiAppContext
-
-
Method Detail
-
init
protected StateFactory<State> init(io.siddhi.query.api.definition.StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext)
Will be called for initialing theSink- Specified by:
initin classSink- Parameters:
outputStreamDefinition- The stream definition this Output transport/sink is attached tooptionHolder- Option holder containing static and dynamic options related to theSinksinkConfigReader- this hold theSinkextensions configuration reader.siddhiAppContext- Context of the siddhi app which this output sink belongs to
-
init
public void init(io.siddhi.query.api.definition.StreamDefinition streamDefinition, String type, OptionHolder transportOptionHolder, ConfigReader sinkConfigReader, SinkMapper sinkMapper, String mapType, OptionHolder mapOptionHolder, SinkHandler sinkHandler, List<io.siddhi.query.api.annotation.Element> payloadElementList, ConfigReader mapperConfigReader, StreamJunction streamJunction, SiddhiAppContext siddhiAppContext, List<OptionHolder> destinationOptionHolders, io.siddhi.query.api.annotation.Annotation sinkAnnotation, DistributionStrategy strategy, String[] supportedDynamicOptions, Map<String,String> deploymentProperties, List<Map<String,String>> destinationDeploymentProperties)This is method contains the additional parameters which require to initialize distributed transport- Parameters:
streamDefinition- Definition of the stream this sink instance is publishing totype- Type of the transport that (e.g., TCP, JMS)transportOptionHolder- Option holder for carrying options for the transportsinkConfigReader- This hold theSinkextensions configuration reader for the sinksinkMapper- Hold the mapper that's used in this sinkmapType- Type of the mappermapOptionHolder- Options of the mappersinkHandler- Sink handler to do optional processingpayloadElementList- The template list of the payload messagesmapperConfigReader- This hold theSinkextensions configuration reader for the mapperstreamJunction-siddhiAppContext- The siddhi app contextdestinationOptionHolders- List of option holders containing the options mentioned in @destinationsinkAnnotation- The annotation of the Sinkstrategy- Publishing strategy to be used by the distributed transportsupportedDynamicOptions- List of supported dynamic optionsdeploymentProperties- Service deployment properties for distributed transport sinkdestinationDeploymentProperties- Service deployment properties
-
publish
public void publish(Object payload, DynamicOptions transportOptions, State state) throws ConnectionUnavailableException
Description copied from class:SinkSending events via output transport- Specified by:
publishin classSink- Parameters:
payload- payload of the eventtransportOptions- of the event constructing the payloadstate- current state of the sink- Throws:
ConnectionUnavailableException- throw when connections are unavailable.
-
isConnected
public boolean isConnected()
- Overrides:
isConnectedin classSink
-
getSupportedDynamicOptions
public String[] getSupportedDynamicOptions()
Supported dynamic options by the transport- Specified by:
getSupportedDynamicOptionsin classSink- Returns:
- the list of supported dynamic option keys
-
publish
public abstract void publish(Object payload, DynamicOptions transportOptions, Integer destinationId, State state) throws ConnectionUnavailableException
- Throws:
ConnectionUnavailableException
-
initTransport
public abstract void initTransport(OptionHolder sinkOptionHolder, List<OptionHolder> destinationOptionHolders, Map<String,String> deploymentProperties, List<Map<String,String>> destinationDeploymentProperties, io.siddhi.query.api.annotation.Annotation sinkAnnotation, ConfigReader sinkConfigReader, DistributionStrategy strategy, String type, SiddhiAppContext siddhiAppContext)
-
-