Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AEA13C9F5 for ; Fri, 28 Jun 2013 10:53:13 +0000 (UTC) Received: (qmail 79616 invoked by uid 500); 28 Jun 2013 10:53:13 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 79486 invoked by uid 500); 28 Jun 2013 10:53:12 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 79479 invoked by uid 99); 28 Jun 2013 10:53:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Jun 2013 10:53:11 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Jun 2013 10:53:08 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3A44D23888FE; Fri, 28 Jun 2013 10:52:48 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1497725 - in /cxf/branches/2.6.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java Date: Fri, 28 Jun 2013 10:52:48 -0000 To: commits@cxf.apache.org From: sergeyb@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130628105248.3A44D23888FE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: sergeyb Date: Fri Jun 28 10:52:47 2013 New Revision: 1497725 URL: http://svn.apache.org/r1497725 Log: Merged revisions 1497715 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes ................ r1497715 | sergeyb | 2013-06-28 11:31:17 +0100 (Fri, 28 Jun 2013) | 9 lines Merged revisions 1497712 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1497712 | sergeyb | 2013-06-28 11:17:23 +0100 (Fri, 28 Jun 2013) | 1 line [CXF-5100] Support for customizing namespace mapper and XML PI property names, take2 ........ ................ Modified: cxf/branches/2.6.x-fixes/ (props changed) cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java Propchange: cxf/branches/2.6.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Jun 28 10:52:47 2013 @@ -0,0 +1,2 @@ +/cxf/branches/2.7.x-fixes:1497715 +/cxf/trunk:1497712 Propchange: cxf/branches/2.6.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java?rev=1497725&r1=1497724&r2=1497725&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java (original) +++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Fri Jun 28 10:52:47 2013 @@ -88,8 +88,8 @@ public abstract class AbstractJAXBProvid protected static final ResourceBundle BUNDLE = BundleUtils.getBundle(AbstractJAXBProvider.class); protected static final Logger LOG = LogUtils.getL7dLogger(AbstractJAXBProvider.class); - protected static final String NS_MAPPER_PROPERTY = "com.sun.xml.bind.namespacePrefixMapper"; - protected static final String NS_MAPPER_PROPERTY_INT = "com.sun.xml.internal.bind.namespacePrefixMapper"; + protected static final String NS_MAPPER_PROPERTY_RI = "com.sun.xml.bind.namespacePrefixMapper"; + protected static final String NS_MAPPER_PROPERTY_RI_INT = "com.sun.xml.internal.bind.namespacePrefixMapper"; private static final String JAXB_DEFAULT_NAMESPACE = "##default"; private static final String JAXB_DEFAULT_NAME = "##default"; @@ -135,10 +135,16 @@ public abstract class AbstractJAXBProvid private Unmarshaller.Listener unmarshallerListener; private Marshaller.Listener marshallerListener; private DocumentDepthProperties depthProperties; + private String namespaceMapperPropertyName; - protected static void setNamespaceMapper(Marshaller ms, Map map) throws Exception { + protected void setNamespaceMapper(Marshaller ms, + Map map) throws Exception { NamespaceMapper nsMapper = new NamespaceMapper(map); - setMarshallerProp(ms, nsMapper, NS_MAPPER_PROPERTY, NS_MAPPER_PROPERTY_INT); + if (namespaceMapperPropertyName != null) { + setMarshallerProp(ms, nsMapper, namespaceMapperPropertyName, null); + } else { + setMarshallerProp(ms, nsMapper, NS_MAPPER_PROPERTY_RI, NS_MAPPER_PROPERTY_RI_INT); + } } protected static void setMarshallerProp(Marshaller ms, Object value, @@ -146,7 +152,11 @@ public abstract class AbstractJAXBProvid try { ms.setProperty(name1, value); } catch (PropertyException ex) { - ms.setProperty(name2, value); + if (name2 != null) { + ms.setProperty(name2, value); + } else { + throw ex; + } } } @@ -794,6 +804,10 @@ public abstract class AbstractJAXBProvid this.marshallerListener = marshallerListener; } + public void setNamespaceMapperPropertyName(String namespaceMapperProperty) { + this.namespaceMapperPropertyName = namespaceMapperProperty; + } + @XmlRootElement protected static class CollectionWrapper { Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java?rev=1497725&r1=1497724&r2=1497725&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java (original) +++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java Fri Jun 28 10:52:47 2013 @@ -77,8 +77,8 @@ import org.apache.cxf.staxutils.transfor @Provider public class JAXBElementProvider extends AbstractJAXBProvider { private static final String XML_PI_START = " MARSHALLER_PROPERTIES = Arrays.asList(new String[] {Marshaller.JAXB_ENCODING, @@ -86,14 +86,15 @@ public class JAXBElementProvider exte Marshaller.JAXB_FRAGMENT, Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, Marshaller.JAXB_SCHEMA_LOCATION, - NS_MAPPER_PROPERTY, - NS_MAPPER_PROPERTY_INT, - XML_PI_PROPERTY, - XML_PI_PROPERTY_INT}); + NS_MAPPER_PROPERTY_RI, + NS_MAPPER_PROPERTY_RI_INT, + XML_PI_PROPERTY_RI, + XML_PI_PROPERTY_RI_INT}); private Map mProperties = Collections.emptyMap(); private Map nsPrefixes = Collections.emptyMap(); private String xmlResourceOffset = ""; + private String xmlPiPropertyName; public JAXBElementProvider() { @@ -107,6 +108,14 @@ public class JAXBElementProvider exte nsPrefixes = prefixes; } + protected void setXmlPiProperty(Marshaller ms, String value) throws Exception { + if (xmlPiPropertyName != null) { + setMarshallerProp(ms, value, xmlPiPropertyName, null); + } else { + setMarshallerProp(ms, value, XML_PI_PROPERTY_RI, XML_PI_PROPERTY_RI_INT); + } + } + @Override protected boolean canBeReadAsJaxbElement(Class type) { return super.canBeReadAsJaxbElement(type) @@ -425,7 +434,7 @@ public class JAXBElementProvider exte String absRef = buildAbsoluteXMLResourceURI(relRef); value = value.substring(0, ind + 6) + absRef + "'?>"; } - setMarshallerProp(ms, value, XML_PI_PROPERTY, XML_PI_PROPERTY_INT); + setXmlPiProperty(ms, value); } } @@ -570,5 +579,9 @@ public class JAXBElementProvider exte throws Exception { ms.marshal(obj, writer); } + + public void setXmlPiPropertyName(String xmlPiPropertyName) { + this.xmlPiPropertyName = xmlPiPropertyName; + } }