You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2020/03/08 00:18:25 UTC
[logging-log4j2] 01/02: Simplify disposer method type matching
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch mean-bean-machine
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit d537be34b92392a9a8f9f957847e57405ab5d12e
Author: Matt Sicker <bo...@gmail.com>
AuthorDate: Sat Mar 7 15:02:20 2020 -0600
Simplify disposer method type matching
Signed-off-by: Matt Sicker <bo...@gmail.com>
---
.../log4j/plugins/defaults/bean/DefaultBeanManager.java | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java
index ec4ba8b..598a3db 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java
@@ -159,7 +159,7 @@ public class DefaultBeanManager implements BeanManager {
for (final MetaParameter<?> parameter : method.getParameters()) {
if (parameter.isAnnotationPresent(Disposes.class)) {
disposesMethods.add(new DisposesMethod<>(
- parameter.getTypeClosure(), elementManager.getQualifiers(parameter), bean, method));
+ parameter.getBaseType(), elementManager.getQualifiers(parameter), bean, method));
}
}
}
@@ -425,11 +425,6 @@ public class DefaultBeanManager implements BeanManager {
scopes.clear();
}
- private static boolean areCollectionsIsomorphic(final Collection<?> left, final Collection<?> right) {
- // isomorphism assumes .equals() is implemented according to the normal .equals() contract
- return (left.isEmpty() && right.isEmpty()) || (left.size() == right.size() && left.containsAll(right));
- }
-
private static Optional<Bean<?>> findNonPrototypeScopedDependent(final InitializationContext<?> context) {
return context.getParentContext().flatMap(parentContext ->
parentContext.getScoped()
@@ -440,14 +435,14 @@ public class DefaultBeanManager implements BeanManager {
}
private static class DisposesMethod<D> {
- private final Collection<Type> types;
+ private final Type type;
private final Qualifiers qualifiers;
private final Bean<D> declaringBean;
private final MetaMethod<D, ?> disposesMethod;
- private DisposesMethod(final Collection<Type> types, final Qualifiers qualifiers,
+ private DisposesMethod(final Type type, final Qualifiers qualifiers,
final Bean<D> declaringBean, final MetaMethod<D, ?> disposesMethod) {
- this.types = types;
+ this.type = type;
this.qualifiers = qualifiers;
this.declaringBean = declaringBean;
this.disposesMethod = disposesMethod;
@@ -455,7 +450,7 @@ public class DefaultBeanManager implements BeanManager {
boolean matches(final Variable<?> variable, final Bean<?> declaringBean) {
return Objects.equals(declaringBean, this.declaringBean) &&
- areCollectionsIsomorphic(types, variable.getTypes()) &&
+ variable.hasMatchingType(type) &&
qualifiers.equals(variable.getQualifiers());
}
}