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 2017/03/13 14:34:16 UTC
cxf git commit: [CXF-7282] Support the overriding of Application
resource life-cycle when it is autodiscovered
Repository: cxf
Updated Branches:
refs/heads/master be6190da7 -> 74b8db2dc
[CXF-7282] Support the overriding of Application resource life-cycle when it is autodiscovered
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/74b8db2d
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/74b8db2d
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/74b8db2d
Branch: refs/heads/master
Commit: 74b8db2dcc5fc60a513d9e73e258aeba99727a39
Parents: be6190d
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon Mar 13 14:34:00 2017 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon Mar 13 14:34:00 2017 +0000
----------------------------------------------------------------------
.../jaxrs/servlet/CXFNonSpringJaxrsServlet.java | 17 +++++++++++------
.../sci/JaxrsServletContainerInitializer.java | 8 +++++++-
2 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/74b8db2d/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 e961dd3..155c892 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
@@ -415,9 +415,12 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
return map;
}
- protected boolean isResourceLifecycleASingleton(ServletConfig servletConfig) {
+ protected boolean isAppResourceLifecycleASingleton(Application app, ServletConfig servletConfig) {
String scope = servletConfig.getInitParameter(SERVICE_SCOPE_PARAM);
- return SERVICE_SCOPE_SINGLETON.equals(scope);
+ if (scope != null) {
+ scope = (String)app.getProperties().get(SERVICE_SCOPE_PARAM);
+ }
+ return SERVICE_SCOPE_SINGLETON.equals(scope);
}
protected Object createSingletonInstance(Class<?> cls, Map<String, List<String>> props, ServletConfig sc)
@@ -504,11 +507,12 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
for (String cName : classNames) {
ApplicationInfo providerApp = createApplicationInfo(cName, servletConfig);
+ Application app = providerApp.getProvider();
JAXRSServerFactoryBean bean = ResourceUtils.createApplication(
- providerApp.getProvider(),
+ app,
ignoreApplicationPath,
getStaticSubResolutionValue(servletConfig),
- isResourceLifecycleASingleton(servletConfig),
+ isAppResourceLifecycleASingleton(app, servletConfig),
getBus());
String splitChar = getParameterSplitChar(servletConfig);
setAllInterceptors(bean, servletConfig, splitChar);
@@ -530,11 +534,12 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
protected void createServerFromApplication(ServletConfig servletConfig)
throws ServletException {
+ Application app = getApplication();
JAXRSServerFactoryBean bean = ResourceUtils.createApplication(
- getApplication(),
+ app,
isIgnoreApplicationPath(servletConfig),
getStaticSubResolutionValue(servletConfig),
- isResourceLifecycleASingleton(servletConfig),
+ isAppResourceLifecycleASingleton(app, servletConfig),
getBus());
bean.setBus(getBus());
bean.setApplication(getApplication());
http://git-wip-us.apache.org/repos/asf/cxf/blob/74b8db2d/rt/rs/http-sci/src/main/java/org/apache/cxf/jaxrs/servlet/sci/JaxrsServletContainerInitializer.java
----------------------------------------------------------------------
diff --git a/rt/rs/http-sci/src/main/java/org/apache/cxf/jaxrs/servlet/sci/JaxrsServletContainerInitializer.java b/rt/rs/http-sci/src/main/java/org/apache/cxf/jaxrs/servlet/sci/JaxrsServletContainerInitializer.java
index 017dc6e..c1896e1 100644
--- a/rt/rs/http-sci/src/main/java/org/apache/cxf/jaxrs/servlet/sci/JaxrsServletContainerInitializer.java
+++ b/rt/rs/http-sci/src/main/java/org/apache/cxf/jaxrs/servlet/sci/JaxrsServletContainerInitializer.java
@@ -21,6 +21,7 @@ package org.apache.cxf.jaxrs.servlet.sci;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -101,7 +102,8 @@ public class JaxrsServletContainerInitializer implements ServletContainerInitial
// with a JAX-RS Application class name
servletMapping = getServletMapping(ctx, servletName);
}
-
+ final Map<String, Object> appProperties =
+ app != null ? app.getProperties() : Collections.emptyMap();
app = new Application() {
@Override
public Set<Class<?>> getClasses() {
@@ -110,6 +112,10 @@ public class JaxrsServletContainerInitializer implements ServletContainerInitial
set.addAll(providersAndResources.get(Provider.class));
return set;
}
+ @Override
+ public Map<String, Object> getProperties() {
+ return appProperties;
+ }
};
}
}