Apache CXF API

org.apache.cxf.service.invoker
Class AbstractInvoker

java.lang.Object
  extended by org.apache.cxf.service.invoker.AbstractInvoker
All Implemented Interfaces:
Invoker
Direct Known Subclasses:
BeanInvoker, EJBInvoker, FactoryInvoker, JAXRSInvoker, MDBInvoker

public abstract class AbstractInvoker
extends Object
implements Invoker

Abstract implementation of Invoker.


Constructor Summary
AbstractInvoker()
           
 
Method Summary
protected  Method adjustMethodAndParams(Method m, Exchange ex, List<Object> params, Class<?> serviceObjectClass)
           
protected  void checkSuspendedInvocation(Exchange exchange, Object serviceObject, Method m, List<Object> params, Throwable t)
           
protected  Fault createFault(Throwable ex, Method m, List<Object> params, boolean checked)
           
static Method getMostSpecificMethod(Method method, Class<?> targetClass)
          Given a method, which may come from an interface, and a targetClass used in the current AOP invocation, find the most specific method if there is one.
abstract  Object getServiceObject(Exchange context)
          Creates and returns a service object depending on the scope.
 Object[] insertExchange(Method method, Object[] params, Exchange context)
           
 Object invoke(Exchange exchange, Object o)
           
protected  Object invoke(Exchange exchange, Object serviceObject, Method m, List<Object> params)
           
static boolean isJdkDynamicProxy(Object object)
          Return whether the given object is a J2SE dynamic proxy.
protected  Object performInvocation(Exchange exchange, Object serviceObject, Method m, Object[] paramArray)
           
 void releaseServiceObject(Exchange context, Object obj)
          Called when the invoker is done with the object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractInvoker

public AbstractInvoker()
Method Detail

invoke

public Object invoke(Exchange exchange,
                     Object o)
Specified by:
invoke in interface Invoker

adjustMethodAndParams

protected Method adjustMethodAndParams(Method m,
                                       Exchange ex,
                                       List<Object> params,
                                       Class<?> serviceObjectClass)

invoke

protected Object invoke(Exchange exchange,
                        Object serviceObject,
                        Method m,
                        List<Object> params)

checkSuspendedInvocation

protected void checkSuspendedInvocation(Exchange exchange,
                                        Object serviceObject,
                                        Method m,
                                        List<Object> params,
                                        Throwable t)

createFault

protected Fault createFault(Throwable ex,
                            Method m,
                            List<Object> params,
                            boolean checked)

performInvocation

protected Object performInvocation(Exchange exchange,
                                   Object serviceObject,
                                   Method m,
                                   Object[] paramArray)
                            throws Exception
Throws:
Exception

insertExchange

public Object[] insertExchange(Method method,
                               Object[] params,
                               Exchange context)

getServiceObject

public abstract Object getServiceObject(Exchange context)
Creates and returns a service object depending on the scope.


releaseServiceObject

public void releaseServiceObject(Exchange context,
                                 Object obj)
Called when the invoker is done with the object. Default implementation does nothing.

Parameters:
context -
obj -

isJdkDynamicProxy

public static boolean isJdkDynamicProxy(Object object)
Return whether the given object is a J2SE dynamic proxy.

Parameters:
object - the object to check
See Also:
Proxy.isProxyClass(java.lang.Class)

getMostSpecificMethod

public static Method getMostSpecificMethod(Method method,
                                           Class<?> targetClass)
Given a method, which may come from an interface, and a targetClass used in the current AOP invocation, find the most specific method if there is one. E.g. the method may be IFoo.bar() and the target class may be DefaultFoo. In this case, the method may be DefaultFoo.bar(). This enables attributes on that method to be found.

Parameters:
method - method to be invoked, which may come from an interface
targetClass - target class for the current invocation. May be null or may not even implement the method.
Returns:
the more specific method, or the original method if the targetClass doesn't specialize it or implement it or is null

Apache CXF API

Apache CXF