Author: sergeyb
Date: Mon Aug 12 19:14:19 2013
New Revision: 1513226
URL: http://svn.apache.org/r1513226
Log:
Basic attempt at supporting Configuration injection
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=1513226&r1=1513225&r2=1513226&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
Mon Aug 12 19:14:19 2013
@@ -41,6 +41,7 @@ import java.util.logging.Logger;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
@@ -92,6 +93,8 @@ public abstract class ProviderFactory {
new NameKeyMap<ProviderInfo<ReaderInterceptor>>(true);
protected Map<NameKey, ProviderInfo<WriterInterceptor>> writerInterceptors
=
new NameKeyMap<ProviderInfo<WriterInterceptor>>(true);
+ private Configuration dynamicConfiguration;
+
private List<ProviderInfo<MessageBodyReader<?>>> messageReaders =
new ArrayList<ProviderInfo<MessageBodyReader<?>>>();
@@ -156,6 +159,16 @@ public abstract class ProviderFactory {
return null;
}
+ public void setDynamicConfiguration(Configuration config) {
+ // Whatever is set inside Configuration is also set in this
ProviderFactory
+ // We use it only to support Configuration injection at a basic level
+ this.dynamicConfiguration = config;
+ }
+
+ public Configuration getDynamicConfiguration() {
+ return dynamicConfiguration;
+ }
+
public <T> ContextResolver<T> createContextResolver(Type contextType,
Message m) {
boolean isRequestor = MessageUtils.isRequestor(m);
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java?rev=1513226&r1=1513225&r2=1513226&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
Mon Aug 12 19:14:19 2013
@@ -342,8 +342,9 @@ public final class ServerProviderFactory
Set<OperationResourceInfo> oris =
cri.getMethodDispatcher().getOperationResourceInfos();
for (OperationResourceInfo ori : oris) {
for (DynamicFeature feature : dynamicFeatures) {
- FeatureContext methodConfigurable = new
MethodFeatureContextImpl(ori);
- feature.configure(new ResourceInfoImpl(ori),
methodConfigurable);
+ FeatureContext featureContext = new
MethodFeatureContextImpl(ori);
+ feature.configure(new ResourceInfoImpl(ori), featureContext);
+
super.setDynamicConfiguration(featureContext.getConfiguration());
}
}
Collection<ClassResourceInfo> subs = cri.getSubResources();
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java?rev=1513226&r1=1513225&r2=1513226&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
Mon Aug 12 19:14:19 2013
@@ -73,6 +73,7 @@ import javax.ws.rs.container.ContainerRe
import javax.ws.rs.container.ResourceContext;
import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
@@ -1098,6 +1099,8 @@ public final class JAXRSUtils {
o = new ProvidersImpl(contextMessage);
} else if (ContextResolver.class.isAssignableFrom(clazz)) {
o = createContextResolver(genericType, contextMessage);
+ } else if (Configuration.class.isAssignableFrom(clazz)) {
+ o =
ProviderFactory.getInstance(contextMessage).getDynamicConfiguration();
} else if (Application.class.isAssignableFrom(clazz)) {
ProviderInfo<?> providerInfo =
(ProviderInfo<?>)contextMessage.getExchange().getEndpoint().get(Application.class.getName());
Modified:
cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java?rev=1513226&r1=1513225&r2=1513226&view=diff
==============================================================================
---
cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
(original)
+++
cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
Mon Aug 12 19:14:19 2013
@@ -202,8 +202,8 @@ public class ClientImpl implements Clien
}
pf.setUserProviders(providers);
-
-
WebClient.getConfig(targetClient).getRequestContext().putAll(configImpl.getConfiguration().getProperties());
+ pf.setDynamicConfiguration(getConfiguration());
+
WebClient.getConfig(targetClient).getRequestContext().putAll(getConfiguration().getProperties());
// start building the invocation
return new
InvocationBuilderImpl(WebClient.fromClient(targetClient));