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/12/17 17:16:34 UTC
cxf git commit: Copying minor updates to CXFNonSpringJaxrsServlet
3.0.x made as part of bigger changes on the trunk
Repository: cxf
Updated Branches:
refs/heads/3.0.x-fixes 1512a124d -> d0e8cde61
Copying minor updates to CXFNonSpringJaxrsServlet 3.0.x made as part of bigger changes on the trunk
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d0e8cde6
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d0e8cde6
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d0e8cde6
Branch: refs/heads/3.0.x-fixes
Commit: d0e8cde61fbace404e8872c08c48618b3dc4f0d0
Parents: 1512a12
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Wed Dec 17 16:16:19 2014 +0000
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Wed Dec 17 16:16:19 2014 +0000
----------------------------------------------------------------------
.../jaxrs/servlet/CXFNonSpringJaxrsServlet.java | 26 +++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/d0e8cde6/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
index 9ac7616..ca9aea7 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
@@ -39,6 +39,7 @@ import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.PrimitiveUtils;
import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.feature.Feature;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.interceptor.Interceptor;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
@@ -66,6 +67,7 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
private static final String IGNORE_APP_PATH_PARAM = "jaxrs.application.address.ignore";
private static final String SERVICE_CLASSES_PARAM = "jaxrs.serviceClasses";
private static final String PROVIDERS_PARAM = "jaxrs.providers";
+ private static final String FEATURES_PARAM = "jaxrs.features";
private static final String OUT_INTERCEPTORS_PARAM = "jaxrs.outInterceptors";
private static final String OUT_FAULT_INTERCEPTORS_PARAM = "jaxrs.outFaultInterceptors";
private static final String IN_INTERCEPTORS_PARAM = "jaxrs.inInterceptors";
@@ -132,10 +134,32 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
bean.setResourceProvider(entry.getKey(), entry.getValue());
}
setExtensions(bean, servletConfig);
-
+ List<? extends Feature> features = getFeatures(servletConfig, splitChar);
+ bean.setFeatures(features);
bean.create();
}
+ protected List<? extends Feature> getFeatures(ServletConfig servletConfig, String splitChar)
+ throws ServletException {
+
+ String featuresList = servletConfig.getInitParameter(FEATURES_PARAM);
+ if (featuresList == null) {
+ return Collections.< Feature >emptyList();
+ }
+ String[] classNames = StringUtils.split(featuresList, splitChar);
+ List< Feature > features = new ArrayList< Feature >();
+ for (String cName : classNames) {
+ Map<String, List<String>> props = new HashMap<String, List<String>>();
+ String theName = getClassNameAndProperties(cName, props);
+ if (theName.length() != 0) {
+ Class<?> cls = loadClass(theName);
+ if (Feature.class.isAssignableFrom(cls)) {
+ features.add((Feature)createSingletonInstance(cls, props, servletConfig));
+ }
+ }
+ }
+ return features;
+ }
protected String getParameterSplitChar(ServletConfig servletConfig) {
String param = servletConfig.getInitParameter(PARAMETER_SPLIT_CHAR);
if (!StringUtils.isEmpty(param) && SPACE_PARAMETER_SPLIT_CHAR.equals(param.trim())) {