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 5747a3c9f9 Clean up juneau-rest-server
5747a3c9f9 is described below
commit 5747a3c9f92f2bb58c527f2904aaf65f9fc10987
Author: James Bognar <[email protected]>
AuthorDate: Mon Jan 5 10:24:47 2026 -0500
Clean up juneau-rest-server
---
.../juneau/commons/utils/PredicateUtils.java | 6 +
.../apache/juneau/cp/BeanCreateMethodFinder.java | 72 +---
.../main/java/org/apache/juneau/cp/BeanStore.java | 48 ---
.../juneau/rest/springboot/SpringBeanStore.java | 26 --
.../java/org/apache/juneau/rest/RestContext.java | 82 +++--
.../java/org/apache/juneau/cp/BeanStore_Test.java | 367 ++++-----------------
.../rest/springboot/SpringBeanStore_Test.java | 33 --
7 files changed, 111 insertions(+), 523 deletions(-)
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/PredicateUtils.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/PredicateUtils.java
index 542ade7fb4..808dde66d5 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/PredicateUtils.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/PredicateUtils.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.commons.utils;
+import java.util.concurrent.*;
import java.util.function.*;
/**
@@ -98,5 +99,10 @@ public final class PredicateUtils {
return (predicate == null || predicate.test(value));
}
+ public static <T> Predicate<T> distinctByKey(Function<? super T, ?>
keyExtractor) {
+ var seen = ConcurrentHashMap.newKeySet();
+ return t -> seen.add(keyExtractor.apply(t));
+ }
+
private PredicateUtils() {}
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
index e0ac9200d9..ff133d11f8 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
@@ -90,8 +90,6 @@ public class BeanCreateMethodFinder<T> {
private MethodInfo method;
private Object[] args;
- private Supplier<T> def = () -> null;
-
BeanCreateMethodFinder(Class<T> beanType, Class<?> resourceClass,
BeanStore beanStore) {
this.beanType = assertArgNotNull("beanType", beanType);
this.resource = null;
@@ -145,14 +143,14 @@ public class BeanCreateMethodFinder<T> {
*/
public BeanCreateMethodFinder<T> find(Predicate<MethodInfo> filter) {
// @formatter:off
- if (method == null) {
- info(resourceClass).getPublicMethod(
- x -> x.isNotDeprecated()
- && x.hasReturnType(beanType)
- && ! x.hasAnnotation(BeanIgnore.class)
- && filter.test(x)
- && beanStore.hasAllParams(x)
- && (x.isStatic() || nn(resource))
+ if (method == null) {
+ info(resourceClass).getPublicMethod(
+ x -> x.isNotDeprecated()
+ && x.hasReturnType(beanType)
+ && ! x.hasAnnotation(BeanIgnore.class)
+ && filter.test(x)
+ && beanStore.hasAllParams(x)
+ && (x.isStatic() || nn(resource))
).ifPresent(m -> {
method = m;
args = beanStore.getParams(m);
@@ -162,16 +160,6 @@ public class BeanCreateMethodFinder<T> {
// @formatter:on
}
- /**
- * Shortcut for calling <c>find(<jv>x</jv> ->
<jv>x</jv>.hasName(<jv>methodName</jv>))</c>.
- *
- * @param methodName The method name to match.
- * @return This object.
- */
- public BeanCreateMethodFinder<T> find(String methodName) {
- return find(x -> x.hasName(methodName));
- }
-
/**
* Executes the matched method and returns the result.
*
@@ -182,7 +170,7 @@ public class BeanCreateMethodFinder<T> {
public T run() throws ExecutableException {
if (nn(method))
return (T)method.invoke(resource, args);
- return def.get();
+ return null;
}
/**
@@ -198,46 +186,4 @@ public class BeanCreateMethodFinder<T> {
consumer.accept(t);
return t;
}
-
- /**
- * Identical to {@link #find(Predicate)} but named for fluent-style
calls.
- *
- * @param filter The predicate to apply.
- * @return This object.
- */
- public BeanCreateMethodFinder<T> thenFind(Predicate<MethodInfo> filter)
{
- return find(filter);
- }
-
- /**
- * Identical to {@link #find(Predicate)} but named for fluent-style
calls.
- *
- * @param methodName The method name to match.
- * @return This object.
- */
- public BeanCreateMethodFinder<T> thenFind(String methodName) {
- return find(methodName);
- }
-
- /**
- * A default value to return if no matching methods were found.
- *
- * @param def The default value.
- * @return This object.
- */
- public BeanCreateMethodFinder<T> withDefault(Supplier<T> def) {
- assertArgNotNull("def", def);
- this.def = def;
- return this;
- }
-
- /**
- * A default value to return if no matching methods were found.
- *
- * @param def The default value. Can be <jk>null</jk>.
- * @return This object.
- */
- public BeanCreateMethodFinder<T> withDefault(T def) {
- return withDefault(() -> def);
- }
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
index d1de10eeba..f4f8765124 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
@@ -584,54 +584,6 @@ public class BeanStore {
return entries.stream().anyMatch(x -> x.matches(beanType,
name)) || parent.map(x -> x.hasBean(beanType, name)).orElse(false);
}
- /**
- * Removes an unnamed bean from this store.
- *
- * @param beanType The bean type being removed.
- * @return This object.
- */
- public BeanStore removeBean(Class<?> beanType) {
- return removeBean(beanType, null);
- }
-
- /**
- * Removes a named bean from this store.
- *
- * @param beanType The bean type being removed.
- * @param name The bean name to remove.
- * @return This object.
- */
- public BeanStore removeBean(Class<?> beanType, String name) {
- assertCanWrite();
- try (var x = lock.write()) {
- if (name == null)
- unnamedEntries.remove(beanType);
- entries.removeIf(y -> y.matches(beanType, name));
- }
- return this;
- }
-
- /**
- * Returns all the beans in this store of the specified type.
- *
- * <p>
- * Returns both named and unnamed beans.
- *
- * <p>
- * The results from the parent bean store are appended to the list of
beans from this beans store.
- *
- * @param <T> The bean type to return.
- * @param beanType The bean type to return.
- * @return The bean entries. Never <jk>null</jk>.
- */
- public <T> Stream<BeanStoreEntry<T>> stream(Class<T> beanType) {
- @SuppressWarnings("unchecked")
- var s = entries.stream().filter(x -> x.matches(beanType)).map(x
-> (BeanStoreEntry<T>)x);
- if (parent.isPresent())
- s = Stream.concat(s, parent.get().stream(beanType));
- return s;
- }
-
protected FluentMap<String,Object> properties() {
// @formatter:off
return filteredBeanPropertyMap()
diff --git
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
index 9e162d5d4b..497349a275 100644
---
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
+++
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
@@ -85,30 +85,4 @@ public class SpringBeanStore extends BeanStore {
}
return opte();
}
-
- @Override /* Overridden from BeanStore */
- public SpringBeanStore removeBean(Class<?> beanType) {
- super.removeBean(beanType);
- return this;
- }
-
- @Override /* Overridden from BeanStore */
- public SpringBeanStore removeBean(Class<?> beanType, String name) {
- super.removeBean(beanType, name);
- return this;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public <T> Stream<BeanStoreEntry<T>> stream(Class<T> c) {
- try {
- var o = super.stream(c);
- if (appContext.isPresent())
- o = Stream.concat(o,
appContext.get().getBeansOfType(c).entrySet().stream().map(x ->
BeanStoreEntry.create(c, () -> x.getValue(), x.getKey())));
- return o;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return Collections.emptyList().stream().map(x ->
(BeanStoreEntry<T>)x);
- }
}
\ No newline at end of file
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 8419074291..53255d74f1 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
@@ -22,6 +22,7 @@ import static
org.apache.juneau.commons.reflect.ReflectionUtils.*;
import static org.apache.juneau.commons.utils.AssertionUtils.*;
import static org.apache.juneau.commons.utils.ClassUtils.*;
import static org.apache.juneau.commons.utils.CollectionUtils.*;
+import static org.apache.juneau.commons.utils.PredicateUtils.*;
import static org.apache.juneau.commons.utils.IoUtils.*;
import static org.apache.juneau.commons.utils.StringUtils.*;
import static org.apache.juneau.commons.utils.Utils.*;
@@ -199,23 +200,20 @@ public class RestContext extends Context {
//-----------------------------------------------------------------------------------------------------------------
private static <T extends Annotation> Stream<Method>
getAnnotatedMethods(Supplier<?> resource, Class<T> annotation) {
- var r = resource.get();
- var seen = new LinkedHashSet<String>();
-
- return
ClassInfo.ofProxy(r).getAllMethodsTopDown().stream()
+ return
ClassInfo.ofProxy(resource.get()).getAllMethodsTopDown().stream()
.filter(y -> y.hasAnnotation(annotation))
- .filter(y -> seen.add(y.getSignature()))
+ .filter(distinctByKey(MethodInfo::getSignature))
.map(y -> y.accessible().inner());
}
- private static boolean isRestBeanMethod(MethodInfo mi) {
- return isRestBeanMethod(mi, null);
+ private static boolean isRestInjectMethod(MethodInfo mi) {
+ return isRestInjectMethod(mi, null);
}
- private static boolean isRestBeanMethod(MethodInfo mi, String
name) {
+ private static boolean isRestInjectMethod(MethodInfo mi, String
name) {
return mi.getAnnotations(RestInject.class)
.map(AnnotationInfo::inner)
- .filter(x -> nn(x) && x.methodScope().length ==
0 && (name == null || x.name().equals(name)))
+ .filter(x -> nn(x) && x.methodScope().length ==
0 && (n(name) || eq(x.name(), name)))
.findFirst()
.isPresent();
}
@@ -1810,7 +1808,7 @@ public class RestContext extends Context {
// @formatter:off
beanStore
.createMethodFinder(rt)
- .find(Builder::isRestBeanMethod)
+
.find(Builder::isRestInjectMethod)
.run(y -> beanStore.add(rt, y,
name));
// @formatter:on
}
@@ -3881,7 +3879,7 @@ public class RestContext extends Context {
// @formatter:off
v.get().build()
.createMethodFinder(BeanStore.class)
- .find(Builder::isRestBeanMethod)
+ .find(Builder::isRestInjectMethod)
.run(x -> v.get().impl(x));
// @formatter:on
@@ -3911,7 +3909,7 @@ public class RestContext extends Context {
beanStore.getBean(CallLogger.class).ifPresent(x ->
creator.impl(x));
// Replace with bean from: @RestInject public [static]
CallLogger xxx(<args>)
-
beanStore.createMethodFinder(CallLogger.class).find(Builder::isRestBeanMethod).run(x
-> creator.impl(x));
+
beanStore.createMethodFinder(CallLogger.class).find(Builder::isRestInjectMethod).run(x
-> creator.impl(x));
return creator;
}
@@ -3958,7 +3956,7 @@ public class RestContext extends Context {
beanStore.getBean(Config.class).ifPresent(x ->
v.set(x));
// Replace with bean from: @RestInject public [static]
Config xxx(<args>)
-
beanStore.createMethodFinder(Config.class).addBean(Config.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.set(x));
+
beanStore.createMethodFinder(Config.class).addBean(Config.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.set(x));
return v.get();
}
@@ -3982,7 +3980,7 @@ public class RestContext extends Context {
beanStore.getBean(DebugEnablement.class).ifPresent(x ->
creator.impl(x));
// Replace with bean from: @RestInject public [static]
DebugEnablement xxx(<args>)
-
beanStore.createMethodFinder(DebugEnablement.class).find(Builder::isRestBeanMethod).run(x
-> creator.impl(x));
+
beanStore.createMethodFinder(DebugEnablement.class).find(Builder::isRestInjectMethod).run(x
-> creator.impl(x));
return creator;
}
@@ -4004,7 +4002,7 @@ public class RestContext extends Context {
beanStore.getBean(NamedAttributeMap.class,
"defaultRequestAttributes").ifPresent(x -> v.set(x));
// Replace with bean from:
@RestInject(name="defaultRequestAttributes") public [static] NamedAttributeMap
xxx(<args>)
-
beanStore.createMethodFinder(NamedAttributeMap.class).addBean(NamedAttributeMap.class,
v.get()).find(x -> isRestBeanMethod(x, "defaultRequestAttributes")).run(x ->
v.set(x));
+
beanStore.createMethodFinder(NamedAttributeMap.class).addBean(NamedAttributeMap.class,
v.get()).find(x -> isRestInjectMethod(x, "defaultRequestAttributes")).run(x ->
v.set(x));
return v.get();
}
@@ -4027,7 +4025,7 @@ public class RestContext extends Context {
beanStore.getBean(HeaderList.class,
"defaultRequestHeaders").ifPresent(x -> v.set(x));
// Replace with bean from:
@RestInject(name="defaultRequestHeaders") public [static] HeaderList xxx(<args>)
-
beanStore.createMethodFinder(HeaderList.class).addBean(HeaderList.class,
v.get()).find(x -> isRestBeanMethod(x, "defaultRequestHeaders")).run(x ->
v.set(x));
+
beanStore.createMethodFinder(HeaderList.class).addBean(HeaderList.class,
v.get()).find(x -> isRestInjectMethod(x, "defaultRequestHeaders")).run(x ->
v.set(x));
return v.get();
}
@@ -4050,7 +4048,7 @@ public class RestContext extends Context {
beanStore.getBean(HeaderList.class,
"defaultResponseHeaders").ifPresent(x -> v.set(x));
// Replace with bean from:
@RestInject(name="defaultResponseHeaders") public [static] HeaderList
xxx(<args>)
-
beanStore.createMethodFinder(HeaderList.class).addBean(HeaderList.class,
v.get()).find(x -> isRestBeanMethod(x, "defaultResponseHeaders")).run(x ->
v.set(x));
+
beanStore.createMethodFinder(HeaderList.class).addBean(HeaderList.class,
v.get()).find(x -> isRestInjectMethod(x, "defaultResponseHeaders")).run(x ->
v.set(x));
return v.get();
}
@@ -4070,7 +4068,7 @@ public class RestContext extends Context {
var v =
Value.of(MethodList.of(getAnnotatedMethods(resource,
RestDestroy.class).collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="destroyMethods") public [static] MethodList xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "destroyMethods")).run(x -> v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "destroyMethods")).run(x -> v.set(x));
return v.get();
}
@@ -4102,7 +4100,7 @@ public class RestContext extends Context {
beanStore.getBean(EncoderSet.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
EncoderSet xxx(<args>)
-
beanStore.createMethodFinder(EncoderSet.class).addBean(EncoderSet.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(EncoderSet.class).addBean(EncoderSet.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4122,7 +4120,7 @@ public class RestContext extends Context {
Value<MethodList> v =
Value.of(MethodList.of(getAnnotatedMethods(resource,
RestEndCall.class).collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="endCallMethods") public [static] MethodList xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "endCallMethods")).run(x -> v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "endCallMethods")).run(x -> v.set(x));
return v.get();
}
@@ -4152,7 +4150,7 @@ public class RestContext extends Context {
beanStore.getBean(JsonSchemaGenerator.class).ifPresent(x -> v.get().impl(x));
// Replace with bean from: @RestInject public [static]
JsonSchemaGenerator xxx(<args>)
-
beanStore.createMethodFinder(JsonSchemaGenerator.class).addBean(JsonSchemaGenerator.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(JsonSchemaGenerator.class).addBean(JsonSchemaGenerator.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4182,7 +4180,7 @@ public class RestContext extends Context {
beanStore.getBean(Logger.class).ifPresent(x ->
v.set(x));
// Replace with bean from: @RestInject public [static]
Logger xxx(<args>)
-
beanStore.createMethodFinder(Logger.class).addBean(Logger.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.set(x));
+
beanStore.createMethodFinder(Logger.class).addBean(Logger.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.set(x));
return v.get();
}
@@ -4209,7 +4207,7 @@ public class RestContext extends Context {
beanStore.getBean(Messages.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
Messages xxx(<args>)
-
beanStore.createMethodFinder(Messages.class).addBean(Messages.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(Messages.class).addBean(Messages.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4239,7 +4237,7 @@ public class RestContext extends Context {
beanStore.getBean(MethodExecStore.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
MethodExecStore xxx(<args>)
-
beanStore.createMethodFinder(MethodExecStore.class).addBean(MethodExecStore.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(MethodExecStore.class).addBean(MethodExecStore.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4270,7 +4268,7 @@ public class RestContext extends Context {
beanStore.getBean(ParserSet.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
ParserSet xxx(<args>)
-
beanStore.createMethodFinder(ParserSet.class).addBean(ParserSet.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(ParserSet.class).addBean(ParserSet.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4306,7 +4304,7 @@ public class RestContext extends Context {
defaultClasses().get(HttpPartParser.class).ifPresent(x
-> v.get().type(x));
// Replace with bean from: @RestInject public [static]
HttpPartParser xxx(<args>)
-
beanStore.createMethodFinder(HttpPartParser.class).addBean(HttpPartParser.Creator.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(HttpPartParser.class).addBean(HttpPartParser.Creator.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4342,7 +4340,7 @@ public class RestContext extends Context {
defaultClasses().get(HttpPartSerializer.class).ifPresent(x -> v.get().type(x));
// Replace with bean from: @RestInject public [static]
HttpPartSerializer xxx(<args>)
-
beanStore.createMethodFinder(HttpPartSerializer.class).addBean(HttpPartSerializer.Creator.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(HttpPartSerializer.class).addBean(HttpPartSerializer.Creator.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4362,7 +4360,7 @@ public class RestContext extends Context {
Value<MethodList> v =
Value.of(MethodList.of(getAnnotatedMethods(resource,
RestPostCall.class).collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="postCallMethods") public [static] MethodList xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "postCallMethods")).run(x -> v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "postCallMethods")).run(x -> v.set(x));
return v.get();
}
@@ -4390,7 +4388,7 @@ public class RestContext extends Context {
.collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="postInitChildFirstMethods") public [static] MethodList
xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "postInitChildFirstMethods")).run(x ->
v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "postInitChildFirstMethods")).run(x ->
v.set(x));
return v.get();
}
@@ -4407,9 +4405,7 @@ public class RestContext extends Context {
protected MethodList createPostInitMethods(BeanStore beanStore,
Supplier<?> resource) {
// Default value.
- var r = resource.get();
var ap = AP;
- var ci = ClassInfo.ofProxy(r);
Value<MethodList> v =
Value.of(MethodList.of(getAnnotatedMethods(resource, RestPostInit.class)
.filter(m -> {
var mi = MethodInfo.of(m);
@@ -4420,7 +4416,7 @@ public class RestContext extends Context {
.collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="postInitMethods") public [static] MethodList xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "postInitMethods")).run(x -> v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "postInitMethods")).run(x -> v.set(x));
return v.get();
}
@@ -4440,7 +4436,7 @@ public class RestContext extends Context {
Value<MethodList> v =
Value.of(MethodList.of(getAnnotatedMethods(resource,
RestPreCall.class).collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="preCallMethods") public [static] MethodList xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "preCallMethods")).run(x -> v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "preCallMethods")).run(x -> v.set(x));
return v.get();
}
@@ -4483,7 +4479,7 @@ public class RestContext extends Context {
beanStore.getBean(ResponseProcessorList.class).ifPresent(x -> v.get().impl(x));
// Replace with bean from: @RestInject public [static]
ResponseProcessorList xxx(<args>)
-
beanStore.createMethodFinder(ResponseProcessorList.class).addBean(ResponseProcessorList.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(ResponseProcessorList.class).addBean(ResponseProcessorList.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4546,7 +4542,7 @@ public class RestContext extends Context {
}
// Replace with bean from: @RestInject public [static]
RestChildren xxx(<args>)
-
beanStore.createMethodFinder(RestChildren.class).addBean(RestChildren.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(RestChildren.class).addBean(RestChildren.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4585,7 +4581,7 @@ public class RestContext extends Context {
beanStore.getBean(RestOpArgList.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
RestOpArgList xxx(<args>)
-
beanStore.createMethodFinder(RestOpArgList.class).addBean(RestOpArgList.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(RestOpArgList.class).addBean(RestOpArgList.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4684,7 +4680,7 @@ public class RestContext extends Context {
}
// Replace with bean from: @RestInject public [static]
RestOperations xxx(<args>)
-
beanStore.createMethodFinder(RestOperations.class).addBean(RestOperations.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(RestOperations.class).addBean(RestOperations.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4715,7 +4711,7 @@ public class RestContext extends Context {
beanStore.getBean(SerializerSet.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
SerializerSet xxx(<args>)
-
beanStore.createMethodFinder(SerializerSet.class).addBean(SerializerSet.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(SerializerSet.class).addBean(SerializerSet.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4735,7 +4731,7 @@ public class RestContext extends Context {
Value<MethodList> v =
Value.of(MethodList.of(getAnnotatedMethods(resource,
RestStartCall.class).collect(Collectors.toList())));
// Replace with bean from:
@RestInject(name="startCallMethods") public [static] MethodList xxx(<args>)
-
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestBeanMethod(x, "startCallMethods")).run(x -> v.set(x));
+
beanStore.createMethodFinder(MethodList.class).addBean(MethodList.class,
v.get()).find(x -> isRestInjectMethod(x, "startCallMethods")).run(x ->
v.set(x));
return v.get();
}
@@ -4763,7 +4759,7 @@ public class RestContext extends Context {
beanStore.getBean(StaticFiles.class).ifPresent(x ->
creator.impl(x));
// Replace with bean from: @RestInject public [static]
StaticFiles xxx(<args>)
-
beanStore.createMethodFinder(StaticFiles.class).find(Builder::isRestBeanMethod).run(x
-> creator.impl(x));
+
beanStore.createMethodFinder(StaticFiles.class).find(Builder::isRestInjectMethod).run(x
-> creator.impl(x));
return creator;
}
@@ -4812,7 +4808,7 @@ public class RestContext extends Context {
beanStore.getBean(SwaggerProvider.class).ifPresent(x ->
creator.impl(x));
// Replace with bean from: @RestInject public [static]
SwaggerProvider xxx(<args>)
-
beanStore.createMethodFinder(SwaggerProvider.class).find(Builder::isRestBeanMethod).run(x
-> creator.impl(x));
+
beanStore.createMethodFinder(SwaggerProvider.class).find(Builder::isRestInjectMethod).run(x
-> creator.impl(x));
return creator;
}
@@ -4846,7 +4842,7 @@ public class RestContext extends Context {
beanStore.getBean(ThrownStore.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
ThrownStore xxx(<args>)
-
beanStore.createMethodFinder(ThrownStore.class).addBean(ThrownStore.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(ThrownStore.class).addBean(ThrownStore.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
@@ -4903,7 +4899,7 @@ public class RestContext extends Context {
beanStore.getBean(VarResolver.class).ifPresent(x ->
v.get().impl(x));
// Replace with bean from: @RestInject public [static]
VarResolver xxx(<args>)
-
beanStore.createMethodFinder(VarResolver.class).addBean(VarResolver.Builder.class,
v.get()).find(Builder::isRestBeanMethod).run(x -> v.get().impl(x));
+
beanStore.createMethodFinder(VarResolver.class).addBean(VarResolver.Builder.class,
v.get()).find(Builder::isRestInjectMethod).run(x -> v.get().impl(x));
return v.get();
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
index 37d16a631f..e4856b645c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
@@ -86,8 +86,6 @@ class BeanStore_Test extends TestBase {
assertThrowsWithMessage(IllegalStateException.class,
"Method cannot be used because BeanStore is read-only.",
()->b.addSupplier(A1.class, ()->a1a));
assertThrowsWithMessage(IllegalStateException.class,
"Method cannot be used because BeanStore is read-only.",
()->b.addSupplier(A1.class, ()->a1a, "foo"));
assertThrowsWithMessage(IllegalStateException.class,
"Method cannot be used because BeanStore is read-only.", b::clear);
- assertThrowsWithMessage(IllegalStateException.class,
"Method cannot be used because BeanStore is read-only.",
()->b.removeBean(A1.class));
- assertThrowsWithMessage(IllegalStateException.class,
"Method cannot be used because BeanStore is read-only.",
()->b.removeBean(A1.class, "foo"));
}
for (var b : array(b1c, b2c)) {
@@ -98,8 +96,6 @@ class BeanStore_Test extends TestBase {
b.addSupplier(A1.class, ()->a1a);
b.addSupplier(A1.class, ()->a1a, "foo");
b.clear();
- b.removeBean(A1.class);
- b.removeBean(A1.class, "foo");
}
}
@@ -141,56 +137,56 @@ class BeanStore_Test extends TestBase {
assertTrue(b.hasBean(A1.class));
assertEquals(a1a, b.getBean(A1.class).get());
}
-
- b1p.add(A1.class, a1b);
- b2p.add(A1.class, a1b);
- for (var b : array(b1p, b1c, b2p, b2c)) {
- assertTrue(b.hasBean(A1.class));
- assertEquals(a1b, b.getBean(A1.class).get());
- assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1b, a1a);
- }
-
- b1c.add(A2.class, a2a);
- b2c.add(A2.class, a2a);
- for (var b : array(b1p, b2p)) {
- assertFalse(b.hasBean(A2.class));
- assertEmpty(b.getBean(A2.class));
- assertEmpty(b.stream(A2.class));
- }
- for (var b : array(b1c, b2c)) {
- assertTrue(b.hasBean(A2.class));
- assertEquals(a2a, b.getBean(A2.class).get());
- assertList(b.stream(A2.class).map(BeanStoreEntry::get),
a2a);
- }
-
-
assertMatchesGlob("{entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*}",
b1p);
-
assertMatchesGlob("{entries=[{type=A2,bean="+Utils.id(a2a)+"}],identity=*,parent={entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*}}",
b1c);
-
assertMatchesGlob("{entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*,threadSafe=true}",
b2p);
-
assertMatchesGlob("{entries=[{type=A2,bean="+Utils.id(a2a)+"}],identity=*,parent={entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*,threadSafe=true},threadSafe=true}",
b2c);
-
- b1p.removeBean(A1.class);
- b1c.clear().addBean(A1.class, a1a);
- b2p.removeBean(A1.class);
- b2c.clear().addBean(A1.class, a1a);
-
- for (var b : array(b1p, b2p)) {
- assertFalse(b.hasBean(A1.class));
- assertEmpty(b.getBean(A1.class));
- assertEmpty(b.stream(A1.class));
- }
- for (var b : array(b1c, b2c)) {
- assertTrue(b.hasBean(A1.class));
- assertEquals(a1a, b.getBean(A1.class).get());
- assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1a);
- }
-
- b1c.removeBean(A1.class);
- b2c.removeBean(A1.class);
- for (var b : array(b1p, b1c, b2p, b2c)) {
- assertFalse(b.hasBean(A1.class));
- assertEmpty(b.getBean(A1.class));
- assertEmpty(b.stream(A1.class));
- }
+//
+// b1p.add(A1.class, a1b);
+// b2p.add(A1.class, a1b);
+// for (var b : array(b1p, b1c, b2p, b2c)) {
+// assertTrue(b.hasBean(A1.class));
+// assertEquals(a1b, b.getBean(A1.class).get());
+// assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1b, a1a);
+// }
+//
+// b1c.add(A2.class, a2a);
+// b2c.add(A2.class, a2a);
+// for (var b : array(b1p, b2p)) {
+// assertFalse(b.hasBean(A2.class));
+// assertEmpty(b.getBean(A2.class));
+// assertEmpty(b.stream(A2.class));
+// }
+// for (var b : array(b1c, b2c)) {
+// assertTrue(b.hasBean(A2.class));
+// assertEquals(a2a, b.getBean(A2.class).get());
+// assertList(b.stream(A2.class).map(BeanStoreEntry::get),
a2a);
+// }
+//
+//
assertMatchesGlob("{entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*}",
b1p);
+//
assertMatchesGlob("{entries=[{type=A2,bean="+Utils.id(a2a)+"}],identity=*,parent={entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*}}",
b1c);
+//
assertMatchesGlob("{entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*,threadSafe=true}",
b2p);
+//
assertMatchesGlob("{entries=[{type=A2,bean="+Utils.id(a2a)+"}],identity=*,parent={entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*,threadSafe=true},threadSafe=true}",
b2c);
+//
+// b1p.removeBean(A1.class);
+// b1c.clear().addBean(A1.class, a1a);
+// b2p.removeBean(A1.class);
+// b2c.clear().addBean(A1.class, a1a);
+//
+// for (var b : array(b1p, b2p)) {
+// assertFalse(b.hasBean(A1.class));
+// assertEmpty(b.getBean(A1.class));
+// assertEmpty(b.stream(A1.class));
+// }
+// for (var b : array(b1c, b2c)) {
+// assertTrue(b.hasBean(A1.class));
+// assertEquals(a1a, b.getBean(A1.class).get());
+// assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1a);
+// }
+//
+// b1c.removeBean(A1.class);
+// b2c.removeBean(A1.class);
+// for (var b : array(b1p, b1c, b2p, b2c)) {
+// assertFalse(b.hasBean(A1.class));
+// assertEmpty(b.getBean(A1.class));
+// assertEmpty(b.stream(A1.class));
+// }
}
@Test void a05_addNamedBeans() {
@@ -206,13 +202,13 @@ class BeanStore_Test extends TestBase {
b.addBean(A1.class, a1e);
}
- for (var b : array(b1p, b2p)) {
- assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1d,a1c,a1b,a1a);
- }
- for (var b : array(b1c, b2c)) {
- assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1e,a1d,a1c,a1b,a1a);
- }
-
+// for (var b : array(b1p, b2p)) {
+// assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1d,a1c,a1b,a1a);
+// }
+// for (var b : array(b1c, b2c)) {
+// assertList(b.stream(A1.class).map(BeanStoreEntry::get),
a1e,a1d,a1c,a1b,a1a);
+// }
+//
for (var b : array(b1p, b1c, b2p, b2c)) {
assertEquals(a1b, b.getBean(A1.class, "foo").get());
assertEquals(a1d, b.getBean(A1.class, "bar").get());
@@ -510,34 +506,6 @@ class BeanStore_Test extends TestBase {
public C createA7() { throw new RuntimeException("foo"); }
}
- @Test void c01_createMethodFinder_instanceMethods() throws Exception {
- var x = new C1();
- var b1p = BeanStore.create().build();
- var b1c = BeanStore.create().parent(b1p).build();
- var b2p = BeanStore.create().build();
- var b2c = BeanStore.create().outer(x).parent(b2p).build();
- var b3p = BeanStore.create().build();
- var b3c = BeanStore.create().outer(this).parent(b3p).build();
-
- for (var m : array("createA0", "createA2", "createA3",
"createA4", "createA5", "createA6")) {
- for (var b : array(b1c, b2c, b3c)) {
- assertNull(b.createMethodFinder(C.class,
x).find(m).run());
- assertNull(b.createMethodFinder(C.class,
C1.class).find(m).run());
- }
- for (var b : array(b2c, b3c)) {
-
assertNull(b.createMethodFinder(C.class).find(m).run());
- }
- }
- assertNotNull(b1c.createMethodFinder(C.class,
x).find("createA1").run());
- assertNull(b1c.createMethodFinder(C.class,
C1.class).find("createA1").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createA1").run());
-
assertNull(b3c.createMethodFinder(C.class).find("createA1").run());
- assertThrowsWithMessage(Exception.class, "foo",
()->b1c.createMethodFinder(C.class, x).find("createA7").run());
- assertNull(b1c.createMethodFinder(C.class,
C1.class).find("createA7").run());
- assertThrowsWithMessage(Exception.class, "foo",
()->b2c.createMethodFinder(C.class).find("createA7").run());
-
assertNull(b3c.createMethodFinder(C.class).find("createA7").run());
- }
-
// Static methods.
public static class C2 {
public static C createB1() { return new C(); }
@@ -549,34 +517,6 @@ class BeanStore_Test extends TestBase {
public static C createB7() { throw new RuntimeException("foo");
}
}
- @Test void c02_createMethodFinder_staticMethods() throws Exception {
- var x = new C2();
- var b1p = BeanStore.create().build();
- var b1c = BeanStore.create().parent(b1p).build();
- var b2p = BeanStore.create().build();
- var b2c = BeanStore.create().outer(x).parent(b2p).build();
- var b3p = BeanStore.create().build();
- var b3c = BeanStore.create().outer(this).parent(b3p).build();
-
- for (var m : array("createB0", "createB2", "createB3",
"createB4", "createB5", "createB6")) {
- for (var b : array(b1c, b2c, b3c)) {
- assertNull(b.createMethodFinder(C.class,
x).find(m).run());
- assertNull(b.createMethodFinder(C.class,
C2.class).find(m).run());
- }
- for (var b : array(b2c, b3c)) {
-
assertNull(b.createMethodFinder(C.class).find(m).run());
- }
- }
- assertNotNull(b1c.createMethodFinder(C.class,
x).find("createB1").run());
- assertNotNull(b1c.createMethodFinder(C.class,
C2.class).find("createB1").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createB1").run());
-
assertNull(b3c.createMethodFinder(C.class).find("createB1").run());
- assertThrowsWithMessage(Exception.class, "foo",
()->b1c.createMethodFinder(C.class, x).find("createB7").run());
- assertThrowsWithMessage(Exception.class, "foo",
()->b1c.createMethodFinder(C.class, C2.class).find("createB7").run());
- assertThrowsWithMessage(Exception.class, "foo",
()->b2c.createMethodFinder(C.class).find("createB7").run());
-
assertNull(b3c.createMethodFinder(C.class).find("createB7").run());
- }
-
// Bean matching.
public static class C3 {
public C createC1(A1 a) { return new C(); }
@@ -587,193 +527,6 @@ class BeanStore_Test extends TestBase {
public static C createC6(BeanStore bs) { assertNotNull(bs);
return new C(); }
}
- @Test void c03_createMethodFinder_beanMatching() throws Exception {
- var x = new C3();
- var b1p = BeanStore.create().build();
- var b1c = BeanStore.create().parent(b1p).build();
- var b2p = BeanStore.create().build();
- var b2c = BeanStore.create().outer(x).parent(b2p).build();
- var b3p = BeanStore.create().build();
- var b3c = BeanStore.create().outer(this).parent(b3p).build();
-
- for (var b : array(b1c, b2c, b3c)) {
- assertNull(b.createMethodFinder(C.class,
x).find("createC1").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC2").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
x).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC6").run());
- }
-
- b1p.addBean(A1.class, new A1());
- b2p.addBean(A1.class, new A1());
- b3p.addBean(A1.class, new A1());
- for (var b : array(b1c, b2c)) {
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC2").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
x).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC6").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC2").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC6").run());
- }
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC1").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC2").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC3").run().a);
-
assertNull(b2c.createMethodFinder(C.class).find("createC4").run());
-
assertNull(b2c.createMethodFinder(C.class).find("createC5").run().a);
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC6").run());
- for (var m :
array("createC1","createC2","createC3","createC4","createC5","createC6")) {
-
assertNull(b3c.createMethodFinder(C.class).find(m).run());
- }
-
- b1p.clear().addSupplier(A1.class, A1::new);
- b2p.clear().addSupplier(A1.class, A1::new);
- for (var b : array(b1c, b2c)) {
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC2").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
x).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC6").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC2").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC6").run());
- }
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC1").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC2").run());
- assertInstanceOf(A1.class,
b2c.createMethodFinder(C.class).find("createC3").run().a);
-
assertNull(b2c.createMethodFinder(C.class).find("createC4").run());
-
assertNull(b2c.createMethodFinder(C.class).find("createC5").run().a);
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC6").run());
- for (var m :
array("createC1","createC2","createC3","createC4","createC5","createC6")) {
-
assertNull(b3c.createMethodFinder(C.class).find(m).run());
- }
-
- b1p.clear().add(A1.class, null);
- b2p.clear().add(A1.class, null);
- for (var b : array(b1c, b2c)) {
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC2").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
x).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
x).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC6").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC2").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC3").run().a);
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC4").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC6").run());
- }
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC1").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC2").run());
-
assertNull(b2c.createMethodFinder(C.class).find("createC3").run().a);
-
assertNull(b2c.createMethodFinder(C.class).find("createC4").run());
-
assertNull(b2c.createMethodFinder(C.class).find("createC5").run().a);
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC6").run());
- for (var m :
array("createC1","createC2","createC3","createC4","createC5","createC6")) {
-
assertNull(b3c.createMethodFinder(C.class).find(m).run());
- }
-
- b1p.clear().addBean(A1.class, new A1()).add(A1.class, new A1(),
"Foo");
- b2p.clear().addBean(A1.class, new A1()).add(A1.class, new A1(),
"Foo");
- for (var b : array(b1c, b2c)) {
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC2").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC3").run().a);
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC4").run());
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
x).find("createC6").run());
- assertNull(b.createMethodFinder(C.class,
C3.class).find("createC1").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC2").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC3").run().a);
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC4").run());
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC5").run().a);
- assertNotNull(b.createMethodFinder(C.class,
C3.class).find("createC6").run());
- }
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC1").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC2").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC3").run().a);
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC4").run());
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC5").run().a);
-
assertNotNull(b2c.createMethodFinder(C.class).find("createC6").run());
- for (var m :
array("createC1","createC2","createC3","createC4","createC5","createC6")) {
-
assertNull(b3c.createMethodFinder(C.class).find(m).run());
- }
- }
-
- // Bean matching.
- public static class C4 {
- public static String createC1(A1 a) { return "createC1"; }
- public static String createC2() { return "createC2"; }
- }
-
- @Test void c04_createMethodFinder_beanMatching_requiredArgs() throws
Exception {
- var x = new C4();
- var b1p = BeanStore.create().build();
- var b1c = BeanStore.create().outer(x).parent(b1p).build();
-
- assertString("createC2",
b1c.createMethodFinder(String.class).find("createC1").thenFind("createC2").run());
- assertString("createC2",
b1c.createMethodFinder(String.class).find("createC2").thenFind("createC1").run());
-
- b1p.add(A1.class, null);
- assertString("createC1",
b1c.createMethodFinder(String.class).find("createC1").thenFind("createC2").run());
- assertString("createC2",
b1c.createMethodFinder(String.class).find("createC2").thenFind("createC1").run());
- assertString("createC1",
b1c.createMethodFinder(String.class).find(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).run());
- assertString("createC1",
b1c.createMethodFinder(String.class).find(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).run());
-
- b1p.clear();
- assertString("createC1",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find("createC1").thenFind("createC2").run());
- assertString("createC2",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find("createC2").thenFind("createC1").run());
- assertString("createC1",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).run());
- assertString("createC1",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).run());
-
- assertString("X",
b1c.createMethodFinder(String.class).withDefault("X").run());
- assertString("X",
b1c.createMethodFinder(String.class).withDefault(()->"X").run());
-
- b1c.createMethodFinder(String.class).withDefault("X").run(y ->
assertString("X", y));
- }
-
- // Bean matching.
- public class C5 {
- public String createC1(A1 a) { return "createC1"; }
- public String createC2() { return "createC2"; }
- }
-
- @Test void
c05_createMethodFinder_beanMatching_requiredArgs_innerClass() throws Exception {
- var x = new C5();
- var b1p = BeanStore.create().build();
- var b1c = BeanStore.create().outer(x).parent(b1p).build();
-
- assertString("createC2",
b1c.createMethodFinder(String.class).find("createC1").thenFind("createC2").run());
- assertString("createC2",
b1c.createMethodFinder(String.class).find("createC2").thenFind("createC1").run());
-
- b1p.add(A1.class, null);
- assertString("createC1",
b1c.createMethodFinder(String.class).find("createC1").thenFind("createC2").run());
- assertString("createC2",
b1c.createMethodFinder(String.class).find("createC2").thenFind("createC1").run());
- assertString("createC1",
b1c.createMethodFinder(String.class).find(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).run());
- assertString("createC1",
b1c.createMethodFinder(String.class).find(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).run());
-
- b1p.clear();
- assertString("createC1",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find("createC1").thenFind("createC2").run());
- assertString("createC2",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find("createC2").thenFind("createC1").run());
- assertString("createC1",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).run());
- assertString("createC1",
b1c.createMethodFinder(String.class).addBean(A1.class,
null).find(x2->x2.hasName("createC2") &&
x2.hasAllParameters(A1.class)).thenFind(x2->x2.hasName("createC1") &&
x2.hasAllParameters(A1.class)).run());
-
- assertString("X",
b1c.createMethodFinder(String.class).withDefault("X").run());
- assertString("X",
b1c.createMethodFinder(String.class).withDefault(()->"X").run());
-
- b1c.createMethodFinder(String.class).withDefault("X").run(y ->
assertString("X", y));
- }
//-----------------------------------------------------------------------------------------------------------------
// createBean()
@@ -852,8 +605,6 @@ class BeanStore_Test extends TestBase {
assertEquals(d5c, bs.createBean(D5.class).run());
bs.add(String.class, "x");
assertEquals(d5b, bs.createBean(D5.class).run());
- bs.removeBean(Integer.class);
- assertEquals(d5a, bs.createBean(D5.class).run());
}
public static class D6 {
@@ -923,8 +674,6 @@ class BeanStore_Test extends TestBase {
assertString("s=foo", bs.createBean(D10.class).run().a);
bs.add(Integer.class, 1);
assertString("s=foo,i=1", bs.createBean(D10.class).run().a);
- bs.removeBean(String.class);
- assertString("i=1", bs.createBean(D10.class).run().a);
}
public static class D11 {
@@ -941,8 +690,6 @@ class BeanStore_Test extends TestBase {
assertString("s=foo", bs.createBean(D11.class).run().a);
bs.add(Integer.class, 1);
assertString("s=foo,i=1", bs.createBean(D11.class).run().a);
- bs.removeBean(String.class);
- assertString("i=1", bs.createBean(D11.class).run().a);
}
public static class D12 {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
index e69c6ed3eb..4546804fbd 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
@@ -33,37 +33,4 @@ class SpringBeanStore_Test extends TestBase {
assertSame(store, result);
assertInstanceOf(SpringBeanStore.class, result);
}
-
- @Test
- void a02_fluentChaining_removeBean_byClass() {
- // Test that removeBean(Class) returns SpringBeanStore (not
BeanStore)
- var store = new SpringBeanStore(opte(), opte(), null);
-
- SpringBeanStore result = store.removeBean(String.class);
-
- assertSame(store, result);
- assertInstanceOf(SpringBeanStore.class, result);
- }
-
- @Test
- void a03_fluentChaining_removeBean_byClassAndName() {
- // Test that removeBean(Class, String) returns SpringBeanStore
(not BeanStore)
- var store = new SpringBeanStore(opte(), opte(), null);
-
- SpringBeanStore result = store.removeBean(String.class,
"testBean");
-
- assertSame(store, result);
- assertInstanceOf(SpringBeanStore.class, result);
- }
-
- @Test
- void a04_fluentChaining_complex() {
- // Test chaining multiple fluent calls
- var store = new SpringBeanStore(opte(), opte(), null);
-
- SpringBeanStore result =
store.removeBean(String.class).removeBean(Integer.class, "myInt").clear();
-
- assertSame(store, result);
- assertInstanceOf(SpringBeanStore.class, result);
- }
}
\ No newline at end of file