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 a5f0224  Look for createConfig() method on REST classes.
a5f0224 is described below

commit a5f0224381de30c98bef940f0dd532c897a777f9
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Tue Feb 23 11:53:58 2021 -0500

    Look for createConfig() method on REST classes.
---
 TODO.txt                                                      |  5 -----
 .../main/java/org/apache/juneau/rest/RestContextBuilder.java  | 11 ++++++++++-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/TODO.txt b/TODO.txt
index a07a6b4..bc99b12 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,12 +1,7 @@
-Replace @Rest(paths) with just @Rest(path)
 ClassInfo improvements to getMethod (e.g. getMethodExact vs getMethod).Re-add 
@PathRemainder annotation.
-Add a createConfig() method on RestContext.
 Thrown NotFound causes - javax.servlet.ServletException: Invalid method 
response: 200
 
-Instead of PropertyStores, builders should produce settings which are passed 
to contexts.
-
 Replace @Bean(findFluentSetters) with @FluentSetters.
-Remove @BeanIgnore annotations from classes.
 HttpResponse should use list of Headers and have a headers(Header...) method.
 HttpResponse should allow you to set code.
 HttpException subclasses can set status, but does it use code?
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 da5f92d..58baa52 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
@@ -238,6 +238,15 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
                Object o = resource == null ? null : resource.get();
                if (o instanceof Config)
                        x = (Config)o;
+
+               if (x == null) {
+                       x = BeanStore
+                               .of(beanStore)
+                               .beanCreateMethodFinder(Config.class, 
resourceClass)
+                               .find("createConfig")
+                               .run();
+               }
+
                if (x == null)
                        x = beanStore.getBean(Config.class).orElse(null);
 
@@ -249,7 +258,7 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
                VarResolver vr = 
beanStore.getBean(VarResolver.class).orElseThrow(()->new 
RuntimeException("VarResolver not found."));
                String cf = vr.resolve(configPath);
 
-               if ("SYSTEM_DEFAULT".equals(cf))
+               if (x == null && "SYSTEM_DEFAULT".equals(cf))
                        x = Config.getSystemDefault();
 
                if (x == null) {

Reply via email to