org.apache.storm.flux.wrappers.spouts

## 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:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.apache.storm.spout.ShellSpout

      `LOG`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FluxShellSpout(String[] command)` Create a ShellSpout with command line arguments.
    `FluxShellSpout(String[] args, String[] outputFields)` Create a ShellSpout with command line arguments and output fields Keep this constructor for backward compatibility.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addComponentConfig(String key, List<Object> values)` Add configuration for this spout.
    `void` | `addComponentConfig(String key, Object value)` Add configuration for this spout.
    `void` | `declareOutputFields(OutputFieldsDeclarer declarer)` Declare the output schema for all the streams of this topology.
    `Map<String,Object>` | `getComponentConfiguration()` Declare configuration specific to this component.
    `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: - [python, my_spout.py] configMethods: - name: setDefaultStream args: - [word, count]`
    `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: - [python, my_spout.py] configMethods: - name: setNamedStream args: - first - [word, count]`

    - ### Methods inherited from class org.apache.storm.spout.ShellSpout

      `ack, activate, changeChildCWD, close, deactivate, fail, nextTuple, open, setEnv, shouldChangeChildCWD`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.storm.spout.ISpout

      `ack, activate, close, deactivate, fail, nextTuple, open`

- - ### Constructor Detail

    - #### 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 Detail

    - #### 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 - ["python", "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 - ["python", "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: - [python, 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: - [python, 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`

Copyright © 2021 The Apache Software Foundation. All rights reserved.