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 a186aed Context API refactoring.
a186aed is described below
commit a186aed62ccf85a505be1e18b25505d824b8cde3
Author: JamesBognar <[email protected]>
AuthorDate: Mon Sep 13 21:03:35 2021 -0400
Context API refactoring.
---
.../java/org/apache/juneau/rest/RestContext.java | 6 ++---
.../org/apache/juneau/rest/RestContextBuilder.java | 31 +++++++++++++---------
2 files changed, 21 insertions(+), 16 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 152731c..586b582 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
@@ -178,7 +178,6 @@ public class RestContext extends Context {
private final SwaggerProvider swaggerProvider;
private final BasicHttpException initException;
private final RestContext parentContext;
- private final BeanStore rootBeanStore;
private final BeanStore beanStore;
private final UriResolution uriResolution;
private final UriRelativity uriRelativity;
@@ -192,6 +191,7 @@ public class RestContext extends Context {
final DefaultClassList defaultClasses;
final DefaultSettingsMap defaultSettings;
+ final BeanStore rootBeanStore;
// Lifecycle methods
private final MethodInvoker[]
@@ -236,11 +236,11 @@ public class RestContext extends Context {
resourceClass = builder.resourceClass;
resource = builder.resource;
parentContext = builder.parentContext;
- rootBeanStore = builder.beanStore();
+ rootBeanStore = builder.rootBeanStore();
defaultClasses = builder.defaultClasses();
defaultSettings = builder.defaultSettings();
- BeanStore bs = beanStore = rootBeanStore.copy().build();
+ BeanStore bs = beanStore = builder.beanStore();
beanStore
.addBean(BeanStore.class, beanStore)
.addBean(RestContext.class, this)
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 5969b2a..5cb2d7b 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
@@ -126,7 +126,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
private DefaultClassList defaultClasses;
private DefaultSettingsMap defaultSettings;
- private BeanStore beanStore;
+ private BeanStore rootBeanStore, beanStore;
private Config config;
private VarResolver.Builder varResolver;
private Logger logger;
@@ -196,6 +196,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
if (parentContext != null) {
defaultClasses =
parentContext.defaultClasses.copy();
defaultSettings =
parentContext.defaultSettings.copy();
+ rootBeanStore = parentContext.rootBeanStore;
} else {
defaultClasses = DefaultClassList.create();
defaultSettings = DefaultSettingsMap.create();
@@ -207,22 +208,17 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
.addBean(ServletConfig.class,
ofNullable(servletConfig).orElse(this))
.addBean(ServletContext.class,
ofNullable(servletConfig).orElse(this).getServletContext());
- varResolver = createVarResolver(beanStore,
resourceClass);
-
- VarResolver vr = varResolver.build();
- beanStore.addBean(VarResolver.class, vr);
-
- // Find our config file. It's the last non-empty
@RestResource(config).
- config = createConfig(beanStore, resourceClass);
- beanStore.addBean(Config.class, config);
+ if (rootBeanStore == null)
+ rootBeanStore = beanStore.copy().build();
- // Add our config file to the variable resolver.
- varResolver.bean(Config.class, config);
- vr = varResolver.build();
- beanStore.addBean(VarResolver.class, vr);
+ varResolver = createVarResolver(beanStore,
resourceClass);
+ beanStore.add(VarResolver.class, varResolver.build());
+ config = beanStore.add(Config.class,
createConfig(beanStore, resourceClass));
+ beanStore.add(VarResolver.class,
varResolver.bean(Config.class, config).build());
// Add the servlet init parameters to our properties.
if (servletConfig != null) {
+ VarResolver vr =
beanStore.getBean(VarResolver.class).get();
for (Enumeration<String> ep =
servletConfig.getInitParameterNames(); ep.hasMoreElements();) {
String p = ep.nextElement();
String initParam =
servletConfig.getInitParameter(p);
@@ -423,6 +419,15 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
}
/**
+ * Returns the root bean store.
+ *
+ * @return The root bean store.
+ */
+ public final BeanStore rootBeanStore() {
+ return rootBeanStore;
+ }
+
+ /**
* Sets the bean store for this builder.
*
* <p>