org.mule.transport.http
Class HttpConnector

java.lang.Object
  extended by org.mule.transport.AbstractConnector
      extended by org.mule.transport.tcp.TcpConnector
          extended by org.mule.transport.http.HttpConnector
All Implemented Interfaces:
EventListener, javax.resource.spi.work.WorkListener, Disposable, Initialisable, Lifecycle, LifecycleStateEnabled, Startable, Stoppable, NameableObject, NamedObject, Connectable, Connector
Direct Known Subclasses:
HttpPollingConnector, HttpsConnector

public class HttpConnector
extends TcpConnector

HttpConnector provides a way of receiving and sending http requests and responses. The Connector itself handles dispatching http requests. The HttpMessageReceiver handles the receiving requests and processing of headers This endpoint recognises the following properties -


Field Summary
protected  HttpConnectionManager clientConnectionManager
           
static String COOKIE_SPEC_NETSCAPE
           
static String COOKIE_SPEC_RFC2109
           
static int DEFAULT_CONNECTION_TIMEOUT
           
static String DEFAULT_HTTP_GET_BODY_PARAM_PROPERTY
           
static String HTTP
           
static String HTTP_CONTEXT_PATH_PROPERTY
          The context path of the endpoint being accessed.
static String HTTP_CONTEXT_URI_PROPERTY
          The context URI of the endpoint being accessed.
static String HTTP_COOKIE_SPEC_PROPERTY
           
static String HTTP_COOKIES_PROPERTY
           
static String HTTP_CUSTOM_HEADERS_MAP_PROPERTY
          Deprecated. Instead users can now add properties to the outgoing request using the OUTBOUND property scope on the message.
static String HTTP_DISABLE_STATUS_CODE_EXCEPTION_CHECK
           
static String HTTP_ENABLE_COOKIES_PROPERTY
           
static String HTTP_ENCODE_PARAMVALUE
           
static String HTTP_GET_BODY_PARAM_PROPERTY
           
static String HTTP_HEADERS
          Encapsulates all the HTTP headers
static Set<String> HTTP_INBOUND_PROPERTIES
           
static String HTTP_METHOD_PROPERTY
           
static String HTTP_PARAMS_PROPERTY
          Allows the user to set a HttpMethodParams object in the client request to be set on the HttpMethod request object
static String HTTP_POST_BODY_PARAM_PROPERTY
           
static String HTTP_PREFIX
           
static String HTTP_QUERY_PARAMS
          Stores the HTTP query parameters received, supports multiple values per key and both query parameter key and value are unescaped
static String HTTP_QUERY_STRING
           
static String HTTP_RELATIVE_PATH_PROPERTY
          The relative path of the URI being accessed in relation to the context path
static String HTTP_REQUEST_PATH_PROPERTY
          The path portion of the URL being accessed.
static String HTTP_REQUEST_PROPERTY
          The path and query portions of the URL being accessed.
static String HTTP_SERVLET_REQUEST_PROPERTY
           
static String HTTP_SERVLET_RESPONSE_PROPERTY
           
static String HTTP_STATUS_PROPERTY
          MuleEvent property to pass back the status for the response
static String HTTP_VERSION_PROPERTY
           
static String ROOT_PATH
           
 
Fields inherited from class org.mule.transport.tcp.TcpConnector
CLIENT, DEFAULT_BACKLOG, DEFAULT_BUFFER_SIZE, DEFAULT_SO_LINGER, DEFAULT_SOCKET_TIMEOUT, DEFAULT_WAIT_TIMEOUT, KEEP_SEND_SOCKET_OPEN_PROPERTY, SERVER, TCP
 
Fields inherited from class org.mule.transport.AbstractConnector
createMultipleTransactedReceivers, DEFAULT_NUM_CONCURRENT_TX_RECEIVERS, dispatcherFactory, dispatcherPoolFactory, dispatchers, initialStateStopped, lifecycleManager, logger, muleContext, muleMessageFactory, name, numberOfConcurrentTransactedReceivers, PROPERTY_POLLING_FREQUENCY, receivers, requesterFactory, requesters, serviceDescriptor, serviceOverrides, sessionHandler, startOnConnect
 
Fields inherited from interface org.mule.api.transport.Connector
INT_VALUE_NOT_SET
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
HttpConnector(MuleContext context)
           
 
Method Summary
 void connect(EndpointURI endpointURI)
           
 void disconnect(EndpointURI endpointURI)
           
protected  HttpClient doClientConnect()
           
protected  void doDispose()
          Template method to perform any work when destroying the connectoe
protected  void doInitialise()
           
protected  void doStart()
          Template method to perform any work when starting the connectoe
protected  void doStop()
          Template method to perform any work when stopping the connectoe
static MessageReceiver findReceiverByStem(Map<Object,MessageReceiver> receivers, String uriStr)
           
 HttpConnectionManager getClientConnectionManager()
           
 String getCookieSpec()
           
 String getProtocol()
           
 String getProxyHostname()
           
 String getProxyPassword()
           
 int getProxyPort()
           
 String getProxyUsername()
           
protected  Object getReceiverKey(FlowConstruct flowConstruct, InboundEndpoint endpoint)
          The method determines the key used to store the receiver against.
 Map getReceivers()
          Getter for property 'receivers'.
protected  ServerSocket getServerSocket(URI uri)
           
 boolean isEnableCookies()
           
 boolean isKeepSendSocketOpen()
          Deprecated. Use keepAlive property in the outbound endpoint.
 boolean isProxyNtlmAuthentication()
           
 HttpMessageReceiver lookupReceiver(Socket socket, HttpRequest request)
          Deprecated. 
 HttpMessageReceiver lookupReceiver(Socket socket, RequestLine requestLine)
           
static String normalizeUrl(String url)
          Ensures that the supplied URL starts with a '/'.
 void registerListener(InboundEndpoint endpoint, MessageProcessor listener, FlowConstruct flowConstruct)
          Registers a MessageProcessor listener which will listen to new message received from a specific transport channel and then processed by the endpoint.
 void setClientConnectionManager(HttpConnectionManager clientConnectionManager)
           
 void setCookieSpec(String cookieSpec)
           
 void setEnableCookies(boolean enableCookies)
           
 void setKeepSendSocketOpen(boolean keepSendSocketOpen)
          Deprecated. Use keepAlive property in the outbound endpoint.
 void setProxyHostname(String host)
           
 void setProxyNtlmAuthentication(boolean proxyNtlmAuthentication)
           
 void setProxyPassword(String string)
           
 void setProxyPort(int port)
           
 void setProxyUsername(String string)
           
protected  void setupClientAuthorization(MuleEvent event, HttpMethod httpMethod, HttpClient client, ImmutableEndpoint endpoint)
           
 
Methods inherited from class org.mule.transport.tcp.TcpConnector
configureSocket, doConnect, doDisconnect, getBacklog, getBufferSize, getClientSoTimeout, getConnectionTimeout, getDispatchers, getKeepAliveMonitor, getKeepAliveTimeout, getOutputStream, getReceiveBacklog, getReceiveBufferSize, getSendBufferSize, getServerSocketFactory, getServerSoTimeout, getSocket, getSocketFactory, getSocketMaxWait, getSocketSoLinger, getSocketsPoolMaxActive, getSocketsPoolMaxIdle, getSocketsPoolMaxWait, getSocketsPoolNumActive, getTcpProtocol, isFailOnUnresolvedHost, isKeepAlive, isResponseEnabled, isReuseAddress, isSendTcpNoDelay, setBacklog, setBufferSize, setClientSoTimeout, setConnectionTimeout, setDispatcherFactory, setFailOnUnresolvedHost, setKeepAlive, setKeepAliveTimeout, setReceiveBacklog, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSendTcpNoDelay, setServerSocketFactory, setServerSoTimeout, setSocketFactory, setSocketMaxWait, setSocketSoLinger, setTcpProtocol, setTimeout
 
Methods inherited from class org.mule.transport.AbstractConnector
clearDispatchers, clearRequesters, configureDispatcherPool, connect, createDefaultRedeliveryPolicy, createDispatcherMessageProcessor, createMuleMessageFactory, createOperationResource, createReceiver, createScheduler, destroyReceiver, disconnect, dispose, disposeReceivers, disposeWorkManagers, doUnregisterListener, fireNotification, getConnectEventId, getConnectionDescription, getDefaultExchangePattern, getDefaultInboundTransformers, getDefaultOutboundTransformers, getDefaultResponseTransformers, getDispatcherFactory, getDispatcherPoolFactory, getDispatcherThreadingProfile, getDispatcherWorkManager, getInboundExchangePatterns, getLifecycleState, getMaxDispatchersActive, getMaxRequestersActive, getMaxTotalDispatchers, getMuleContext, getMuleMessageFactory, getName, getNumberOfConcurrentTransactedReceivers, getOperationResourceFactory, getOutboundExchangePatterns, getOutputStream, getReceiver, getReceivers, getReceiverThreadingProfile, getReceiverWorkManager, getReplyToHandler, getRequesterFactory, getRequesterThreadingProfile, getRequesterWorkManager, getRetryPolicyTemplate, getScheduler, getServiceDescriptor, getServiceOverrides, getSessionHandler, getSupportedProtocols, getTransactionalResource, handleWorkException, initFromServiceDescriptor, initialise, initialiseFromUrl, initWorkManagers, isConnected, isConnecting, isCreateMultipleTransactedReceivers, isDisposed, isEnableMessageEvents, isInitialised, isInitialStateStopped, isStarted, isStarting, isStopped, isStopping, isValidateConnections, lookupReceiver, registerSupportedMetaProtocol, registerSupportedProtocol, registerSupportedProtocolWithoutPrefix, request, request, setConnected, setConnecting, setCreateMultipleTransactedReceivers, setDispatcherPoolFactory, setDispatcherPoolMaxWait, setDispatcherPoolWhenExhaustedAction, setDispatcherThreadingProfile, setDynamicNotification, setInitialStateStopped, setMaxDispatchersActive, setMaxRequestersActive, setName, setNumberOfConcurrentTransactedReceivers, setReceiverThreadingProfile, setRequesterFactory, setRequesterPoolMaxWait, setRequesterPoolWhenExhaustedAction, setRequesterThreadingProfile, setRetryPolicyTemplate, setServiceOverrides, setSessionHandler, setSupportedProtocols, setupDispatchReturn, setupRequestReturn, setValidateConnections, shutdownScheduler, start, startAfterConnect, stop, supportsProtocol, toString, unregisterListener, unregisterSupportedProtocol, updateCachedNotificationHandler, validateConnection, workAccepted, workCompleted, workRejected, workStarted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

HTTP

public static final String HTTP
See Also:
Constant Field Values

HTTP_PREFIX

public static final String HTTP_PREFIX
See Also:
Constant Field Values

HTTP_STATUS_PROPERTY

public static final String HTTP_STATUS_PROPERTY
MuleEvent property to pass back the status for the response

See Also:
Constant Field Values

HTTP_VERSION_PROPERTY

public static final String HTTP_VERSION_PROPERTY
See Also:
Constant Field Values

HTTP_CUSTOM_HEADERS_MAP_PROPERTY

@Deprecated
public static final String HTTP_CUSTOM_HEADERS_MAP_PROPERTY
Deprecated. Instead users can now add properties to the outgoing request using the OUTBOUND property scope on the message.
See Also:
Constant Field Values

HTTP_HEADERS

public static final String HTTP_HEADERS
Encapsulates all the HTTP headers

See Also:
Constant Field Values

HTTP_QUERY_PARAMS

public static final String HTTP_QUERY_PARAMS
Stores the HTTP query parameters received, supports multiple values per key and both query parameter key and value are unescaped

See Also:
Constant Field Values

HTTP_QUERY_STRING

public static final String HTTP_QUERY_STRING
See Also:
Constant Field Values

HTTP_METHOD_PROPERTY

public static final String HTTP_METHOD_PROPERTY
See Also:
Constant Field Values

HTTP_REQUEST_PROPERTY

public static final String HTTP_REQUEST_PROPERTY
The path and query portions of the URL being accessed.

See Also:
Constant Field Values

HTTP_REQUEST_PATH_PROPERTY

public static final String HTTP_REQUEST_PATH_PROPERTY
The path portion of the URL being accessed. No query string is included.

See Also:
Constant Field Values

HTTP_CONTEXT_PATH_PROPERTY

public static final String HTTP_CONTEXT_PATH_PROPERTY
The context path of the endpoint being accessed. This is the path that the HTTP endpoint is listening on.

See Also:
Constant Field Values

HTTP_CONTEXT_URI_PROPERTY

public static final String HTTP_CONTEXT_URI_PROPERTY
The context URI of the endpoint being accessed. This is the address that the HTTP endpoint is listening on. It includes: [scheme]://[host]:[port][http.context.path]

See Also:
Constant Field Values

HTTP_RELATIVE_PATH_PROPERTY

public static final String HTTP_RELATIVE_PATH_PROPERTY
The relative path of the URI being accessed in relation to the context path

See Also:
Constant Field Values

HTTP_SERVLET_REQUEST_PROPERTY

public static final String HTTP_SERVLET_REQUEST_PROPERTY
See Also:
Constant Field Values

HTTP_SERVLET_RESPONSE_PROPERTY

public static final String HTTP_SERVLET_RESPONSE_PROPERTY
See Also:
Constant Field Values

HTTP_PARAMS_PROPERTY

public static final String HTTP_PARAMS_PROPERTY
Allows the user to set a HttpMethodParams object in the client request to be set on the HttpMethod request object

See Also:
Constant Field Values

HTTP_GET_BODY_PARAM_PROPERTY

public static final String HTTP_GET_BODY_PARAM_PROPERTY
See Also:
Constant Field Values

DEFAULT_HTTP_GET_BODY_PARAM_PROPERTY

public static final String DEFAULT_HTTP_GET_BODY_PARAM_PROPERTY
See Also:
Constant Field Values

HTTP_POST_BODY_PARAM_PROPERTY

public static final String HTTP_POST_BODY_PARAM_PROPERTY
See Also:
Constant Field Values

HTTP_DISABLE_STATUS_CODE_EXCEPTION_CHECK

public static final String HTTP_DISABLE_STATUS_CODE_EXCEPTION_CHECK
See Also:
Constant Field Values

HTTP_ENCODE_PARAMVALUE

public static final String HTTP_ENCODE_PARAMVALUE
See Also:
Constant Field Values

HTTP_INBOUND_PROPERTIES

public static final Set<String> HTTP_INBOUND_PROPERTIES

HTTP_COOKIE_SPEC_PROPERTY

public static final String HTTP_COOKIE_SPEC_PROPERTY
See Also:
Constant Field Values

HTTP_COOKIES_PROPERTY

public static final String HTTP_COOKIES_PROPERTY
See Also:
Constant Field Values

HTTP_ENABLE_COOKIES_PROPERTY

public static final String HTTP_ENABLE_COOKIES_PROPERTY
See Also:
Constant Field Values

COOKIE_SPEC_NETSCAPE

public static final String COOKIE_SPEC_NETSCAPE
See Also:
Constant Field Values

COOKIE_SPEC_RFC2109

public static final String COOKIE_SPEC_RFC2109
See Also:
Constant Field Values

ROOT_PATH

public static final String ROOT_PATH
See Also:
Constant Field Values

DEFAULT_CONNECTION_TIMEOUT

public static final int DEFAULT_CONNECTION_TIMEOUT
See Also:
Constant Field Values

clientConnectionManager

protected HttpConnectionManager clientConnectionManager
Constructor Detail

HttpConnector

public HttpConnector(MuleContext context)
Method Detail

doInitialise

protected void doInitialise()
                     throws InitialisationException
Overrides:
doInitialise in class TcpConnector
Throws:
InitialisationException

doDispose

protected void doDispose()
Description copied from class: AbstractConnector
Template method to perform any work when destroying the connectoe

Overrides:
doDispose in class TcpConnector

doStop

protected void doStop()
               throws MuleException
Description copied from class: AbstractConnector
Template method to perform any work when stopping the connectoe

Overrides:
doStop in class TcpConnector
Throws:
MuleException - if the method fails

doStart

protected void doStart()
                throws MuleException
Description copied from class: AbstractConnector
Template method to perform any work when starting the connectoe

Overrides:
doStart in class TcpConnector
Throws:
MuleException - if the method fails

registerListener

public void registerListener(InboundEndpoint endpoint,
                             MessageProcessor listener,
                             FlowConstruct flowConstruct)
                      throws Exception
Description copied from interface: Connector
Registers a MessageProcessor listener which will listen to new message received from a specific transport channel and then processed by the endpoint. Only a single listener can be registered for a given endpoints. Attempts to register a listener when one is already registered will fail.

Specified by:
registerListener in interface Connector
Overrides:
registerListener in class AbstractConnector
Parameters:
endpoint - defines both the transport and channel/resource uri as well the processing (transformation/filtering) that should occur when the endpoint processes a new message from the transport receiver.
listener - the listener that will be invoked when messages are received on the endpoint.
flowConstruct - reference to the flow construct that the listener is part of for use as context for logging, notifications and error handling.
Throws:
Exception

getReceiverKey

protected Object getReceiverKey(FlowConstruct flowConstruct,
                                InboundEndpoint endpoint)
The method determines the key used to store the receiver against.

Overrides:
getReceiverKey in class AbstractConnector
Parameters:
endpoint - the endpoint being registered for the service
flowConstruct - the service for which the endpoint is being registered
Returns:
the key to store the newly created receiver against

getProtocol

public String getProtocol()
Specified by:
getProtocol in interface Connector
Overrides:
getProtocol in class TcpConnector
Returns:
the primary protocol name for endpoints of this connector
See Also:
Connector.getProtocol()

getProxyHostname

public String getProxyHostname()

getProxyPassword

public String getProxyPassword()

getProxyPort

public int getProxyPort()

getProxyUsername

public String getProxyUsername()

setProxyHostname

public void setProxyHostname(String host)

setProxyPassword

public void setProxyPassword(String string)

setProxyPort

public void setProxyPort(int port)

setProxyUsername

public void setProxyUsername(String string)

getReceivers

public Map getReceivers()
Description copied from class: AbstractConnector
Getter for property 'receivers'.

Overrides:
getReceivers in class AbstractConnector
Returns:
Value for property 'receivers'.

getCookieSpec

public String getCookieSpec()

setCookieSpec

public void setCookieSpec(String cookieSpec)

isEnableCookies

public boolean isEnableCookies()

setEnableCookies

public void setEnableCookies(boolean enableCookies)

getClientConnectionManager

public HttpConnectionManager getClientConnectionManager()

setClientConnectionManager

public void setClientConnectionManager(HttpConnectionManager clientConnectionManager)

doClientConnect

protected HttpClient doClientConnect()
                              throws Exception
Throws:
Exception

setupClientAuthorization

protected void setupClientAuthorization(MuleEvent event,
                                        HttpMethod httpMethod,
                                        HttpClient client,
                                        ImmutableEndpoint endpoint)
                                 throws UnsupportedEncodingException
Throws:
UnsupportedEncodingException

normalizeUrl

public static String normalizeUrl(String url)
Ensures that the supplied URL starts with a '/'.


isProxyNtlmAuthentication

public boolean isProxyNtlmAuthentication()

setProxyNtlmAuthentication

public void setProxyNtlmAuthentication(boolean proxyNtlmAuthentication)

connect

public void connect(EndpointURI endpointURI)

disconnect

public void disconnect(EndpointURI endpointURI)

lookupReceiver

public HttpMessageReceiver lookupReceiver(Socket socket,
                                          RequestLine requestLine)
                                   throws NoReceiverForEndpointException
Throws:
NoReceiverForEndpointException

lookupReceiver

@Deprecated
public HttpMessageReceiver lookupReceiver(Socket socket,
                                                     HttpRequest request)
Deprecated. 


findReceiverByStem

public static MessageReceiver findReceiverByStem(Map<Object,MessageReceiver> receivers,
                                                 String uriStr)

getServerSocket

protected ServerSocket getServerSocket(URI uri)
                                throws IOException
Overrides:
getServerSocket in class TcpConnector
Throws:
IOException

isKeepSendSocketOpen

@Deprecated
public boolean isKeepSendSocketOpen()
Deprecated. Use keepAlive property in the outbound endpoint.

Overrides:
isKeepSendSocketOpen in class TcpConnector

setKeepSendSocketOpen

@Deprecated
public void setKeepSendSocketOpen(boolean keepSendSocketOpen)
Deprecated. Use keepAlive property in the outbound endpoint.

Overrides:
setKeepSendSocketOpen in class TcpConnector


Copyright © 2003-2014 MuleSoft, Inc.. All Rights Reserved.