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 <[email protected]>
Authored: Mon Jan 19 12:36:02 2015 +0000
Committer: Sergey Beryozkin <[email protected]>
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;
+        }
+    }
 }

Reply via email to