Package org.apache.cxf.jaxrs.client
Class ClientProxyImpl
- java.lang.Object
-
- org.apache.cxf.jaxrs.client.AbstractClient
-
- org.apache.cxf.jaxrs.client.ClientProxyImpl
-
- All Implemented Interfaces:
Closeable,AutoCloseable,InvocationHandler,Client,InvocationHandlerAware
public class ClientProxyImpl extends AbstractClient implements InvocationHandlerAware, InvocationHandler, Closeable
Proxy-based client implementation
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classClientProxyImpl.BeanPairprotected classClientProxyImpl.BodyWriter-
Nested classes/interfaces inherited from class org.apache.cxf.jaxrs.client.AbstractClient
AbstractClient.AbstractBodyWriter, AbstractClient.AbstractClientAsyncResponseInterceptor
-
-
Field Summary
Fields Modifier and Type Field Description protected ClientProxyImpl.BodyWriterbodyWriterprotected static StringBUFFER_PROXY_RESPONSEprotected static ResourceBundleBUNDLEprotected org.apache.cxf.jaxrs.model.ClassResourceInfocriprotected booleaninheritHeadersprotected booleanisRootprotected static LoggerLOGprotected Clientproxyprotected static StringPROXY_METHOD_PARAM_BODY_INDEXprotected ClassLoaderproxyLoaderprotected static StringSLASHprotected Map<String,Object>valuesMap-
Fields inherited from class org.apache.cxf.jaxrs.client.AbstractClient
cfg, EXECUTOR_SERVICE_PROPERTY, HTTP_SCHEME, KEEP_CONDUIT_ALIVE, REQUEST_CONTEXT, RESPONSE_CONTEXT
-
-
Constructor Summary
Constructors Constructor Description ClientProxyImpl(URI baseURI, ClassLoader loader, org.apache.cxf.jaxrs.model.ClassResourceInfo cri, boolean isRoot, boolean inheritHeaders, Object... varValues)ClientProxyImpl(URI baseURI, ClassLoader loader, org.apache.cxf.jaxrs.model.ClassResourceInfo cri, boolean isRoot, boolean inheritHeaders, Map<String,Object> properties, Object... varValues)ClientProxyImpl(ClientState initialState, ClassLoader loader, org.apache.cxf.jaxrs.model.ClassResourceInfo cri, boolean isRoot, boolean inheritHeaders, Object... varValues)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddFormValue(javax.ws.rs.core.MultivaluedMap<String,String> form, String name, Object pValue, Annotation[] anns)protected voidaddNonEmptyPath(javax.ws.rs.core.UriBuilder builder, String pathValue)protected javax.ws.rs.client.InvocationCallback<Object>checkAsyncCallback(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, Map<String,Object> reqContext, org.apache.cxf.message.Message outMessage)protected voidcheckResponse(Method m, javax.ws.rs.core.Response r, org.apache.cxf.message.Message inMessage)protected org.apache.cxf.message.MessagecreateMessage(Object body, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, javax.ws.rs.core.MultivaluedMap<String,String> headers, URI currentURI, org.apache.cxf.message.Exchange exchange, Map<String,Object> invocationContext, boolean isProxy)protected ObjectdoChainedInvocation(URI uri, javax.ws.rs.core.MultivaluedMap<String,String> headers, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, Object[] methodParams, Object body, int bodyIndex, org.apache.cxf.message.Exchange exchange, Map<String,Object> invocationContext)protected javax.ws.rs.client.InvocationCallback<Object>doCheckAsyncCallback(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, javax.ws.rs.client.InvocationCallback<Object> callback)protected ObjectdoInvokeAsync(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, org.apache.cxf.message.Message outMessage, javax.ws.rs.client.InvocationCallback<Object> asyncCallback)protected static ResponseExceptionMapper<?>findExceptionMapper(org.apache.cxf.message.Message message, Class<?> exType)protected List<javax.ws.rs.core.MediaType>getAccept(javax.ws.rs.core.MultivaluedMap<String,String> allHeaders)protected static Optional<Method>getBeanGetter(Class<?> clazz, String property, Class<?>... parameterTypes)protected static intgetBodyIndex(javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, org.apache.cxf.jaxrs.model.OperationResourceInfo ori)protected TypegetGenericReturnType(Class<?> serviceCls, Method method, Class<?> returnType)ObjectgetInvocationHandler()protected static Annotation[]getMethodAnnotations(Method aMethod, int bodyIndex)protected static org.apache.cxf.jaxrs.ext.multipart.MultipartgetMultipart(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, int index)protected static Annotation[]getParamAnnotations(Method m, org.apache.cxf.jaxrs.model.Parameter p)protected static List<org.apache.cxf.jaxrs.model.Parameter>getParameters(javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, org.apache.cxf.jaxrs.model.ParameterType key)protected javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter>getParametersInfo(Method m, Object[] params, org.apache.cxf.jaxrs.model.OperationResourceInfo ori)protected List<Object>getPathParamValues(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, int bodyIndex)protected Class<?>getReturnType(Method method, org.apache.cxf.message.Message outMessage)protected Map<String,ClientProxyImpl.BeanPair>getValuesFromBeanParam(Object bean, Class<? extends Annotation> annClass)protected Map<String,ClientProxyImpl.BeanPair>getValuesFromBeanParam(Object bean, Class<? extends Annotation> annClass, Map<String,ClientProxyImpl.BeanPair> values)protected booleangetValuesFromBeanParamField(Object bean, Field f, Class<? extends Annotation> annClass, Map<String,ClientProxyImpl.BeanPair> values)protected voidhandleCookies(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<String,String> headers, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map)protected javax.ws.rs.core.MultivaluedMap<String,String>handleForm(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams)protected voidhandleHeaders(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<String,String> headers, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map)protected voidhandleMatrixes(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.UriBuilder ub)protected List<org.apache.cxf.jaxrs.ext.multipart.Attachment>handleMultipart(javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, Object[] params)protected voidhandleQueries(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.UriBuilder ub)protected ObjecthandleResponse(org.apache.cxf.message.Message outMessage, Class<?> serviceCls)Objectinvoke(Object o, Method m, Object[] params)Updates the current state if Client method is invoked, otherwise does the remote invocation or returns a new proxy if subresource method is invoked.protected booleanisIgnorableParameter(Method m, org.apache.cxf.jaxrs.model.Parameter p)protected JaxrsClientCallback<?>newJaxrsClientCallback(javax.ws.rs.client.InvocationCallback<Object> asyncCallback, org.apache.cxf.message.Message outMessage, Class<?> responseClass, Type outGenericType)protected static voidreportInvalidResourceMethod(Method m, String name)protected ObjectretryInvoke(URI newRequestURI, javax.ws.rs.core.MultivaluedMap<String,String> headers, Object body, org.apache.cxf.message.Exchange exchange, Map<String,Object> invContext)protected javax.ws.rs.core.MultivaluedMap<String,String>setRequestHeaders(javax.ws.rs.core.MultivaluedMap<String,String> headers, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, boolean formParams, Class<?> bodyClass, Class<?> responseClass)-
Methods inherited from class org.apache.cxf.jaxrs.client.AbstractClient
accept, accept, acceptEncoding, acceptLanguage, addMatrixQueryParamsToBuilder, authorization, calculateNewRequestURI, checkClientException, checkClosed, checkIfBodyEmpty, close, completeExchange, convertParamValue, convertParamValue, convertToWebApplicationException, cookie, createExchange, createMessage, doRunInterceptorChain, encoding, findCallbackType, getBaseURI, getCallbackClass, getCallbackType, getConfiguration, getContentsList, getCurrentBuilder, getCurrentURI, getHeaders, getRequestContext, getResponse, getState, getTemplateParametersMap, header, headers, language, match, modified, parseQuotedHeaderValue, prepareConduitSelector, preProcessResult, query, readBody, removeAllHeaders, reportMessageHandlerProblem, reset, resetBaseAddress, resetCurrentBuilder, resetResponse, resetResponseStateImmediatelyIfNeeded, responseStreamCanBeClosed, retryInvoke, setAsyncMessageObserverIfNeeded, setConfiguration, setContexts, setEmptyRequestPropertyIfNeeded, setPlainOperationNameProperty, setResponseBuilder, setSupportOnewayResponseProperty, setupInFaultObserver, setupInInterceptorChain, setupOutInterceptorChain, type, type, waitForResponseCode, writeBody
-
-
-
-
Field Detail
-
LOG
protected static final Logger LOG
-
BUNDLE
protected static final ResourceBundle BUNDLE
-
SLASH
protected static final String SLASH
- See Also:
- Constant Field Values
-
BUFFER_PROXY_RESPONSE
protected static final String BUFFER_PROXY_RESPONSE
- See Also:
- Constant Field Values
-
PROXY_METHOD_PARAM_BODY_INDEX
protected static final String PROXY_METHOD_PARAM_BODY_INDEX
- See Also:
- Constant Field Values
-
cri
protected org.apache.cxf.jaxrs.model.ClassResourceInfo cri
-
proxyLoader
protected ClassLoader proxyLoader
-
inheritHeaders
protected boolean inheritHeaders
-
isRoot
protected boolean isRoot
-
bodyWriter
protected ClientProxyImpl.BodyWriter bodyWriter
-
proxy
protected Client proxy
-
-
Constructor Detail
-
ClientProxyImpl
public ClientProxyImpl(URI baseURI, ClassLoader loader, org.apache.cxf.jaxrs.model.ClassResourceInfo cri, boolean isRoot, boolean inheritHeaders, Object... varValues)
-
ClientProxyImpl
public ClientProxyImpl(URI baseURI, ClassLoader loader, org.apache.cxf.jaxrs.model.ClassResourceInfo cri, boolean isRoot, boolean inheritHeaders, Map<String,Object> properties, Object... varValues)
-
ClientProxyImpl
public ClientProxyImpl(ClientState initialState, ClassLoader loader, org.apache.cxf.jaxrs.model.ClassResourceInfo cri, boolean isRoot, boolean inheritHeaders, Object... varValues)
-
-
Method Detail
-
invoke
public Object invoke(Object o, Method m, Object[] params) throws Throwable
Updates the current state if Client method is invoked, otherwise does the remote invocation or returns a new proxy if subresource method is invoked. Can throw an expected exception if ResponseExceptionMapper is registered- Specified by:
invokein interfaceInvocationHandler- Throws:
Throwable
-
addNonEmptyPath
protected void addNonEmptyPath(javax.ws.rs.core.UriBuilder builder, String pathValue)
-
getParametersInfo
protected javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> getParametersInfo(Method m, Object[] params, org.apache.cxf.jaxrs.model.OperationResourceInfo ori)
-
isIgnorableParameter
protected boolean isIgnorableParameter(Method m, org.apache.cxf.jaxrs.model.Parameter p)
-
getBodyIndex
protected static int getBodyIndex(javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, org.apache.cxf.jaxrs.model.OperationResourceInfo ori)
-
getBeanGetter
protected static Optional<Method> getBeanGetter(Class<?> clazz, String property, Class<?>... parameterTypes)
-
checkResponse
protected void checkResponse(Method m, javax.ws.rs.core.Response r, org.apache.cxf.message.Message inMessage) throws Throwable
- Throws:
Throwable
-
findExceptionMapper
protected static ResponseExceptionMapper<?> findExceptionMapper(org.apache.cxf.message.Message message, Class<?> exType)
-
setRequestHeaders
protected javax.ws.rs.core.MultivaluedMap<String,String> setRequestHeaders(javax.ws.rs.core.MultivaluedMap<String,String> headers, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, boolean formParams, Class<?> bodyClass, Class<?> responseClass)
-
getAccept
protected List<javax.ws.rs.core.MediaType> getAccept(javax.ws.rs.core.MultivaluedMap<String,String> allHeaders)
-
getPathParamValues
protected List<Object> getPathParamValues(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, int bodyIndex)
-
getParamAnnotations
protected static Annotation[] getParamAnnotations(Method m, org.apache.cxf.jaxrs.model.Parameter p)
-
getParameters
protected static List<org.apache.cxf.jaxrs.model.Parameter> getParameters(javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, org.apache.cxf.jaxrs.model.ParameterType key)
-
handleQueries
protected void handleQueries(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.UriBuilder ub)
-
getValuesFromBeanParam
protected Map<String,ClientProxyImpl.BeanPair> getValuesFromBeanParam(Object bean, Class<? extends Annotation> annClass)
-
getValuesFromBeanParam
protected Map<String,ClientProxyImpl.BeanPair> getValuesFromBeanParam(Object bean, Class<? extends Annotation> annClass, Map<String,ClientProxyImpl.BeanPair> values)
-
getValuesFromBeanParamField
protected boolean getValuesFromBeanParamField(Object bean, Field f, Class<? extends Annotation> annClass, Map<String,ClientProxyImpl.BeanPair> values)
-
handleMatrixes
protected void handleMatrixes(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.UriBuilder ub)
-
handleForm
protected javax.ws.rs.core.MultivaluedMap<String,String> handleForm(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, List<org.apache.cxf.jaxrs.model.Parameter> beanParams)
-
addFormValue
protected void addFormValue(javax.ws.rs.core.MultivaluedMap<String,String> form, String name, Object pValue, Annotation[] anns)
-
handleMultipart
protected List<org.apache.cxf.jaxrs.ext.multipart.Attachment> handleMultipart(javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, Object[] params)
-
handleHeaders
protected void handleHeaders(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<String,String> headers, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map)
-
getMultipart
protected static org.apache.cxf.jaxrs.ext.multipart.Multipart getMultipart(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, int index)
-
handleCookies
protected void handleCookies(Method m, Object[] params, javax.ws.rs.core.MultivaluedMap<String,String> headers, List<org.apache.cxf.jaxrs.model.Parameter> beanParams, javax.ws.rs.core.MultivaluedMap<org.apache.cxf.jaxrs.model.ParameterType,org.apache.cxf.jaxrs.model.Parameter> map)
-
createMessage
protected org.apache.cxf.message.Message createMessage(Object body, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, javax.ws.rs.core.MultivaluedMap<String,String> headers, URI currentURI, org.apache.cxf.message.Exchange exchange, Map<String,Object> invocationContext, boolean isProxy)
-
doChainedInvocation
protected Object doChainedInvocation(URI uri, javax.ws.rs.core.MultivaluedMap<String,String> headers, org.apache.cxf.jaxrs.model.OperationResourceInfo ori, Object[] methodParams, Object body, int bodyIndex, org.apache.cxf.message.Exchange exchange, Map<String,Object> invocationContext) throws Throwable
- Throws:
Throwable
-
checkAsyncCallback
protected javax.ws.rs.client.InvocationCallback<Object> checkAsyncCallback(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, Map<String,Object> reqContext, org.apache.cxf.message.Message outMessage)
-
doCheckAsyncCallback
protected javax.ws.rs.client.InvocationCallback<Object> doCheckAsyncCallback(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, javax.ws.rs.client.InvocationCallback<Object> callback)
-
doInvokeAsync
protected Object doInvokeAsync(org.apache.cxf.jaxrs.model.OperationResourceInfo ori, org.apache.cxf.message.Message outMessage, javax.ws.rs.client.InvocationCallback<Object> asyncCallback)
-
newJaxrsClientCallback
protected JaxrsClientCallback<?> newJaxrsClientCallback(javax.ws.rs.client.InvocationCallback<Object> asyncCallback, org.apache.cxf.message.Message outMessage, Class<?> responseClass, Type outGenericType)
-
retryInvoke
protected Object retryInvoke(URI newRequestURI, javax.ws.rs.core.MultivaluedMap<String,String> headers, Object body, org.apache.cxf.message.Exchange exchange, Map<String,Object> invContext) throws Throwable
- Specified by:
retryInvokein classAbstractClient- Throws:
Throwable
-
handleResponse
protected Object handleResponse(org.apache.cxf.message.Message outMessage, Class<?> serviceCls) throws Throwable
- Throws:
Throwable
-
getGenericReturnType
protected Type getGenericReturnType(Class<?> serviceCls, Method method, Class<?> returnType)
-
getReturnType
protected Class<?> getReturnType(Method method, org.apache.cxf.message.Message outMessage)
-
getInvocationHandler
public Object getInvocationHandler()
- Specified by:
getInvocationHandlerin interfaceInvocationHandlerAware
-
reportInvalidResourceMethod
protected static void reportInvalidResourceMethod(Method m, String name)
-
getMethodAnnotations
protected static Annotation[] getMethodAnnotations(Method aMethod, int bodyIndex)
-
-