Package 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 | Description
    --- | --- | ---
    `static String` | `CONDUIT_COMPARE_FULL_URL` |
    `protected List<Conduit>` | `conduits` |
    `protected Endpoint` | `endpoint` |
    `protected static String` | `KEEP_CONDUIT_ALIVE` |

  - ### Constructor Summary

    Constructors
    Constructor | 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 | 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 `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`

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