Apache CXF API

org.apache.cxf.service.factory
Class ReflectionServiceFactoryBean

java.lang.Object
  extended by org.apache.cxf.service.factory.AbstractServiceFactoryBean
      extended by org.apache.cxf.service.factory.ReflectionServiceFactoryBean
Direct Known Subclasses:
JaxWsServiceFactoryBean

public class ReflectionServiceFactoryBean
extends AbstractServiceFactoryBean

Introspects a class and builds a Service from it. If a WSDL URL is specified, a Service model will be directly from the WSDL and then metadata will be filled in from the service class. If no WSDL URL is specified, the Service will be constructed directly from the class structure.


Field Summary
static String ELEMENT_NAME
           
static String ENDPOINT_CLASS
           
static String EXTRA_CLASS
           
static String FORCE_TYPES
           
static String GENERIC_TYPE
           
static String HEADER
           
static String HOLDER
           
static String METHOD
           
static String METHOD_ANNOTATIONS
           
static String METHOD_PARAM_ANNOTATIONS
           
static String MODE_INOUT
           
static String MODE_OUT
           
static String PARAM_ANNOTATION
           
protected  Map<Type,Map<String,Class<?>>> parameterizedTypes
           
static String RAW_CLASS
           
protected  Map<String,String> schemaLocationMapping
           
protected  Class<?> serviceClass
           
protected  ParameterizedType serviceType
           
static String WRAPPERGEN_NEEDED
           
protected  String wsdlURL
           
 
Fields inherited from class org.apache.cxf.service.factory.AbstractServiceFactoryBean
dataBindingSet, schemaLocations
 
Constructor Summary
ReflectionServiceFactoryBean()
           
 
Method Summary
protected  FaultInfo addFault(InterfaceInfo service, OperationInfo op, Class exClass)
           
protected  void bindOperation(OperationInfo op, Method m)
           
protected  void buildServiceFromClass()
           
protected  void buildServiceFromWSDL(String url)
           
protected  void checkForElement(ServiceInfo serviceInfo, MessagePartInfo mpi)
           
protected  void checkServiceClassAnnotations(Class<?> sc)
           
 Service create()
           
protected  void createBareMessage(ServiceInfo serviceInfo, OperationInfo opInfo, boolean isOut)
           
protected  DataBinding createDefaultDataBinding()
           
 Endpoint createEndpoint(EndpointInfo ei)
           
protected  void createEndpoints()
           
protected  void createFaultForException(Class<?> exClass, FaultInfo fi)
           
protected  void createInputWrappedMessageParts(OperationInfo op, Method method, MessageInfo inMsg)
           
protected  InterfaceInfo createInterface(ServiceInfo serviceInfo)
           
protected  Invoker createInvoker()
           
protected  void createMessageParts(InterfaceInfo intf, OperationInfo op, Method method)
           
protected  OperationInfo createOperation(ServiceInfo serviceInfo, InterfaceInfo intf, Method m)
           
protected  QName createOutputMessageName(OperationInfo op, Method method)
           
protected  void createOutputWrappedMessageParts(OperationInfo op, Method method, MessageInfo outMsg)
           
protected  ServiceInfo createServiceInfo(InterfaceInfo intf)
           
protected  void createWrappedSchema(ServiceInfo serviceInfo, AbstractMessageContainer wrappedMessage, AbstractMessageContainer unwrappedMessage, QName wrapperBeanName)
           
protected  String getAction(OperationInfo op, Method method)
           
 boolean getAnonymousWrapperTypes()
           
protected  Class<?> getBeanClass(Class<?> exClass)
           
 List<AbstractServiceConfiguration> getConfigurations()
           
 EndpointInfo getEndpointInfo()
           
 QName getEndpointName()
           
 QName getEndpointName(boolean lookup)
           
 Executor getExecutor()
           
protected  Set<Class<?>> getExtraClass()
           
protected  QName getFaultName(InterfaceInfo service, OperationInfo o, Class exClass, Class beanClass)
           
 List<AbstractFeature> getFeatures()
           
 Type getHolderType(Class<?> cls, Type type)
           
 List<String> getIgnoredClasses()
           
 List<Method> getIgnoredMethods()
           
protected  QName getInParameterName(OperationInfo op, Method method, int paramNumber)
           
protected  QName getInPartName(OperationInfo op, Method method, int paramNumber)
           
protected  QName getInputMessageName(OperationInfo op, Method method)
           
protected  InterfaceInfo getInterfaceInfo()
           
 QName getInterfaceName()
           
 Invoker getInvoker()
           
protected  MethodDispatcher getMethodDispatcher()
           
protected  QName getOperationName(InterfaceInfo service, Method method)
          Creates a name for the operation from the method name.
protected  QName getOutParameterName(OperationInfo op, Method method, int paramNumber)
           
protected  QName getOutPartName(OperationInfo op, Method method, int paramNumber)
           
 Map<String,Object> getProperties()
           
 boolean getQualifyWrapperSchema()
           
protected  Class getRequestWrapper(Method selected)
           
protected  String getRequestWrapperClassName(Method selected)
           
protected  Class getResponseWrapper(Method selected)
           
protected  String getResponseWrapperClassName(Method selected)
           
 Class<?> getServiceClass()
           
 List<AbstractServiceConfiguration> getServiceConfigurations()
           
protected  String getServiceName()
           
protected  String getServiceNamespace()
           
 QName getServiceQName()
           
 QName getServiceQName(boolean lookup)
           
 String getStyle()
           
 Boolean getWrapped()
          Returns non-null if wrapped mode was explicitely disabled or enabled.
 long getWrapperPartMaxOccurs(MessagePartInfo mpi)
           
 long getWrapperPartMinOccurs(MessagePartInfo mpi)
           
 String getWsdlURL()
           
protected  boolean hasOutMessage(Method m)
           
 boolean hasWrappedMethods(InterfaceInfo interfaceInfo)
           
protected  boolean initializeClassInfo(OperationInfo o, Method method, List<String> paramOrder)
          set the holder generic type info into message part info
protected  void initializeDefaultInterceptors()
           
protected  void initializeFaultInterceptors()
           
protected  void initializeFaults(InterfaceInfo service, OperationInfo op, Method method)
           
protected  void initializeParameter(MessagePartInfo part, Class rawClass, Type type)
           
protected  void initializeServiceConfigurations()
           
protected  void initializeServiceModel()
           
protected  void initializeWrappedSchema(ServiceInfo serviceInfo)
           
protected  void initializeWSDLOperation(InterfaceInfo intf, OperationInfo o, Method method)
           
protected  void initializeWSDLOperations()
           
 boolean isAnonymousWrapperTypes()
           
protected  boolean isAsync(Method method)
           
protected  boolean isFromWsdl()
           
 boolean isHeader(Method method, int j)
           
 boolean isHolder(Class<?> cls, Type type)
           
protected  boolean isInParam(Method method, int j)
           
protected  boolean isMatchOperation(String methodNameInClass, String methodNameInWsdl)
           
protected  boolean isOutParam(Method method, int j)
           
 boolean isPopulateFromClass()
           
 boolean isQualifyWrapperSchema()
           
 boolean isRPC(Method method)
           
protected  boolean isValidMethod(Method method)
           
 boolean isWrapped()
           
protected  boolean isWrapped(Method method)
           
 boolean isWrapperPartNillable(MessagePartInfo mpi)
           
 boolean isWrapperPartQualified(MessagePartInfo mpi)
           
protected  void processTypes(Class sc, Type tp)
           
 void reset()
           
 void setAnonymousWrapperTypes(boolean b)
           
 void setConfigurations(List<AbstractServiceConfiguration> configurations)
           
 void setEndpointName(QName en)
           
 void setExecutor(Executor executor)
           
 void setFeatures(List<AbstractFeature> f)
           
 void setIgnoredClasses(List<String> ignoredClasses)
           
 void setIgnoredMethods(List<Method> ignoredMethods)
           
 void setInvoker(Invoker invoker)
           
protected  void setMethodDispatcher(MethodDispatcher m)
           
 void setPopulateFromClass(boolean fomClass)
           
 void setProperties(Map<String,Object> properties)
           
 void setQualifyWrapperSchema(boolean b)
           
 void setSchemaLocations(List<String> schemaLocations)
           
 void setServiceClass(Class<?> serviceClass)
           
 void setServiceConfigurations(List<AbstractServiceConfiguration> serviceConfigurations)
           
 void setServiceName(QName serviceName)
           
protected  void setServiceProperties()
           
 void setServiceType(ParameterizedType servicetype)
           
 void setValidate(boolean validate)
          If 'validate' is true, this class will validate the service.
 void setWrapped(boolean style)
           
 void setWsdlURL(String wsdlURL)
           
 void setWsdlURL(URL wsdlURL)
           
 void updateBindingOperation(BindingOperationInfo boi)
           
 void validateServiceModel()
           
 
Methods inherited from class org.apache.cxf.service.factory.AbstractServiceFactoryBean
getBus, getDataBinding, getDataBinding, getService, getSessionState, initializeDataBindings, sendEvent, setBus, setDataBinding, setService
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENDPOINT_CLASS

public static final String ENDPOINT_CLASS
See Also:
Constant Field Values

GENERIC_TYPE

public static final String GENERIC_TYPE
See Also:
Constant Field Values

RAW_CLASS

public static final String RAW_CLASS
See Also:
Constant Field Values

WRAPPERGEN_NEEDED

public static final String WRAPPERGEN_NEEDED
See Also:
Constant Field Values

EXTRA_CLASS

public static final String EXTRA_CLASS
See Also:
Constant Field Values

MODE_OUT

public static final String MODE_OUT
See Also:
Constant Field Values

MODE_INOUT

public static final String MODE_INOUT
See Also:
Constant Field Values

HOLDER

public static final String HOLDER
See Also:
Constant Field Values

HEADER

public static final String HEADER
See Also:
Constant Field Values

ELEMENT_NAME

public static final String ELEMENT_NAME
See Also:
Constant Field Values

METHOD

public static final String METHOD
See Also:
Constant Field Values

FORCE_TYPES

public static final String FORCE_TYPES
See Also:
Constant Field Values

METHOD_PARAM_ANNOTATIONS

public static final String METHOD_PARAM_ANNOTATIONS
See Also:
Constant Field Values

METHOD_ANNOTATIONS

public static final String METHOD_ANNOTATIONS
See Also:
Constant Field Values

PARAM_ANNOTATION

public static final String PARAM_ANNOTATION
See Also:
Constant Field Values

wsdlURL

protected String wsdlURL

serviceClass

protected Class<?> serviceClass

serviceType

protected ParameterizedType serviceType

parameterizedTypes

protected Map<Type,Map<String,Class<?>>> parameterizedTypes

schemaLocationMapping

protected final Map<String,String> schemaLocationMapping
Constructor Detail

ReflectionServiceFactoryBean

public ReflectionServiceFactoryBean()
Method Detail

createDefaultDataBinding

protected DataBinding createDefaultDataBinding()
Overrides:
createDefaultDataBinding in class AbstractServiceFactoryBean

reset

public void reset()

create

public Service create()
Specified by:
create in class AbstractServiceFactoryBean

createEndpoints

protected void createEndpoints()

updateBindingOperation

public void updateBindingOperation(BindingOperationInfo boi)

createEndpoint

public Endpoint createEndpoint(EndpointInfo ei)
                        throws EndpointException
Throws:
EndpointException

initializeServiceConfigurations

protected void initializeServiceConfigurations()

setServiceProperties

protected void setServiceProperties()

buildServiceFromWSDL

protected void buildServiceFromWSDL(String url)

buildServiceFromClass

protected void buildServiceFromClass()

hasWrappedMethods

public boolean hasWrappedMethods(InterfaceInfo interfaceInfo)

isFromWsdl

protected boolean isFromWsdl()

initializeServiceModel

protected void initializeServiceModel()

validateServiceModel

public void validateServiceModel()

isPopulateFromClass

public boolean isPopulateFromClass()

setPopulateFromClass

public void setPopulateFromClass(boolean fomClass)

getInterfaceInfo

protected InterfaceInfo getInterfaceInfo()

initializeWSDLOperations

protected void initializeWSDLOperations()

initializeWSDLOperation

protected void initializeWSDLOperation(InterfaceInfo intf,
                                       OperationInfo o,
                                       Method method)

initializeClassInfo

protected boolean initializeClassInfo(OperationInfo o,
                                      Method method,
                                      List<String> paramOrder)
set the holder generic type info into message part info

Parameters:
o -
method -

createInvoker

protected Invoker createInvoker()

createServiceInfo

protected ServiceInfo createServiceInfo(InterfaceInfo intf)

createInterface

protected InterfaceInfo createInterface(ServiceInfo serviceInfo)

createOperation

protected OperationInfo createOperation(ServiceInfo serviceInfo,
                                        InterfaceInfo intf,
                                        Method m)

bindOperation

protected void bindOperation(OperationInfo op,
                             Method m)

initializeWrappedSchema

protected void initializeWrappedSchema(ServiceInfo serviceInfo)

checkForElement

protected void checkForElement(ServiceInfo serviceInfo,
                               MessagePartInfo mpi)

getAnonymousWrapperTypes

public boolean getAnonymousWrapperTypes()

isAnonymousWrapperTypes

public boolean isAnonymousWrapperTypes()

setAnonymousWrapperTypes

public void setAnonymousWrapperTypes(boolean b)

getQualifyWrapperSchema

public final boolean getQualifyWrapperSchema()

isQualifyWrapperSchema

public boolean isQualifyWrapperSchema()

setQualifyWrapperSchema

public void setQualifyWrapperSchema(boolean b)

createWrappedSchema

protected void createWrappedSchema(ServiceInfo serviceInfo,
                                   AbstractMessageContainer wrappedMessage,
                                   AbstractMessageContainer unwrappedMessage,
                                   QName wrapperBeanName)

createBareMessage

protected void createBareMessage(ServiceInfo serviceInfo,
                                 OperationInfo opInfo,
                                 boolean isOut)

createMessageParts

protected void createMessageParts(InterfaceInfo intf,
                                  OperationInfo op,
                                  Method method)

createInputWrappedMessageParts

protected void createInputWrappedMessageParts(OperationInfo op,
                                              Method method,
                                              MessageInfo inMsg)

createOutputWrappedMessageParts

protected void createOutputWrappedMessageParts(OperationInfo op,
                                               Method method,
                                               MessageInfo outMsg)

initializeParameter

protected void initializeParameter(MessagePartInfo part,
                                   Class rawClass,
                                   Type type)

getServiceQName

public QName getServiceQName()

getServiceQName

public QName getServiceQName(boolean lookup)

getEndpointName

public QName getEndpointName()

getEndpointName

public QName getEndpointName(boolean lookup)

getEndpointInfo

public EndpointInfo getEndpointInfo()

setEndpointName

public void setEndpointName(QName en)

getServiceName

protected String getServiceName()

getServiceNamespace

protected String getServiceNamespace()

getInterfaceName

public QName getInterfaceName()

isValidMethod

protected boolean isValidMethod(Method method)

isHolder

public boolean isHolder(Class<?> cls,
                        Type type)

getHolderType

public Type getHolderType(Class<?> cls,
                          Type type)

isWrapped

protected boolean isWrapped(Method method)

isMatchOperation

protected boolean isMatchOperation(String methodNameInClass,
                                   String methodNameInWsdl)

isOutParam

protected boolean isOutParam(Method method,
                             int j)

isInParam

protected boolean isInParam(Method method,
                            int j)

getInputMessageName

protected QName getInputMessageName(OperationInfo op,
                                    Method method)

createOutputMessageName

protected QName createOutputMessageName(OperationInfo op,
                                        Method method)

hasOutMessage

protected boolean hasOutMessage(Method m)

initializeFaults

protected void initializeFaults(InterfaceInfo service,
                                OperationInfo op,
                                Method method)

initializeDefaultInterceptors

protected void initializeDefaultInterceptors()
Overrides:
initializeDefaultInterceptors in class AbstractServiceFactoryBean

initializeFaultInterceptors

protected void initializeFaultInterceptors()

addFault

protected FaultInfo addFault(InterfaceInfo service,
                             OperationInfo op,
                             Class exClass)

createFaultForException

protected void createFaultForException(Class<?> exClass,
                                       FaultInfo fi)

getBeanClass

protected Class<?> getBeanClass(Class<?> exClass)

getFaultName

protected QName getFaultName(InterfaceInfo service,
                             OperationInfo o,
                             Class exClass,
                             Class beanClass)

getAction

protected String getAction(OperationInfo op,
                           Method method)

isHeader

public boolean isHeader(Method method,
                        int j)

getOperationName

protected QName getOperationName(InterfaceInfo service,
                                 Method method)
Creates a name for the operation from the method name. If an operation with that name already exists, a name is create by appending an integer to the end. I.e. if there is already two methods named doSomething, the first one will have an operation name of "doSomething" and the second "doSomething1".

Parameters:
service -
method -

isAsync

protected boolean isAsync(Method method)

getInPartName

protected QName getInPartName(OperationInfo op,
                              Method method,
                              int paramNumber)

getInParameterName

protected QName getInParameterName(OperationInfo op,
                                   Method method,
                                   int paramNumber)

getOutParameterName

protected QName getOutParameterName(OperationInfo op,
                                    Method method,
                                    int paramNumber)

getOutPartName

protected QName getOutPartName(OperationInfo op,
                               Method method,
                               int paramNumber)

getResponseWrapper

protected Class getResponseWrapper(Method selected)

getResponseWrapperClassName

protected String getResponseWrapperClassName(Method selected)

getRequestWrapper

protected Class getRequestWrapper(Method selected)

getRequestWrapperClassName

protected String getRequestWrapperClassName(Method selected)

isWrapperPartQualified

public boolean isWrapperPartQualified(MessagePartInfo mpi)

isWrapperPartNillable

public boolean isWrapperPartNillable(MessagePartInfo mpi)

getWrapperPartMaxOccurs

public long getWrapperPartMaxOccurs(MessagePartInfo mpi)

getWrapperPartMinOccurs

public long getWrapperPartMinOccurs(MessagePartInfo mpi)

getMethodDispatcher

protected MethodDispatcher getMethodDispatcher()

setMethodDispatcher

protected void setMethodDispatcher(MethodDispatcher m)

getConfigurations

public List<AbstractServiceConfiguration> getConfigurations()

setConfigurations

public void setConfigurations(List<AbstractServiceConfiguration> configurations)

getServiceClass

public Class<?> getServiceClass()

processTypes

protected void processTypes(Class sc,
                            Type tp)

setServiceType

public void setServiceType(ParameterizedType servicetype)

setServiceClass

public void setServiceClass(Class<?> serviceClass)

checkServiceClassAnnotations

protected void checkServiceClassAnnotations(Class<?> sc)

getWsdlURL

public String getWsdlURL()

setWsdlURL

public void setWsdlURL(String wsdlURL)

setWsdlURL

public void setWsdlURL(URL wsdlURL)

getServiceConfigurations

public List<AbstractServiceConfiguration> getServiceConfigurations()

setServiceConfigurations

public void setServiceConfigurations(List<AbstractServiceConfiguration> serviceConfigurations)

setServiceName

public void setServiceName(QName serviceName)

getInvoker

public Invoker getInvoker()

setInvoker

public void setInvoker(Invoker invoker)

getExecutor

public Executor getExecutor()

setExecutor

public void setExecutor(Executor executor)

getIgnoredClasses

public List<String> getIgnoredClasses()

setIgnoredClasses

public void setIgnoredClasses(List<String> ignoredClasses)

getExtraClass

protected Set<Class<?>> getExtraClass()

isWrapped

public boolean isWrapped()

getStyle

public String getStyle()

isRPC

public boolean isRPC(Method method)

setWrapped

public void setWrapped(boolean style)

getWrapped

public Boolean getWrapped()
Returns non-null if wrapped mode was explicitely disabled or enabled.


getProperties

public Map<String,Object> getProperties()

setProperties

public void setProperties(Map<String,Object> properties)

getIgnoredMethods

public List<Method> getIgnoredMethods()

setIgnoredMethods

public void setIgnoredMethods(List<Method> ignoredMethods)

getFeatures

public List<AbstractFeature> getFeatures()

setFeatures

public void setFeatures(List<AbstractFeature> f)

setValidate

public void setValidate(boolean validate)
If 'validate' is true, this class will validate the service. It will report problems with the service model and the XML schema for the service.

Parameters:
validate -

setSchemaLocations

public void setSchemaLocations(List<String> schemaLocations)

Apache CXF API

Apache CXF