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) {