Class PassThroughTransportUtils


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

      All Methods Static Methods Instance Methods Concrete Methods 
      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)  
    • Constructor Detail

      • PassThroughTransportUtils

        public PassThroughTransportUtils()
    • Method Detail

      • 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 & 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)