Class FluxShellSpout

java.lang.Object
org.apache.storm.spout.ShellSpout
org.apache.storm.flux.wrappers.spouts.FluxShellSpout
All Implemented Interfaces:
Serializable, ISpout, IComponent, IRichSpout

public class FluxShellSpout extends ShellSpout implements IRichSpout
A generic `ShellSpout` implementation that allows you specify output fields and even streams without having to subclass `ShellSpout` to do so.
See Also:
  • Constructor Details

    • FluxShellSpout

      public FluxShellSpout(String[] command)
      Create a ShellSpout with command line arguments.
      Parameters:
      command - Command line arguments for the bolt
    • FluxShellSpout

      public FluxShellSpout(String[] args, String[] outputFields)
      Create a ShellSpout with command line arguments and output fields

      Keep this constructor for backward compatibility.

      Parameters:
      args - Command line arguments for the spout
      outputFields - Names of fields the spout will emit.
  • Method Details

    • addComponentConfig

      public void addComponentConfig(String key, Object value)
      Add configuration for this spout. This method is called from YAML file:

      ``` className: "org.apache.storm.flux.wrappers.bolts.FluxShellSpout" constructorArgs: # command line - ["python3", "splitsentence.py"] # output fields - ["word"] configMethods: - name: "addComponentConfig" args: ["publisher.data_paths", "actions"] ```
      Parameters:
      key - config key
      value - config value
    • addComponentConfig

      public void addComponentConfig(String key, List<Object> values)
      Add configuration for this spout. This method is called from YAML file:

      ``` className: "org.apache.storm.flux.wrappers.bolts.FluxShellSpout" constructorArgs: # command line - ["python3", "splitsentence.py"] # output fields - ["word"] configMethods: - name: "addComponentConfig" args: - "publisher.data_paths" - ["actions"] ```

      Parameters:
      key - config key
      values - config values
    • setDefaultStream

      public void setDefaultStream(String[] outputFields)
      Set default stream outputFields, this method is called from YAML file:

      ``` spouts: - className: org.apache.storm.flux.wrappers.bolts.FluxShellSpout id: my_spout constructorArgs: - [python3, my_spout.py] configMethods: - name: setDefaultStream args: - [word, count] ```

      Parameters:
      outputFields - Names of fields the spout will emit (if any) in default stream.
    • setNamedStream

      public void setNamedStream(String name, String[] outputFields)
      Set custom *named* stream outputFields, this method is called from YAML file:

      ``` spouts: - className: org.apache.storm.flux.wrappers.bolts.FluxShellSpout id: my_spout constructorArgs: - [python3, my_spout.py] configMethods: - name: setNamedStream args: - first - [word, count] ```

      Parameters:
      name - Name of stream the spout will emit into.
      outputFields - Names of fields the spout will emit in custom *named* stream.
    • declareOutputFields

      public void declareOutputFields(OutputFieldsDeclarer declarer)
      Description copied from interface: IComponent
      Declare the output schema for all the streams of this topology.
      Specified by:
      declareOutputFields in interface IComponent
      Parameters:
      declarer - this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream
    • getComponentConfiguration

      public Map<String,Object> getComponentConfiguration()
      Description copied from interface: IComponent
      Declare configuration specific to this component. Only a subset of the "topology.*" configs can be overridden. The component configuration can be further overridden when constructing the topology using TopologyBuilder
      Specified by:
      getComponentConfiguration in interface IComponent