org.apache.cxf.endpoint

## Class AbstractConduitSelector

- java.lang.Object
- - org.apache.cxf.endpoint.AbstractConduitSelector

- All Implemented Interfaces:
    Closeable, AutoCloseable, ConduitSelector
  Direct Known Subclasses:
    DeferredConduitSelector, UpfrontConduitSelector

      public abstract class AbstractConduitSelector
      extends Object
      implements ConduitSelector, Closeable

  Abstract base class holding logic common to any ConduitSelector that retrieves a Conduit from the ConduitInitiator.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CONDUIT_COMPARE_FULL_URL`
    `protected List<Conduit>` | `conduits`
    `protected Endpoint` | `endpoint`
    `protected static String` | `KEEP_CONDUIT_ALIVE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractConduitSelector()`
    `AbstractConduitSelector(Conduit c)` Constructor, allowing a specific conduit to override normal selection.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `void` | `complete(Exchange exchange)` Called on completion of the MEP for which the Conduit was required.
    `protected Conduit` | `createConduit(Message message, Exchange exchange, ConduitInitiator conduitInitiator)`
    `protected Conduit` | `findCompatibleConduit(Message message)` If address protocol was changed, conduit should be re-initialised
    `Endpoint` | `getEndpoint()`
    `protected abstract Logger` | `getLogger()`
    `protected Conduit` | `getSelectedConduit(Message message)` Mechanics to actually get the Conduit from the ConduitInitiator if necessary.
    `protected void` | `removeConduit(Conduit conduit)`
    `protected boolean` | `replaceEndpointAddressPropertyIfNeeded(Message message, String endpointAddress, Conduit cond)`
    `void` | `setEndpoint(Endpoint ep)`

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

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

    - ### Methods inherited from interface org.apache.cxf.endpoint.ConduitSelector

      `prepare, selectConduit`

- - ### Field Detail

    - #### CONDUIT_COMPARE_FULL_URL

          public static final String CONDUIT_COMPARE_FULL_URL

      See Also:
        Constant Field Values

    - #### KEEP_CONDUIT_ALIVE

          protected static final String KEEP_CONDUIT_ALIVE

      See Also:
        Constant Field Values

    - #### conduits

          protected List<Conduit> conduits

    - #### endpoint

          protected Endpoint endpoint

  - ### Constructor Detail

    - #### AbstractConduitSelector

          public AbstractConduitSelector()

    - #### AbstractConduitSelector

          public AbstractConduitSelector(Conduit c)

      Constructor, allowing a specific conduit to override normal selection.
      Parameters:
        `c` - specific conduit

  - ### Method Detail

    - #### close

          public void close()

      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`

    - #### removeConduit

          protected void removeConduit(Conduit conduit)

    - #### getSelectedConduit

          protected Conduit getSelectedConduit(Message message)

      Mechanics to actually get the Conduit from the ConduitInitiator if necessary.
      Parameters:
        `message` - the current Message

    - #### createConduit

          protected Conduit createConduit(Message message,
                                          Exchange exchange,
                                          ConduitInitiator conduitInitiator)
                                   throws IOException

      Throws:
        `IOException`

    - #### replaceEndpointAddressPropertyIfNeeded

          protected boolean replaceEndpointAddressPropertyIfNeeded(Message message,
                                                                   String endpointAddress,
                                                                   Conduit cond)

    - #### getEndpoint

          public Endpoint getEndpoint()

      Specified by:
        `getEndpoint` in interface `ConduitSelector`
      Returns:
        the encapsulated Endpoint

    - #### setEndpoint

          public void setEndpoint(Endpoint ep)

      Specified by:
        `setEndpoint` in interface `ConduitSelector`
      Parameters:
        `ep` - the endpoint to encapsulate

    - #### complete

          public void complete(Exchange exchange)

      Called on completion of the MEP for which the Conduit was required.
      Specified by:
        `complete` in interface `ConduitSelector`
      Parameters:
        `exchange` - represents the completed MEP

    - #### getLogger

          protected abstract Logger getLogger()

      Returns:
        the logger to use

    - #### findCompatibleConduit

          protected Conduit findCompatibleConduit(Message message)

      If address protocol was changed, conduit should be re-initialised
      Parameters:
        `message` - the current Message

Apache CXF