org.apache.flume.source

## Class AbstractPollableSource

- java.lang.Object
- - org.apache.flume.source.BasicSourceSemantics
  - - org.apache.flume.source.AbstractPollableSource

- All Implemented Interfaces:
    Configurable, LifecycleAware, NamedComponent, PollableSource, Source
  Direct Known Subclasses:
    JMSSource, KafkaSource, SequenceGeneratorSource, StressSource

      @InterfaceAudience.Public
      @InterfaceStability.Evolving
      public abstract class AbstractPollableSource
      extends BasicSourceSemantics
      implements PollableSource

  Base class which ensures sub-classes will inherit all the properties of BasicSourceSemantics in addition to:
  1. Ensuring when configure/start throw an exception process will not be called
  2. Ensure that process will not be called unless configure and start have successfully been called

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.flume.PollableSource

      `PollableSource.Status`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractPollableSource()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configure(Context context)` Request the implementing class to (re)configure itself.
    `protected abstract PollableSource.Status` | `doProcess()`
    `long` | `getBackOffSleepIncrement()`
    `long` | `getMaxBackOffSleepInterval()`
    `PollableSource.Status` | `process()` Attempt to pull an item from the source, sending it to the channel.

    - ### Methods inherited from class org.apache.flume.source.BasicSourceSemantics

      `doConfigure, doStart, doStop, getChannelProcessor, getLifecycleState, getName, getStartException, isStarted, setChannelProcessor, setLifecycleState, setName, start, stop, toString`

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

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

    - ### Methods inherited from interface org.apache.flume.Source

      `getChannelProcessor, setChannelProcessor`

    - ### Methods inherited from interface org.apache.flume.lifecycle.LifecycleAware

      `getLifecycleState, start, stop`

    - ### Methods inherited from interface org.apache.flume.NamedComponent

      `getName, setName`

- - ### Constructor Detail

    - #### AbstractPollableSource

          public AbstractPollableSource()

  - ### Method Detail

    - #### process

          public PollableSource.Status process()
                                        throws EventDeliveryException

      Description copied from interface: `PollableSource`

      Attempt to pull an item from the source, sending it to the channel.

      When driven by an `EventDrivenSourceRunner` process is guaranteed to be called only by a single thread at a time, with no concurrency. Any other mechanism driving a pollable source must follow the same semantics.

      Specified by:
        `process` in interface `PollableSource`
      Returns:
        `READY` if one or more events were created from the source. `BACKOFF` if no events could be created from the source.
      Throws:
        `EventDeliveryException` - If there was a failure in delivering to the attached channel, or if a failure occurred in acquiring data from the source.

    - #### configure

          public void configure(Context context)

      Description copied from interface: `Configurable`

      Request the implementing class to (re)configure itself.

      When configuration parameters are changed, they must be reflected by the component asap.

      There are no thread safety guarantees on when configure might be called.

      Specified by:
        `configure` in interface `Configurable`
      Overrides:
        `configure` in class `BasicSourceSemantics`

    - #### getBackOffSleepIncrement

          public long getBackOffSleepIncrement()

      Specified by:
        `getBackOffSleepIncrement` in interface `PollableSource`

    - #### getMaxBackOffSleepInterval

          public long getMaxBackOffSleepInterval()

      Specified by:
        `getMaxBackOffSleepInterval` in interface `PollableSource`

    - #### doProcess

          protected abstract PollableSource.Status doProcess()
                                                      throws EventDeliveryException

      Throws:
        `EventDeliveryException`

Copyright © 2009-2016 Apache Software Foundation. All Rights Reserved.