org.mule.module.cxf
Class CxfOutboundMessageProcessor

java.lang.Object
  extended by org.mule.processor.AbstractInterceptingMessageProcessorBase
      extended by org.mule.processor.AbstractInterceptingMessageProcessor
          extended by org.mule.module.cxf.CxfOutboundMessageProcessor
All Implemented Interfaces:
org.mule.api.AnnotatedObject, org.mule.api.context.MuleContextAware, org.mule.api.processor.CloneableMessageProcessor, org.mule.api.processor.InterceptingMessageProcessor, org.mule.api.processor.MessageProcessor, org.mule.api.processor.MessageProcessorContainer, org.mule.api.source.MessageSource

public class CxfOutboundMessageProcessor
extends org.mule.processor.AbstractInterceptingMessageProcessor
implements org.mule.api.processor.CloneableMessageProcessor

The CxfOutboundMessageProcessor performs outbound CXF processing, sending an event through the CXF client, then on to the next MessageProcessor.


Field Summary
 
Fields inherited from class org.mule.processor.AbstractInterceptingMessageProcessorBase
logger, muleContext, next, notificationHandler
 
Fields inherited from interface org.mule.api.AnnotatedObject
PROPERTY_NAME
 
Constructor Summary
CxfOutboundMessageProcessor(org.apache.cxf.endpoint.Client client)
           
 
Method Summary
protected  Object[] addHoldersToResponse(Object response, Object[] args)
           
protected  org.mule.api.MuleEvent buildResponseMessage(org.mule.api.MuleEvent request, org.mule.api.MuleEvent transportResponse, Object[] response)
           
protected  void cleanup()
           
 org.mule.api.processor.MessageProcessor clone()
           
protected  org.mule.api.MuleEvent doSendWithClient(org.mule.api.MuleEvent event)
           
protected  org.mule.api.MuleEvent doSendWithProxy(org.mule.api.MuleEvent event)
           
protected  Object[] getArgs(org.mule.api.MuleEvent event)
           
protected  org.apache.cxf.service.model.BindingOperationInfo getBindingOperationFromEndpoint(org.apache.cxf.endpoint.Endpoint ep, String operationName)
           
 org.apache.cxf.endpoint.Client getClient()
           
 Method getMethod(org.mule.api.MuleEvent event)
           
protected  String getMethodOrOperationName(org.mule.api.MuleEvent event)
           
 String getOperation()
           
 org.apache.cxf.service.model.BindingOperationInfo getOperation(org.mule.api.MuleEvent event)
           
protected  org.apache.cxf.service.model.BindingOperationInfo getOperation(String opName)
           
 CxfPayloadToArguments getPayloadToArguments()
           
protected  boolean isClientProxyAvailable()
           
 boolean isProxy()
           
 org.mule.api.MuleEvent process(org.mule.api.MuleEvent event)
           
 org.mule.api.MuleEvent processNext(org.mule.api.MuleEvent event)
          This method is public so it can be invoked from the MuleUniversalConduit.
 void setClientProxy(BindingProvider clientProxy)
           
 void setDecoupledEndpoint(String decoupledEndpoint)
           
 void setOperation(String operation)
           
 void setPayloadToArguments(CxfPayloadToArguments payloadToArguments)
           
 void setProxy(boolean proxy)
           
protected  org.apache.cxf.service.model.BindingOperationInfo tryToGetTheOperationInDotNetNamingConvention(org.apache.cxf.endpoint.Endpoint ep, String opName)
           This method tries to call getBindingOperationFromEndpoint(Endpoint, String) with the .NET naming convention for .NET webservices (method names start with a capital letter).
 
Methods inherited from class org.mule.processor.AbstractInterceptingMessageProcessorBase
addMessageProcessorPathElements, getAnnotation, getAnnotations, getListener, getMuleContext, isEventValid, setAnnotations, setListener, setMuleContext, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mule.api.source.MessageSource
setListener
 

Constructor Detail

CxfOutboundMessageProcessor

public CxfOutboundMessageProcessor(org.apache.cxf.endpoint.Client client)
Method Detail

cleanup

protected void cleanup()

getArgs

protected Object[] getArgs(org.mule.api.MuleEvent event)
                    throws org.mule.api.transformer.TransformerException
Throws:
org.mule.api.transformer.TransformerException

process

public org.mule.api.MuleEvent process(org.mule.api.MuleEvent event)
                               throws org.mule.api.MuleException
Specified by:
process in interface org.mule.api.processor.MessageProcessor
Throws:
org.mule.api.MuleException

processNext

public org.mule.api.MuleEvent processNext(org.mule.api.MuleEvent event)
                                   throws org.mule.api.MuleException
This method is public so it can be invoked from the MuleUniversalConduit.

Overrides:
processNext in class org.mule.processor.AbstractInterceptingMessageProcessorBase
Throws:
org.mule.api.MuleException

doSendWithProxy

protected org.mule.api.MuleEvent doSendWithProxy(org.mule.api.MuleEvent event)
                                          throws Exception
Throws:
Exception

doSendWithClient

protected org.mule.api.MuleEvent doSendWithClient(org.mule.api.MuleEvent event)
                                           throws Exception
Throws:
Exception

getMethod

public Method getMethod(org.mule.api.MuleEvent event)
                 throws Exception
Throws:
Exception

getOperation

protected org.apache.cxf.service.model.BindingOperationInfo getOperation(String opName)
                                                                  throws Exception
Throws:
Exception

tryToGetTheOperationInDotNetNamingConvention

protected org.apache.cxf.service.model.BindingOperationInfo tryToGetTheOperationInDotNetNamingConvention(org.apache.cxf.endpoint.Endpoint ep,
                                                                                                         String opName)

This method tries to call getBindingOperationFromEndpoint(Endpoint, String) with the .NET naming convention for .NET webservices (method names start with a capital letter).

CXF generates method names compliant with Java naming so if the WSDL operation names starts with uppercase letter, matching with method name does not work - thus the work around.


getBindingOperationFromEndpoint

protected org.apache.cxf.service.model.BindingOperationInfo getBindingOperationFromEndpoint(org.apache.cxf.endpoint.Endpoint ep,
                                                                                            String operationName)

getMethodOrOperationName

protected String getMethodOrOperationName(org.mule.api.MuleEvent event)
                                   throws org.mule.api.transport.DispatchException
Throws:
org.mule.api.transport.DispatchException

getOperation

public org.apache.cxf.service.model.BindingOperationInfo getOperation(org.mule.api.MuleEvent event)
                                                               throws Exception
Throws:
Exception

buildResponseMessage

protected org.mule.api.MuleEvent buildResponseMessage(org.mule.api.MuleEvent request,
                                                      org.mule.api.MuleEvent transportResponse,
                                                      Object[] response)

addHoldersToResponse

protected Object[] addHoldersToResponse(Object response,
                                        Object[] args)

setPayloadToArguments

public void setPayloadToArguments(CxfPayloadToArguments payloadToArguments)

isClientProxyAvailable

protected boolean isClientProxyAvailable()

isProxy

public boolean isProxy()

setProxy

public void setProxy(boolean proxy)

getOperation

public String getOperation()

setOperation

public void setOperation(String operation)

setClientProxy

public void setClientProxy(BindingProvider clientProxy)

getPayloadToArguments

public CxfPayloadToArguments getPayloadToArguments()

getClient

public org.apache.cxf.endpoint.Client getClient()

setDecoupledEndpoint

public void setDecoupledEndpoint(String decoupledEndpoint)

clone

public org.mule.api.processor.MessageProcessor clone()
Specified by:
clone in interface org.mule.api.processor.CloneableMessageProcessor
Overrides:
clone in class Object


Copyright © 2003–2017 MuleSoft, Inc.. All rights reserved.