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 677da65 JUNEAU-197
677da65 is described below
commit 677da651707730aaeae96c59259a5eb324559bc8
Author: JamesBognar <[email protected]>
AuthorDate: Mon Mar 9 10:08:02 2020 -0400
JUNEAU-197
@BeanConfig(bpi) does not override @Bean(bpi)
---
.../main/java/org/apache/juneau/BeanContext.java | 12 +++---
.../src/main/java/org/apache/juneau/ClassMeta.java | 44 +++++++++++-----------
.../main/java/org/apache/juneau/MetaProvider.java | 9 -----
.../org/apache/juneau/transform/BuilderSwap.java | 7 ++--
.../java/org/apache/juneau/xml/XmlBeanMeta.java | 3 +-
5 files changed, 33 insertions(+), 42 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 726265c..f150967 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -3251,12 +3251,12 @@ public class BeanContext extends Context implements
MetaProvider {
return (List<A>)aa;
}
- @Override
- public <A extends Annotation> A getAnnotation(Class<A> a, Class<?> c) {
- List<A> aa = getAnnotations(a, c);
- return aa.isEmpty() ? null : aa.get(0);
- }
-
+// @Override
+// public <A extends Annotation> A getAnnotation(Class<A> a, Class<?> c) {
+// List<A> aa = getAnnotations(a, c);
+// return aa.isEmpty() ? null : aa.get(0);
+// }
+//
/**
* Finds the specified annotation on the specified class.
*
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index e80b720..69dd88b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -611,22 +611,23 @@ public final class ClassMeta<T> implements Type {
if (beanMeta != null && bc != null &&
bc.isUseInterfaceProxies() && innerClass.isInterface())
invocationHandler = new
BeanProxyInvocationHandler<T>(beanMeta);
- Bean b = bc == null ? null :
bc.getAnnotation(Bean.class, c);
- if (b != null) {
- if (b.beanDictionary().length != 0)
- beanRegistry = new BeanRegistry(bc,
null, b.beanDictionary());
- if (b.dictionary().length != 0)
- beanRegistry = new BeanRegistry(bc,
null, b.dictionary());
-
- // This could be a non-bean POJO with a type
name.
- if (dictionaryName == null && !
b.typeName().isEmpty())
- dictionaryName = b.typeName();
+ if (bc != null) {
+ for (Bean b : bc.getAnnotations(Bean.class, c))
{
+ if (b.beanDictionary().length != 0)
+ beanRegistry = new
BeanRegistry(bc, null, b.beanDictionary());
+ if (b.dictionary().length != 0)
+ beanRegistry = new
BeanRegistry(bc, null, b.dictionary());
+
+ // This could be a non-bean POJO with a
type name.
+ if (dictionaryName == null && !
b.typeName().isEmpty())
+ dictionaryName = b.typeName();
+ }
}
- Example e = bc == null ? null :
bc.getAnnotation(Example.class, c);
-
- if (example == null && e != null && !
e.value().isEmpty())
- example = e.value();
+ if (example == null && bc != null)
+ for (Example e :
bc.getAnnotations(Example.class, c))
+ if (! e.value().isEmpty())
+ example = e.value();
if (example == null) {
switch(cc) {
@@ -695,13 +696,14 @@ public final class ClassMeta<T> implements Type {
}
private void findPojoSwaps(List<PojoSwap> l, BeanContext bc) {
- Swap swap = bc == null ? null :
bc.getAnnotation(Swap.class, innerClass);
- if (swap != null)
- l.add(createPojoSwap(swap));
- Swaps swaps = bc == null ? null :
bc.getAnnotation(Swaps.class, innerClass);
- if (swaps != null)
- for (Swap s : swaps.value())
- l.add(createPojoSwap(s));
+
+ if (bc != null) {
+ for (Swap swap : bc.getAnnotations(Swap.class,
innerClass))
+ l.add(createPojoSwap(swap));
+ for (Swaps swaps :
bc.getAnnotations(Swaps.class, innerClass))
+ for (Swap swap : swaps.value())
+ l.add(createPojoSwap(swap));
+ }
PojoSwap defaultSwap = DefaultSwaps.find(ci);
if (defaultSwap == null)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MetaProvider.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MetaProvider.java
index 63a43c1..2f9b878 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MetaProvider.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MetaProvider.java
@@ -68,12 +68,6 @@ public interface MetaProvider {
}
@Override
- public <A extends Annotation> A getAnnotation(Class<A> a,
Class<?> c) {
- List<A> l = getAnnotations(a, c);
- return l.isEmpty() ? null : l.get(0);
- }
-
- @Override
public <A extends Annotation> A getDeclaredAnnotation(Class<A>
a, Class<?> c) {
List<A> l = getAnnotations(a, c);
return l.isEmpty() ? null : l.get(0);
@@ -108,9 +102,6 @@ public interface MetaProvider {
*/
<A extends Annotation> List<A> getAnnotations(Class<A> a, Class<?> c);
- // TEMPORARY
- <A extends Annotation> A getAnnotation(Class<A> a, Class<?> c);
-
/**
* Finds the specified declared annotation on the specified class.
*
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
index d6269c2..6410e57 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
@@ -188,10 +188,9 @@ public class BuilderSwap<T,B> {
ConstructorInfo pojoConstructor = null;
ConstructorInfo builderConstructor;
- org.apache.juneau.annotation.Builder b =
bc.getAnnotation(org.apache.juneau.annotation.Builder.class, pojoClass);
-
- if (b != null && b.value() != Null.class)
- builderClass = b.value();
+ for (org.apache.juneau.annotation.Builder b :
bc.getAnnotations(org.apache.juneau.annotation.Builder.class, pojoClass))
+ if (b.value() != Null.class)
+ builderClass = b.value();
ClassInfo pci = ClassInfo.of(pojoClass);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
index e92da24..ddfc68c 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
@@ -79,10 +79,9 @@ public class XmlBeanMeta extends ExtendedBeanMeta {
XmlBeanMetaBuilder(BeanMeta<?> beanMeta, XmlMetaProvider mp) {
Class<?> c = beanMeta.getClassMeta().getInnerClass();
- Xml xml = mp.getAnnotation(Xml.class, c);
XmlFormat defaultFormat = null;
- if (xml != null) {
+ for (Xml xml : mp.getAnnotations(Xml.class, c)) {
XmlFormat xf = xml.format();
if (xf == ATTRS)
defaultFormat = XmlFormat.ATTR;