Package org.apache.synapse.transport.passthru

# Class ServerWorker

java.lang.Object
org.apache.synapse.transport.passthru.ServerWorker

All Implemented Interfaces:
  `Runnable`

public class ServerWorker extends Object implements Runnable
This is a worker thread for executing an incoming request in to the transport.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServerWorker(SourceRequest request, SourceConfiguration sourceConfiguration, OutputStream os)`
  `ServerWorker(SourceRequest request, SourceConfiguration sourceConfiguration, OutputStream os, long initiationTimestamp, String correlationId)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.apache.axis2.context.MessageContext`
  `createMessageContext(org.apache.axis2.context.MessageContext msgContext, SourceRequest request)`
  Create an Axis2 message context for the given http request.
  `org.apache.axis2.context.MessageContext`
  `getRequestContext()`
  `SourceConfiguration`
  `getSourceConfiguration()`
  Get the shared pass-through source configuration
  `SourceRequest`
  `getSourceRequest()`
  `WorkerState`
  `getWorkerState()`
  `org.apache.axiom.soap.SOAPEnvelope`
  `handleRESTUrlPost(String contentTypeHdr)`
  Method will setup the necessary parameters for the rest url post action
  `boolean`
  `isRESTRequest(org.apache.axis2.context.MessageContext msgContext, String method)`
  Adding REST related properties to the message context if request is REST
  `void`
  `processEntityEnclosingRequest(org.apache.axis2.context.MessageContext msgContext, boolean injectToAxis2Engine)`
  `void`
  `processHttpRequestUri(org.apache.axis2.context.MessageContext msgContext, String method)`
  Get Uri of underlying SourceRequest and calculate service prefix and add to message context create response buffers for HTTP GET, DELETE, OPTION and HEAD methods
  `void`
  `processNonEntityEnclosingRESTHandler(org.apache.axiom.soap.SOAPEnvelope soapEnvelope, org.apache.axis2.context.MessageContext msgContext, boolean injectToAxis2Engine)`
  `void`
  `run()`
  `void`
  `sendAck(org.apache.axis2.context.MessageContext msgContext)`
  `void`
  `setSourceRequest(SourceRequest request)`

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

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

- ## Constructor Details

  - ### ServerWorker

    public ServerWorker(SourceRequest request, SourceConfiguration sourceConfiguration, OutputStream os)

  - ### ServerWorker

    public ServerWorker(SourceRequest request, SourceConfiguration sourceConfiguration, OutputStream os, long initiationTimestamp, String correlationId)

- ## Method Details

  - ### run

    public void run()
    Specified by:
      `run` in interface `Runnable`

  - ### handleRESTUrlPost

    public org.apache.axiom.soap.SOAPEnvelope handleRESTUrlPost(String contentTypeHdr) throws FactoryConfigurationError
    Method will setup the necessary parameters for the rest url post action
    Returns:
    Throws:
      `FactoryConfigurationError`

  - ### sendAck

    public void sendAck(org.apache.axis2.context.MessageContext msgContext)

  - ### processNonEntityEnclosingRESTHandler

    public void processNonEntityEnclosingRESTHandler(org.apache.axiom.soap.SOAPEnvelope soapEnvelope, org.apache.axis2.context.MessageContext msgContext, boolean injectToAxis2Engine)

  - ### processEntityEnclosingRequest

    public void processEntityEnclosingRequest(org.apache.axis2.context.MessageContext msgContext, boolean injectToAxis2Engine)

  - ### createMessageContext

    public org.apache.axis2.context.MessageContext createMessageContext(org.apache.axis2.context.MessageContext msgContext, SourceRequest request)
    Create an Axis2 message context for the given http request. The request may be in the process of being streamed
    Parameters:
      `request` - the http request to be used to create the corresponding Axis2 message context
    Returns:
      the Axis2 message context created

  - ### getWorkerState

    public WorkerState getWorkerState()

  - ### getRequestContext

    public org.apache.axis2.context.MessageContext getRequestContext()

  - ### getSourceRequest

    public SourceRequest getSourceRequest()
    Returns:
      Get SourceRequest Processed by ServerWorker

  - ### setSourceRequest

    public void setSourceRequest(SourceRequest request)
    Parameters:
      `request` - Set SourceRequest to be processed by ServerWorker

  - ### isRESTRequest

    public boolean isRESTRequest(org.apache.axis2.context.MessageContext msgContext, String method)
    Adding REST related properties to the message context if request is REST
    Parameters:
      `msgContext` - Axis2MessageContext of the request
      `method` - HTTP Method of the request
    Returns:
      whether request is REST or SOAP

  - ### processHttpRequestUri

    public void processHttpRequestUri(org.apache.axis2.context.MessageContext msgContext, String method)
    Get Uri of underlying SourceRequest and calculate service prefix and add to message context create response buffers for HTTP GET, DELETE, OPTION and HEAD methods
    Parameters:
      `msgContext` - Axis2MessageContext of the request
      `method` - HTTP Method of the request

  - ### getSourceConfiguration

    public SourceConfiguration getSourceConfiguration()
    Get the shared pass-through source configuration
    Returns:
      source configuration