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 0951241  Fix bug in AddressBookResource involving @Bean(typeName) on 
non-bean POJO.
0951241 is described below

commit 0951241b26f16dfd13eddf9e426bfaf069d9068b
Author: JamesBognar <jamesbog...@apache.org>
AuthorDate: Sun Mar 4 13:52:45 2018 -0500

    Fix bug in AddressBookResource involving @Bean(typeName) on non-bean
    POJO.
---
 .../src/main/java/org/apache/juneau/ClassMeta.java |  10 ++++++++--
 .../org/apache/juneau/html/HtmlParserSession.java  |   4 ++--
 .../apache/juneau/xml/XmlSerializerSession.java    |   2 --
 ...u-examples-rest.AddressBookResource.Demo.05.png | Bin 79890 -> 302265 bytes
 ...u-examples-rest.AddressBookResource.Demo.06.png | Bin 385485 -> 342287 bytes
 juneau-doc/src/main/javadoc/overview.html          |  12 ++++++++++++
 .../rest/addressbook/AddressBookResource.java      |   6 ++++++
 7 files changed, 28 insertions(+), 6 deletions(-)

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 f5576bb..c905094 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
@@ -656,8 +656,14 @@ public final class ClassMeta<T> implements Type {
                                invocationHandler = new 
BeanProxyInvocationHandler<T>(beanMeta);
 
                        Bean b = c.getAnnotation(Bean.class);
-                       if (b != null && b.beanDictionary().length != 0)
-                               beanRegistry = new BeanRegistry(beanContext, 
null, b.beanDictionary());
+                       if (b != null) {
+                               if (b.beanDictionary().length != 0)
+                                       beanRegistry = new 
BeanRegistry(beanContext, null, b.beanDictionary());
+                               
+                               // This could be a non-bean POJO with a type 
name.
+                               if (dictionaryName == null && ! 
b.typeName().isEmpty())
+                                       dictionaryName = b.typeName();
+                       }
                }
 
                private BeanFilter findBeanFilter() {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
index e4f22d3..23dc130 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
@@ -203,10 +203,10 @@ public final class HtmlParserSession extends 
XmlParserSession {
 
                        if (cm != null) {
                                sType = eType = cm;
-                               typeName = sType.isArray() ? "array" : "object";
+                               typeName = sType.isCollectionOrArray() ? 
"array" : "object";
                        } else if (! "array".equals(typeName)) {
                                // Type name could be a subtype name.
-                               typeName = "object";
+                               typeName = sType.isCollectionOrArray() ? 
"array" : "object";
                        }
 
                        if (typeName.equals("object")) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index 81583ea..516f03c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -695,8 +695,6 @@ public class XmlSerializerSession extends 
WriterSerializerSession {
                c = sort(c);
 
                String type2 = null;
-               if (sType != eType)
-                       type2 = sType.getDictionaryName();
 
                String eName = type2;
                Namespace eNs = null;
diff --git 
a/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.05.png
 
b/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.05.png
index 6e504ee..9f8e66e 100644
Binary files 
a/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.05.png
 and 
b/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.05.png
 differ
diff --git 
a/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.06.png
 
b/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.06.png
index 75eabc8..67a7d32 100644
Binary files 
a/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.06.png
 and 
b/juneau-doc/src/main/javadoc/doc-files/juneau-examples-rest.AddressBookResource.Demo.06.png
 differ
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index 31dddd6..1c1b065 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -14289,6 +14289,12 @@
                        <jc>// Use single quotes.</jc>
                        
<ja>@Property</ja>(name=<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>),
        
+                       <jc>// Enable XML namespaces.</jc>
+                       
<ja>@Property</ja>(name=<jsf>XML_enableNamespaces</jsf>, value=<js>"true"</js>),
+
+                       <jc>// Add namespace URIs to root node.</jc>
+                       
<ja>@Property</ja>(name=<jsf>XML_addNamespaceUrisToRoot</jsf>, 
value=<js>"true"</js>),
+
                        <jc>// Make RDF/XML readable.</jc>
                        <ja>@Property</ja>(name=<jsf>RDF_rdfxml_tab</jsf>, 
value=<js>"5"</js>),
        
@@ -16417,6 +16423,12 @@
                        TBD
                </p>
                
+               <h5 class='topic'>juneau-marshall</h5>
+               <ul class='spaced-list'>
+                       <li>
+                               Fixed bug where 
<code><ja>@Bean</ja>(typeName)</code> was not being detected on non-bean POJO 
classes.
+               </ul>
+               
                <h5 class='topic'>juneau-server</h5>
                <ul class='spaced-list'>
                        <li>
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
index 5ed9e4b..20713ca 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
@@ -91,6 +91,12 @@ import org.apache.juneau.utils.*;
                // Use single quotes.
                @Property(name=SERIALIZER_quoteChar, value="'"),
 
+               // Enable XML namespaces.
+               @Property(name=XML_enableNamespaces, value="true"),
+
+               // Add namespace URIs to root node.
+               @Property(name=XML_addNamespaceUrisToRoot, value="true"),
+               
                // Make RDF/XML readable.
                @Property(name=RDF_rdfxml_tab, value="5"),
 

-- 
To stop receiving notification emails like this one, please contact
jamesbog...@apache.org.

Reply via email to