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 2015/01/19 13:36:17 UTC
cxf git commit: Adding few CXFNonSpringJaxrsServ;
et utility constructors
Repository: cxf
Updated Branches:
refs/heads/master 8cd3eb88f -> 9e6e0ea42
Adding few CXFNonSpringJaxrsServ;et utility constructors
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/9e6e0ea4
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/9e6e0ea4
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/9e6e0ea4
Branch: refs/heads/master
Commit: 9e6e0ea422536f384e07f5ac6bb002201a9120c6
Parents: 8cd3eb8
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Mon Jan 19 12:36:02 2015 +0000
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Mon Jan 19 12:36:02 2015 +0000
----------------------------------------------------------------------
.../jaxrs/servlet/CXFNonSpringJaxrsServlet.java | 55 +++++++++++++++++++-
1 file changed, 53 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/9e6e0ea4/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 562ffa2..73d8688 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
@@ -28,6 +28,7 @@ import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.logging.Logger;
import javax.servlet.ServletConfig;
@@ -89,11 +90,32 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
private static final String JAXRS_APPLICATION_PARAM = "javax.ws.rs.Application";
private ClassLoader classLoader;
+ private Application application;
+
+ public CXFNonSpringJaxrsServlet() {
+
+ }
+
+ public CXFNonSpringJaxrsServlet(Application app) {
+ this.application = app;
+ }
+
+ public CXFNonSpringJaxrsServlet(Object singletonService) {
+ this(Collections.singleton(singletonService));
+ }
+ public CXFNonSpringJaxrsServlet(Set<Object> applicationSingletones) {
+ this(new ApplicationImpl(applicationSingletones));
+ }
@Override
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
+ if (getApplication() != null) {
+ createServerFromApplication(servletConfig);
+ return;
+ }
+
String applicationClass = servletConfig.getInitParameter(JAXRS_APPLICATION_PARAM);
if (applicationClass != null) {
createServerFromApplication(applicationClass, servletConfig);
@@ -466,8 +488,7 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
protected void createServerFromApplication(String applicationNames, ServletConfig servletConfig)
throws ServletException {
- String ignoreParam = servletConfig.getInitParameter(IGNORE_APP_PATH_PARAM);
- boolean ignoreApplicationPath = ignoreParam == null || MessageUtils.isTrue(ignoreParam);
+ boolean ignoreApplicationPath = isIgnoreApplicationPath(servletConfig);
String[] classNames = StringUtils.split(applicationNames, getParameterSplitChar(servletConfig));
@@ -494,6 +515,22 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
}
}
+ protected boolean isIgnoreApplicationPath(ServletConfig servletConfig) {
+ String ignoreParam = servletConfig.getInitParameter(IGNORE_APP_PATH_PARAM);
+ return ignoreParam == null || MessageUtils.isTrue(ignoreParam);
+ }
+
+ protected void createServerFromApplication(ServletConfig servletConfig)
+ throws ServletException {
+
+ JAXRSServerFactoryBean bean = ResourceUtils.createApplication(getApplication(),
+ isIgnoreApplicationPath(servletConfig),
+ getStaticSubResolutionValue(servletConfig));
+ bean.setBus(getBus());
+ bean.setApplication(getApplication());
+ bean.create();
+ }
+
protected Application createApplicationInstance(String appClassName, ServletConfig servletConfig)
throws ServletException {
return null;
@@ -549,4 +586,18 @@ public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
public void setClassLoader(ClassLoader loader) {
this.classLoader = loader;
}
+
+ protected Application getApplication() {
+ return application;
+ }
+
+ private static class ApplicationImpl extends Application {
+ private Set<Object> applicationSingletones;
+ public ApplicationImpl(Set<Object> applicationSingletones) {
+ this.applicationSingletones = applicationSingletones;
+ }
+ public Set<Object> getSingletons() {
+ return applicationSingletones;
+ }
+ }
}