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 58ccad1  Context API refactoring.
58ccad1 is described below

commit 58ccad19922cbf9c2d5ad46e6c7a652c2db80970
Author: JamesBognar <[email protected]>
AuthorDate: Fri Sep 10 20:11:32 2021 -0400

    Context API refactoring.
---
 .../apache/juneau/rest/mock/MockRestClient.java    |  3 ++-
 .../java/org/apache/juneau/rest/RestContext.java   | 25 ++++++++--------------
 .../org/apache/juneau/rest/RestContextBuilder.java | 10 +++++++--
 .../java/org/apache/juneau/rest/Swagger_Test.java  |  4 ++--
 .../apache/juneau/rest/testutils/TestUtils.java    |  2 +-
 5 files changed, 22 insertions(+), 22 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
index 5231498..240e6e6 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
@@ -280,7 +280,8 @@ public class MockRestClient extends RestClient implements 
HttpClientConnection {
                                boolean isClass = restBean instanceof Class;
                                Object o = isClass ? 
((Class<?>)restBean).newInstance() : restBean;
                                RestContext rc = RestContext
-                                       .create(o)
+                                       .create(null, null, null, o)
+                                       .init(o)
                                        
.callLoggerDefault(BasicTestRestLogger.class)
                                        .debugDefault(CONDITIONAL)
                                        .build()
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 316d9a5..60be7c5 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
@@ -184,30 +184,23 @@ public class RestContext extends Context {
        /**
         * Constructor.
         *
-        * @param resource
-        *      The REST servlet or bean annotated with <ja>@Rest</ja>.
-        * @return A new builder object.
-        * @throws ServletException Something bad happened.
-        */
-       public static RestContextBuilder create(Object resource) throws 
ServletException {
-               return new RestContextBuilder(Optional.empty(), 
Optional.empty(), resource.getClass(), Optional.of(resource)).init(resource);
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param parent
+        * @param parentContext
         *      The parent context if the REST bean was registered via {@link 
Rest#children()}.
-        *      <br>Will be <jk>null</jk> if the bean is a top-level resource.
+        *      <br>Can be <jk>null</jk> if the bean is a top-level resource.
         * @param servletConfig
         *      The servlet config passed into the servlet by the servlet 
container.
+        *      <br>Can be null if not available.,
         * @param resourceClass
         *      The class annotated with <ja>@Rest</ja>.
+        *      <br>Can be <jk>null</jk> if the resource bean is provided.
+        * @param resource
+        *      The resource bean.
+        *      <br>Can be <jk>null</jk> if not instantiated at the time of 
this method call.
         * @return A new builder object.
         * @throws ServletException Something bad happened.
         */
-       static RestContextBuilder create(RestContext parentContext, 
ServletConfig servletConfig, Class<?> resourceClass, Object resource) throws 
ServletException {
-               return new 
RestContextBuilder(Optional.ofNullable(parentContext), 
Optional.ofNullable(servletConfig), resourceClass, 
Optional.ofNullable(resource));
+       public static RestContextBuilder create(RestContext parentContext, 
ServletConfig servletConfig, Class<?> resourceClass, Object resource) throws 
ServletException {
+               return new 
RestContextBuilder(Optional.ofNullable(parentContext), 
Optional.ofNullable(servletConfig), resource == null ? resourceClass : 
resource.getClass(), Optional.ofNullable(resource));
        }
 
        /**
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 8cb6bba..0a634d1 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
@@ -369,10 +369,16 @@ public class RestContextBuilder extends ContextBuilder 
implements ServletConfig
                return x;
        }
 
-       /*
+       /**
+        * Performs initialization on this builder.
+        * 
         * Calls all @RestHook(INIT) methods on the specified resource object.
+        * 
+        * @param resource The resource bean. Required.
+        * @return This object.
+        * @throws ServletException If hook method calls failed.
         */
-       RestContextBuilder init(Object resource) throws ServletException {
+       public RestContextBuilder init(Object resource) throws ServletException 
{
                this.resource = resource instanceof Supplier ? 
(Supplier<?>)resource : ()->resource;
 
                ClassInfo rci = ClassInfo.ofProxy(resource);
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
index 6e28357..b238e37 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
@@ -45,7 +45,7 @@ public class Swagger_Test {
        public void testMethod() {}
 
        private org.apache.juneau.dto.swagger.Swagger getSwaggerWithFile(Object 
resource) throws Exception {
-               RestContext rc = 
RestContext.create(resource).fileFinder(TestClasspathFileFinder.class).build();
+               RestContext rc = 
RestContext.create(null,null,null,resource).init(resource).fileFinder(TestClasspathFileFinder.class).build();
                RestOpContext roc = 
RestOpContext.create(Swagger_Test.class.getMethod("testMethod"), rc).build();
                RestRequest req = rc.createRequest(new RestCall(resource, rc, 
new MockServletRequest(), new MockServletResponse()).restOpContext(roc));
                SwaggerProvider ip = rc.getSwaggerProvider();
@@ -53,7 +53,7 @@ public class Swagger_Test {
        }
 
        private static org.apache.juneau.dto.swagger.Swagger getSwagger(Object 
resource) throws Exception {
-               RestContext rc = RestContext.create(resource).build();
+               RestContext rc = 
RestContext.create(null,null,null,resource).init(resource).build();
                RestOpContext roc = 
RestOpContext.create(Swagger_Test.class.getMethod("testMethod"), rc).build();
                RestRequest req = rc.createRequest(new RestCall(resource, rc, 
new MockServletRequest(), new MockServletResponse()).restOpContext(roc));
                SwaggerProvider ip = rc.getSwaggerProvider();
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/testutils/TestUtils.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/testutils/TestUtils.java
index f593e83..1cb6b2a 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/testutils/TestUtils.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/testutils/TestUtils.java
@@ -27,7 +27,7 @@ public class TestUtils extends 
org.apache.juneau.testutils.TestUtils {
        public static Swagger getSwagger(Class<?> c) {
                try {
                        Object r = c.newInstance();
-                       RestContext rc = RestContext.create(r).build();
+                       RestContext rc = 
RestContext.create(null,null,null,r).init(r).build();
                        RestOpContext ctx = 
RestOpContext.create(TestUtils.class.getMethod("getSwagger", Class.class), 
rc).build();
                        RestRequest req = rc.createRequest(new RestCall(r, rc, 
new MockServletRequest(), new MockServletResponse()).restOpContext(ctx));
                        SwaggerProvider ip = rc.getSwaggerProvider();

Reply via email to