This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 052597e  Improve unit testability of juneau-rest-server.
052597e is described below

commit 052597e01f901a5bd6de075d075af2e479a9dde3
Author: JamesBognar <[email protected]>
AuthorDate: Sat Apr 21 10:31:00 2018 -0400

    Improve unit testability of juneau-rest-server.
---
 .../java/org/apache/juneau/rest/RestContext.java   | 29 +++++++++++++++++++---
 .../org/apache/juneau/rest/RestContextBuilder.java | 23 -----------------
 .../java/org/apache/juneau/rest/RestServlet.java   |  3 +--
 .../juneau/rest/BasicRestInfoProviderTest.java     | 21 ++++++++++++++++
 4 files changed, 48 insertions(+), 28 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 9730376..ac98bc1 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -2819,6 +2819,29 @@ public final class RestContext extends BeanContext {
        private final ClasspathResourceManager staticResourceManager;
        private final ConcurrentHashMap<Integer,AtomicInteger> stackTraceHashes 
= new ConcurrentHashMap<>();
 
+       /**
+        * Constructor.
+        * 
+        * @param resource The resource annotated with <ja>@RestResource</ja>.
+        * @return A new builder object.
+        * @throws ServletException Something bad happened.
+        */
+       static RestContextBuilder create(Object resource) throws 
ServletException {
+               return new RestContextBuilder(null, resource.getClass(), 
null).init(resource);
+       }
+       
+       /**
+        * Constructor.
+        * 
+        * @param servletConfig The servlet config passed into the servlet by 
the servlet container.
+        * @param resourceClass The class annotated with <ja>@RestResource</ja>.
+        * @param parentContext The parent context, or <jk>null</jk> if there 
is no parent context.
+        * @return A new builder object.
+        * @throws ServletException Something bad happened.
+        */
+       static RestContextBuilder create(ServletConfig servletConfig, Class<?> 
resourceClass, RestContext parentContext) throws ServletException {
+               return new RestContextBuilder(servletConfig, resourceClass, 
parentContext);
+       }
 
        /**
         * Constructor.
@@ -2826,7 +2849,7 @@ public final class RestContext extends BeanContext {
         * @param builder The servlet configuration object.
         * @throws Exception If any initialization problems were encountered.
         */
-       public RestContext(RestContextBuilder builder) throws Exception {
+       RestContext(RestContextBuilder builder) throws Exception {
                super(builder.getPropertyStore());
                
                RestException _initException = null;
@@ -3148,11 +3171,11 @@ public final class RestContext extends BeanContext {
 
                                if (o instanceof Class) {
                                        Class<?> oc = (Class<?>)o;
-                                       childBuilder = new 
RestContextBuilder(builder.inner, oc, this);
+                                       childBuilder = 
RestContext.create(builder.inner, oc, this);
                                        r = resourceResolver.resolve(resource, 
oc, childBuilder);
                                } else {
                                        r = o;
-                                       childBuilder = new 
RestContextBuilder(builder.inner, o.getClass(), this);
+                                       childBuilder = 
RestContext.create(builder.inner, o.getClass(), this);
                                }
 
                                childBuilder.init(r);
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 4e2dfab..56966e8 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -108,29 +108,6 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
        String path;
        HtmlDocBuilder htmlDocBuilder;
 
-       /**
-        * Constructor for top-level servlets when using dependency injection.
-        * 
-        * <p>
-        * Work-in-progress.
-        * 
-        * @param config
-        *      The servlet config object we're extending.
-        * @param resourceClass
-        *      The class annotated with the {@link RestResource @RestResource} 
annotation.
-        * @throws ServletException
-        */
-       public RestContextBuilder(ServletConfig config, Class<?> resourceClass) 
throws ServletException {
-               this(config, resourceClass, null);
-       }
-
-       /**
-        * Constructor.
-        * 
-        * @param servletConfig The servlet config passed into the servlet by 
the servlet container.
-        * @param resource The class annotated with <ja>@RestResource</ja>.
-        * @throws ServletException Something bad happened.
-        */
        RestContextBuilder(ServletConfig servletConfig, Class<?> resourceClass, 
RestContext parentContext) throws ServletException {
                this.inner = servletConfig;
                this.resourceClass = resourceClass;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
index e436452..7e3f7f9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
@@ -46,8 +46,7 @@ public abstract class RestServlet extends HttpServlet {
        @Override /* Servlet */
        public final synchronized void init(ServletConfig servletConfig) throws 
ServletException {
                try {
-                       builder = new RestContextBuilder(servletConfig, 
this.getClass(), null);
-                       builder.init(this);
+                       builder = RestContext.create(servletConfig, 
this.getClass(), null).init(this);
                        super.init(servletConfig);
                        if (! isInitialized) {
                                
builder.servletContext(this.getServletContext());
diff --git 
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
 
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
new file mode 100644
index 0000000..35bf08b
--- /dev/null
+++ 
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
@@ -0,0 +1,21 @@
+// 
***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                
                                              * 
+// *                                                                           
                                              *
+// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
+// *                                                                           
                                              *
+// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the 
License.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau.rest;
+
+/**
+ * TODO
+ * 
+ */
+public class BasicRestInfoProviderTest {
+
+}

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to