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;

Reply via email to