You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2012/05/29 09:01:08 UTC
svn commit: r1343558 - in /cxf/branches/2.4.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/JAXRSClientFactory.java
Author: ningjiang
Date: Tue May 29 07:01:08 2012
New Revision: 1343558
URL: http://svn.apache.org/viewvc?rev=1343558&view=rev
Log:
Merged revisions 1343449 via svnmerge from
https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
................
r1343449 | ningjiang | 2012-05-29 09:47:59 +0800 (Tue, 29 May 2012) | 9 lines
Merged revisions 1343446 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1343446 | ningjiang | 2012-05-29 09:39:02 +0800 (Tue, 29 May 2012) | 1 line
CXF-4345 Allow user-secified feautres for JAXRSClientFactory
........
................
Modified:
cxf/branches/2.4.x-fixes/ (props changed)
cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/JAXRSClientFactory.java
Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue May 29 07:01:08 2012
@@ -0,0 +1,2 @@
+/cxf/branches/2.5.x-fixes:1343449
+/cxf/trunk:1343446
Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/JAXRSClientFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/JAXRSClientFactory.java?rev=1343558&r1=1343557&r2=1343558&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/JAXRSClientFactory.java (original)
+++ cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/JAXRSClientFactory.java Tue May 29 07:01:08 2012
@@ -26,6 +26,7 @@ import java.util.List;
import javax.ws.rs.core.MultivaluedMap;
import org.apache.cxf.common.util.ProxyHelper;
+import org.apache.cxf.feature.AbstractFeature;
import org.apache.cxf.jaxrs.model.UserResource;
/**
@@ -67,18 +68,30 @@ public final class JAXRSClientFactory {
* @return typed proxy
*/
public static <T> T create(URI baseURI, Class<T> cls, boolean inheritHeaders) {
-
+ return create(baseURI, cls, inheritHeaders, null);
+ }
+
+ /**
+ * Creates a proxy
+ * @param baseURI baseURI
+ * @param cls resource class, if not interface then a CGLIB proxy will be created
+ * @param inheritHeaders if true then existing proxy headers will be inherited by
+ * subresource proxies if any
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T create(URI baseURI, Class<T> cls, boolean inheritHeaders, List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = getBean(baseURI.toString(), cls, null);
bean.setInheritHeaders(inheritHeaders);
+ bean.setFeatures(features);
return bean.create(cls);
-
}
/**
* Creates a proxy
* @param baseAddress baseAddress
* @param cls resource class, if not interface then a CGLIB proxy will be created
- * @param config classpath location of Spring configuration resource
+ * @param configLocation classpath location of Spring configuration resource
* @return typed proxy
*/
public static <T> T create(String baseAddress, Class<T> cls, String configLocation) {
@@ -90,9 +103,42 @@ public final class JAXRSClientFactory {
* Creates a proxy
* @param baseAddress baseAddress
* @param cls resource class, if not interface then a CGLIB proxy will be created
+ * @param configLocation classpath location of Spring configuration resource
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T create(String baseAddress, Class<T> cls, String configLocation,
+ List<AbstractFeature> features) {
+ JAXRSClientFactoryBean bean = getBean(baseAddress, cls, configLocation);
+ bean.setFeatures(features);
+ return bean.create(cls);
+ }
+
+ /**
+ * Creates a proxy
+ * @param baseAddress baseAddress
+ * @param cls resource class, if not interface then a CGLIB proxy will be created
* This class is expected to have a root JAXRS Path annotation containing
* template variables, for ex, "/path/{id1}/{id2}"
- * @param config classpath location of Spring configuration resource
+ * @param configLocation classpath location of Spring configuration resource
+ * @param features, the features which will be applied to the client
+ * @param varValues values to replace root Path template variables
+ * @return typed proxy
+ */
+ public static <T> T create(String baseAddress, Class<T> cls, String configLocation,
+ List<AbstractFeature> features, Object... varValues) {
+ JAXRSClientFactoryBean bean = getBean(baseAddress, cls, configLocation);
+ bean.setFeatures(features);
+ return bean.create(cls, varValues);
+ }
+
+ /**
+ * Creates a proxy
+ * @param baseAddress baseAddress
+ * @param cls resource class, if not interface then a CGLIB proxy will be created
+ * This class is expected to have a root JAXRS Path annotation containing
+ * template variables, for ex, "/path/{id1}/{id2}"
+ * @param configLocation classpath location of Spring configuration resource
* @param varValues values to replace root Path template variables
* @return typed proxy
*/
@@ -123,11 +169,26 @@ public final class JAXRSClientFactory {
* @return typed proxy
*/
public static <T> T create(String baseAddress, Class<T> cls, List<?> providers, boolean threadSafe) {
+ return create(baseAddress, cls, providers, threadSafe, null);
+ }
+
+ /**
+ * Creates a thread safe proxy
+ * @param baseAddress baseAddress
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param providers list of providers
+ * @param threadSafe if true then a thread-safe proxy will be created
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T create(String baseAddress, Class<T> cls, List<?> providers, boolean threadSafe,
+ List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = getBean(baseAddress, cls, null);
bean.setProviders(providers);
if (threadSafe) {
bean.setInitialState(new ThreadLocalClientState(baseAddress));
}
+ bean.setFeatures(features);
return bean.create(cls);
}
@@ -136,12 +197,27 @@ public final class JAXRSClientFactory {
* @param baseAddress baseAddress
* @param cls proxy class, if not interface then a CGLIB proxy will be created
* @param providers list of providers
- * @param config classpath location of Spring configuration resource
+ * @param configLocation classpath location of Spring configuration resource
* @return typed proxy
*/
public static <T> T create(String baseAddress, Class<T> cls, List<?> providers, String configLocation) {
+ return create(baseAddress, cls, providers, configLocation);
+ }
+
+ /**
+ * Creates a proxy
+ * @param baseAddress baseAddress
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param providers list of providers
+ * @param configLocation classpath location of Spring configuration resource
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T create(String baseAddress, Class<T> cls, List<?> providers, String configLocation,
+ List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = getBean(baseAddress, cls, configLocation);
bean.setProviders(providers);
+ bean.setFeatures(features);
return bean.create(cls);
}
@@ -151,14 +227,30 @@ public final class JAXRSClientFactory {
* @param cls proxy class, if not interface then a CGLIB proxy will be created
* @param username username
* @param password password
- * @param config classpath location of Spring configuration resource
+ * @param configLocation classpath location of Spring configuration resource
* @return typed proxy
*/
public static <T> T create(String baseAddress, Class<T> cls, String username,
String password, String configLocation) {
+ return create(baseAddress, cls, username, password, configLocation);
+ }
+
+ /**
+ * Creates a proxy which will do basic authentication
+ * @param baseAddress baseAddress
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param username username
+ * @param password password
+ * @param configLocation classpath location of Spring configuration resource
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T create(String baseAddress, Class<T> cls, String username,
+ String password, String configLocation, List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = getBean(baseAddress, cls, configLocation);
bean.setUsername(username);
bean.setPassword(password);
+ bean.setFeatures(features);
return bean.create(cls);
}
@@ -180,14 +272,31 @@ public final class JAXRSClientFactory {
* @param cls proxy class, if not interface then a CGLIB proxy will be created
* @param modelRef model location
* @param providers list of providers
+ * @param configLocation classpath location of Spring configuration resource
* @return typed proxy
*/
public static <T> T createFromModel(String baseAddress, Class<T> cls, String modelRef,
List<?> providers, String configLocation) {
+ return createFromModel(baseAddress, cls, modelRef, providers, configLocation, null);
+ }
+
+ /**
+ * Creates a proxy using user resource model
+ * @param baseAddress baseAddress
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param modelRef model location
+ * @param providers list of providers
+ * @param configLocation classpath location of Spring configuration resource
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T createFromModel(String baseAddress, Class<T> cls, String modelRef,
+ List<?> providers, String configLocation, List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = WebClient.getBean(baseAddress, configLocation);
bean.setProviders(providers);
bean.setModelRef(modelRef);
bean.setServiceClass(cls);
+ bean.setFeatures(features);
return bean.create(cls);
}
@@ -202,6 +311,20 @@ public final class JAXRSClientFactory {
*/
public static <T> T createFromModel(String baseAddress, Class<T> cls, String modelRef,
List<?> providers, boolean threadSafe) {
+ return createFromModel(baseAddress, cls, modelRef, providers, threadSafe, null);
+ }
+
+ /**
+ * Creates a thread safe proxy using user resource model
+ * @param baseAddress baseAddress
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param modelRef model location
+ * @param providers list of providers
+ * @param threadSafe if true then thread-safe proxy will be created
+ * @return typed proxy
+ */
+ public static <T> T createFromModel(String baseAddress, Class<T> cls, String modelRef,
+ List<?> providers, boolean threadSafe, List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = WebClient.getBean(baseAddress, null);
bean.setProviders(providers);
bean.setModelRef(modelRef);
@@ -209,6 +332,7 @@ public final class JAXRSClientFactory {
if (threadSafe) {
bean.setInitialState(new ThreadLocalClientState(baseAddress));
}
+ bean.setFeatures(features);
return bean.create(cls);
}
@@ -217,6 +341,7 @@ public final class JAXRSClientFactory {
* @param baseAddress baseAddress
* @param cls proxy class, if not interface then a CGLIB proxy will be created
* @param modelBeans model beans
+ * @param configLocation classpath location of Spring configuration resource
* @return typed proxy
*/
public static <T> T createFromModel(String baseAddress, Class<T> cls, List<UserResource> modelBeans,
@@ -230,15 +355,32 @@ public final class JAXRSClientFactory {
* @param cls proxy class, if not interface then a CGLIB proxy will be created
* @param modelBeans model beans
* @param providers list of providers
+ * @param configLocation classpath location of Spring configuration resource
* @return typed proxy
*/
public static <T> T createFromModel(String baseAddress, Class<T> cls, List<UserResource> modelBeans,
List<?> providers, String configLocation) {
+ return createFromModel(baseAddress, cls, modelBeans, providers, configLocation);
+ }
+
+ /**
+ * Creates a proxy using user resource model
+ * @param baseAddress baseAddress
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param modelBeans model beans
+ * @param providers list of providers
+ * @param configLocation classpath location of Spring configuration resource
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T createFromModel(String baseAddress, Class<T> cls, List<UserResource> modelBeans,
+ List<?> providers, String configLocation, List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = WebClient.getBean(baseAddress, configLocation);
bean.setProviders(providers);
bean.setModelBeans(modelBeans);
bean.setServiceClass(cls);
+ bean.setFeatures(features);
return bean.create(cls);
}
@@ -262,8 +404,23 @@ public final class JAXRSClientFactory {
* @return typed proxy
*/
public static <T> T fromClient(Client client, Class<T> cls, boolean inheritHeaders) {
+ return fromClient(client, cls, inheritHeaders, null);
+ }
+
+ /**
+ * Creates a proxy, baseURI will be set to Client currentURI
+ * @param client Client instance
+ * @param cls proxy class, if not interface then a CGLIB proxy will be created
+ * @param inheritHeaders if true then existing Client headers will be inherited by new proxy
+ * and subresource proxies if any
+ * @param features, the features which will be applied to the client
+ * @return typed proxy
+ */
+ public static <T> T fromClient(Client client, Class<T> cls, boolean inheritHeaders,
+ List<AbstractFeature> features) {
JAXRSClientFactoryBean bean = getBean(client.getCurrentURI().toString(), cls, null);
bean.setInheritHeaders(inheritHeaders);
+ bean.setFeatures(features);
ClientState clientState = WebClient.getClientState(client);