You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2014/02/07 13:17:53 UTC
svn commit: r1565628 - in /cxf/branches/2.7.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/
systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/
Author: sergeyb
Date: Fri Feb 7 12:17:53 2014
New Revision: 1565628
URL: http://svn.apache.org/r1565628
Log:
Merged revisions 1565616 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1565616 | sergeyb | 2014-02-07 10:51:43 +0000 (Fri, 07 Feb 2014) | 1 line
[CXF-5542] Minor updates
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1565616
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java?rev=1565628&r1=1565627&r2=1565628&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java Fri Feb 7 12:17:53 2014
@@ -122,7 +122,6 @@ public abstract class AbstractResourceIn
}
private static ThreadLocalProxy<?> getFieldThreadLocalProxy(Field f, Object provider) {
- ThreadLocalProxy<?> defaultValue = InjectionUtils.createThreadLocalProxy(f.getType());
if (provider != null) {
Object proxy = null;
synchronized (provider) {
@@ -132,18 +131,17 @@ public abstract class AbstractResourceIn
// continue
}
if (!(proxy instanceof ThreadLocalProxy)) {
- proxy = defaultValue;
+ proxy = InjectionUtils.createThreadLocalProxy(f.getType());
InjectionUtils.injectFieldValue(f, provider, proxy);
}
}
return (ThreadLocalProxy<?>)proxy;
} else {
- return defaultValue;
+ return InjectionUtils.createThreadLocalProxy(f.getType());
}
}
private static ThreadLocalProxy<?> getMethodThreadLocalProxy(Method m, Object provider) {
- ThreadLocalProxy<?> defaultValue = InjectionUtils.createThreadLocalProxy(m.getParameterTypes()[0]);
if (provider != null) {
Object proxy = null;
synchronized (provider) {
@@ -155,24 +153,27 @@ public abstract class AbstractResourceIn
// continue
}
if (!(proxy instanceof ThreadLocalProxy)) {
- proxy = defaultValue;
+ proxy = InjectionUtils.createThreadLocalProxy(m.getParameterTypes()[0]);
InjectionUtils.injectThroughMethod(provider, m, proxy);
}
}
return (ThreadLocalProxy<?>)proxy;
} else {
- return defaultValue;
+ return InjectionUtils.createThreadLocalProxy(m.getParameterTypes()[0]);
}
}
@SuppressWarnings("unchecked")
private <T> Map<Class<?>, Map<T, ThreadLocalProxy<?>>> getProxyMap(Class<T> keyCls, String prop) {
- Object property = bus.getProperty(prop);
- if (property == null) {
- Map<Class<?>, Map<T, ThreadLocalProxy<?>>> map
- = new ConcurrentHashMap<Class<?>, Map<T, ThreadLocalProxy<?>>>(2);
- bus.setProperty(prop, map);
- property = map;
+ Object property = null;
+ synchronized (bus) {
+ property = bus.getProperty(prop);
+ if (property == null) {
+ Map<Class<?>, Map<T, ThreadLocalProxy<?>>> map
+ = new ConcurrentHashMap<Class<?>, Map<T, ThreadLocalProxy<?>>>(2);
+ bus.setProperty(prop, map);
+ property = map;
+ }
}
return (Map<Class<?>, Map<T, ThreadLocalProxy<?>>>)property;
}
@@ -288,8 +289,9 @@ public abstract class AbstractResourceIn
}
private Map<Class<?>, List<Field>> addContextField(Map<Class<?>, List<Field>> theFields, Field f) {
-
- theFields = theFields == null ? new HashMap<Class<?>, List<Field>>() : theFields;
+ if (theFields == null) {
+ theFields = new HashMap<Class<?>, List<Field>>();
+ }
List<Field> fields = theFields.get(serviceClass);
if (fields == null) {
@@ -302,12 +304,13 @@ public abstract class AbstractResourceIn
return theFields;
}
- private <T, V> void addToMap(Map<Class<?>, Map<T, V>> theFields,
- T f, V proxy) {
- Map<T, V> proxies = theFields.get(serviceClass);
+ private <T, V> void addToMap(Map<Class<?>, Map<T, V>> proxyMap,
+ T f,
+ V proxy) {
+ Map<T, V> proxies = proxyMap.get(serviceClass);
if (proxies == null) {
proxies = new HashMap<T, V>();
- theFields.put(serviceClass, proxies);
+ proxyMap.put(serviceClass, proxies);
}
if (!proxies.containsKey(f)) {
proxies.put(f, proxy);
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?rev=1565628&r1=1565627&r2=1565628&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java Fri Feb 7 12:17:53 2014
@@ -1001,37 +1001,35 @@ public final class InjectionUtils {
if (!cri.contextsAvailable() || !cri.isSingleton()) {
return;
}
-
- for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) {
- Method method = entry.getValue();
- Object value = method.getParameterTypes()[0] == Application.class
- ? app : cri.getContextSetterProxy(method);
- try {
- synchronized (instance) {
+ synchronized (instance) {
+ for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) {
+ Method method = entry.getValue();
+ Object value = method.getParameterTypes()[0] == Application.class
+ ? app : cri.getContextSetterProxy(method);
+ try {
if (value == InjectionUtils.extractFromMethod(instance,
getGetterFromSetter(method),
false)) {
continue;
}
+
+ } catch (Throwable t) {
+ // continue
}
- } catch (Throwable t) {
- // continue
+ InjectionUtils.injectThroughMethod(instance, method, value);
}
- InjectionUtils.injectThroughMethod(instance, method, value);
- }
-
- for (Field f : cri.getContextFields()) {
- Object value = f.getType() == Application.class ? app : cri.getContextFieldProxy(f);
- try {
- synchronized (instance) {
+
+ for (Field f : cri.getContextFields()) {
+ Object value = f.getType() == Application.class ? app : cri.getContextFieldProxy(f);
+ try {
if (value == InjectionUtils.extractFieldValue(f, instance)) {
continue;
}
+ } catch (Throwable t) {
+ // continue
}
- } catch (Throwable t) {
- // continue
+ InjectionUtils.injectFieldValue(f, instance, value);
}
- InjectionUtils.injectFieldValue(f, instance, value);
}
}
Modified: cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml?rev=1565628&r1=1565627&r2=1565628&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml (original)
+++ cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml Fri Feb 7 12:17:53 2014
@@ -69,11 +69,12 @@ http://cxf.apache.org/schemas/jaxrs.xsd"
<ref bean="gBookStore2"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
- <ref bean="jackson"/>
+ <ref bean="jackson2"/>
</jaxrs:providers>
</jaxrs:server>
<bean id="jackson" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
+ <bean id="jackson2" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
<bean id="bookstore" class="org.apache.cxf.systest.jaxrs.BookStore"/>
<bean id="bookstore2" class="org.apache.cxf.systest.jaxrs.BookStoreSpring"/>
<bean id="gBookStore" class="org.apache.cxf.systest.jaxrs.GenericBookStoreSpring"/>