|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
|
* Copyright 2002-2017 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -365,15 +365,20 @@ class ConfigurationClassParser {
@@ -365,15 +365,20 @@ class ConfigurationClassParser {
|
|
|
|
|
AnnotationMetadata asm = |
|
|
|
|
this.metadataReaderFactory.getMetadataReader(original.getClassName()).getAnnotationMetadata(); |
|
|
|
|
Set<MethodMetadata> asmMethods = asm.getAnnotatedMethods(Bean.class.getName()); |
|
|
|
|
Set<MethodMetadata> reflectionMethods = beanMethods; |
|
|
|
|
beanMethods = new LinkedHashSet<>(); |
|
|
|
|
for (MethodMetadata asmMethod : asmMethods) { |
|
|
|
|
for (MethodMetadata reflectionMethod : reflectionMethods) { |
|
|
|
|
if (reflectionMethod.getMethodName().equals(asmMethod.getMethodName())) { |
|
|
|
|
beanMethods.add(reflectionMethod); |
|
|
|
|
break; |
|
|
|
|
if (asmMethods.size() >= beanMethods.size()) { |
|
|
|
|
Set<MethodMetadata> selectedMethods = new LinkedHashSet<>(asmMethods.size()); |
|
|
|
|
for (MethodMetadata asmMethod : asmMethods) { |
|
|
|
|
for (MethodMetadata beanMethod : beanMethods) { |
|
|
|
|
if (beanMethod.getMethodName().equals(asmMethod.getMethodName())) { |
|
|
|
|
selectedMethods.add(beanMethod); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (selectedMethods.size() == beanMethods.size()) { |
|
|
|
|
// All reflection-detected methods found in ASM method set -> proceed
|
|
|
|
|
beanMethods = selectedMethods; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
catch (IOException ex) { |
|
|
|
|
|