Package org.apache.synapse.transport.passthru.util

# Class PassThroughTransportUtils

java.lang.Object
org.apache.synapse.transport.passthru.util.PassThroughTransportUtils

public class PassThroughTransportUtils extends Object
Utility methods used by the transport.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PassThroughTransportUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static int`
  `determineHttpStatusCode(org.apache.axis2.context.MessageContext msgContext)`
  Determine the Http Status Code depending on the message type processed
  (normal response versus fault response) as well as Axis2 message context properties set via Synapse configuration or MessageBuilders.
  `static String`
  `determineHttpStatusLine(org.apache.axis2.context.MessageContext msgContext)`
  Determine the Http Status Message depending on the message type processed
  (normal response versus fault response) as well as Axis2 message context properties set via Synapse configuration or MessageBuilders.
  `static org.apache.axis2.addressing.EndpointReference`
  `getDestinationEPR(org.apache.axis2.context.MessageContext msgContext)`
  Get the EPR for the message passed in
  `static String`
  `getHostName(InetAddress address)`
  This method tries to determine the hostname of the given InetAddress without triggering a reverse DNS lookup.
  `static String`
  `getIpAddress()`
  Whatever this method returns as the IP is ignored by the actual http/s listener when its getServiceEPR is invoked.
  `static org.apache.axiom.om.OMOutputFormat`
  `getOMOutputFormat(org.apache.axis2.context.MessageContext msgContext)`
  `String`
  `getServicesHTML(String prefix, org.apache.axis2.context.ConfigurationContext cfgCtx)`
  Returns the HTML text for the list of services deployed.
  `static void`
  `removeUnwantedHeaders(org.apache.axis2.context.MessageContext msgContext, TargetConfiguration targetConfiguration)`
  Remove unwanted headers from the http response of outgoing request.
  `static void`
  `setSourceConnectionContextAttributes(org.apache.http.nio.NHttpServerConnection sourceConn, org.apache.http.nio.NHttpClientConnection conn)`

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

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

- ## Constructor Details

  - ### PassThroughTransportUtils

    public PassThroughTransportUtils()

- ## Method Details

  - ### getHostName

    public static String getHostName(InetAddress address)
    This method tries to determine the hostname of the given InetAddress without triggering a reverse DNS lookup. `InetAddress.getHostName()` triggers a reverse DNS lookup which can be very costly in cases where reverse DNS fails. Tries to parse a symbolic hostname from `InetAddress.toString()`, which is documented to return a String of the form "hostname / literal IP address" with 'hostname' blank if not already computed invalid input: '&' stored in `address`.

    If the hostname cannot be determined from InetAddress.toString(), the value of `InetAddress.getHostAddress()` is returned.
    Parameters:
      `address` - The InetAddress whose hostname has to be determined
    Returns:
      hostsname, if it can be determined. hostaddress, if not.

  - ### getDestinationEPR

    public static org.apache.axis2.addressing.EndpointReference getDestinationEPR(org.apache.axis2.context.MessageContext msgContext)
    Get the EPR for the message passed in
    Parameters:
      `msgContext` - the message context
    Returns:
      the destination EPR

  - ### removeUnwantedHeaders

    public static void removeUnwantedHeaders(org.apache.axis2.context.MessageContext msgContext, TargetConfiguration targetConfiguration)
    Remove unwanted headers from the http response of outgoing request. These are headers which should be dictated by the transport and not the user. We remove these as these may get copied from the request messages
    Parameters:
      `msgContext` - the Axis2 Message context from which these headers should be removed
      `targetConfiguration` - configuration for the passThrough handler

  - ### setSourceConnectionContextAttributes

    public static void setSourceConnectionContextAttributes(org.apache.http.nio.NHttpServerConnection sourceConn, org.apache.http.nio.NHttpClientConnection conn)

  - ### determineHttpStatusCode

    public static int determineHttpStatusCode(org.apache.axis2.context.MessageContext msgContext)
    Determine the Http Status Code depending on the message type processed
    (normal response versus fault response) as well as Axis2 message context properties set via Synapse configuration or MessageBuilders.
    Parameters:
      `msgContext` - the Axis2 message context
    Returns:
      the HTTP status code to set in the HTTP response object
    See Also:
      - `PassThroughConstants.FAULTS_AS_HTTP_200`
      - `PassThroughConstants.HTTP_SC`

  - ### determineHttpStatusLine

    public static String determineHttpStatusLine(org.apache.axis2.context.MessageContext msgContext)
    Determine the Http Status Message depending on the message type processed
    (normal response versus fault response) as well as Axis2 message context properties set via Synapse configuration or MessageBuilders.
    Parameters:
      `msgContext` - the Axis2 message context
    Returns:
      the HTTP status message string or null
    See Also:
      - `PassThroughConstants.FAULTS_AS_HTTP_200`
      - `PassThroughConstants.HTTP_SC`

  - ### getIpAddress

    public static String getIpAddress() throws SocketException
    Whatever this method returns as the IP is ignored by the actual http/s listener when its getServiceEPR is invoked. This was originally copied from axis2
    Returns:
      Returns String.
    Throws:
      `SocketException` - if the socket can not be accessed

  - ### getServicesHTML

    public String getServicesHTML(String prefix, org.apache.axis2.context.ConfigurationContext cfgCtx)
    Returns the HTML text for the list of services deployed. This can be delegated to another Class as well where it will handle more options of GET messages.
    Parameters:
      `prefix` - to be used for the Service names
      `cfgCtx` - axis2 configuration context
    Returns:
      the HTML to be displayed as a String

  - ### getOMOutputFormat

    public static org.apache.axiom.om.OMOutputFormat getOMOutputFormat(org.apache.axis2.context.MessageContext msgContext)