cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-6764) Should add RI JAXB Namespacemapper support
Date Thu, 28 Jan 2016 17:58:40 GMT

    [ https://issues.apache.org/jira/browse/CXF-6764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15121985#comment-15121985
] 

Daniel Kulp commented on CXF-6764:
----------------------------------

I'm a bit confused by the comment.   There is a bug there as that SHOULD be:

{code:java}
if (cls == null
            && (!mcls.getName().contains(".internal.") || mcls.getName().contains("com.sun")))
{
{code}
as it should only go into there if its NOT the "internal" version.   If it is the internal
version, the code above this:

{code}
 if (cls == null) {
            try {
                ClassWriter cw = helper.createClassWriter();
                if (cw != null) { 
                    cls = createNamespaceWrapperInternal(helper, cw, postFix, mcls);
                }
            } catch (RuntimeException ex) {
                // continue
            }
        }
{code}
should be generating NamespaceMapper of the "internal" type.



> Should add RI JAXB Namespacemapper support
> ------------------------------------------
>
>                 Key: CXF-6764
>                 URL: https://issues.apache.org/jira/browse/CXF-6764
>             Project: CXF
>          Issue Type: Bug
>          Components: Core, JAX-RS
>    Affects Versions: 3.0.7, 3.1.4
>         Environment: Windows
>            Reporter: Neal Hu
>             Fix For: 3.1.5, 3.0.8, 3.2.0
>
>
> /cxf-core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java:1097
> {code:java}
>         if (cls == null
>             && (mcls.getName().contains(".internal.") || mcls.getName().contains("com.sun")))
{
>             try {
>                 cls = ClassLoaderUtils.loadClass("org.apache.cxf.common.jaxb.NamespaceMapper",

>                                                  JAXBUtils.class);
>             } catch (ClassNotFoundException ex2) {
>                 // ignore
>             }
>         }
> {code}
> CXF only add org.apache.cxf.common.jaxb.NamespaceMapper which extends com.sun.xml.bind.marshaller.NamespacePrefixMapper,
but the RI JAXB need a mapper extends com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
> So when we add namespace mapper in JAXBElementProvider subclass, the RI JAXB cann't add
the namespace mapping correctly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message