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.