You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/04/21 14:31:28 UTC

[juneau] branch master updated: Improve unit testability of juneau-rest-server.

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 <ja...@apache.org>
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
jamesbognar@apache.org.