Author: jleroux Date: Tue May 15 19:19:03 2012 New Revision: 1338843 URL: http://svn.apache.org/viewvc?rev=1338843&view=rev Log: "Applied fix from trunk for revision: 1338831" (conflicts in CommonUiLabels.xml handled by hand) ------------------------------------------------------------------------ r1338831 | jleroux | 2012-05-15 21:03:26 +0200 (mar., 15 mai 2012) | 14 lines
Fixes https://issues.apache.org/jira/browse/OFBIZ-4652 "The Label Manager is wrongly overriding CommonEmptyHeader" * Adds a keepSpace boolean to UtilXml.writeXmlDocument(), this allows to use xsl:preserve-space into UtilXml.createOutputTransformer() * Uses it into SaveLabelsToXmlFile.saveLabelsToXmlFile() * Adds some French labels into CommonUiLabels.xml using Labels Manager to test the new functionality * Adds the xml:space attribute into the valueType complexType * Adds the ofbiz-properties.xsd schema into the base-catalog.xml I got an issue when 1st trying to commit: Commit failed (details follow): While preparing 'D:\workspace\ofbizClean\framework\common\config\CommonUiLabels.xml' for commit Inconsistent line ending style So I forced the EOLs to my locale platform value (Win XP) ------------------------------------------------------------------------ Modified: ofbiz/branches/release10.04/ (props changed) ofbiz/branches/release10.04/framework/base/dtd/base-catalog.xml ofbiz/branches/release10.04/framework/base/dtd/ofbiz-properties.xsd ofbiz/branches/release10.04/framework/base/src/org/ofbiz/base/util/UtilXml.java ofbiz/branches/release10.04/framework/common/config/CommonUiLabels.xml ofbiz/branches/release10.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java Propchange: ofbiz/branches/release10.04/ ------------------------------------------------------------------------------ Merged /ofbiz/trunk:r1338831 Modified: ofbiz/branches/release10.04/framework/base/dtd/base-catalog.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/base/dtd/base-catalog.xml?rev=1338843&r1=1338842&r2=1338843&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/base/dtd/base-catalog.xml (original) +++ ofbiz/branches/release10.04/framework/base/dtd/base-catalog.xml Tue May 15 19:19:03 2012 @@ -29,4 +29,5 @@ under the License. <system systemId="http://ofbiz.apache.org/dtds/jndi-config.xsd" uri="jndi-config.xsd"/> <system systemId="http://ofbiz.apache.org/dtds/ofbiz-component.xsd" uri="ofbiz-component.xsd"/> <system systemId="http://ofbiz.apache.org/dtds/ofbiz-containers.xsd" uri="ofbiz-containers.xsd"/> + <system systemId="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd" uri="ofbiz-properties.xsd"/> </catalog> Modified: ofbiz/branches/release10.04/framework/base/dtd/ofbiz-properties.xsd URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/base/dtd/ofbiz-properties.xsd?rev=1338843&r1=1338842&r2=1338843&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/base/dtd/ofbiz-properties.xsd (original) +++ ofbiz/branches/release10.04/framework/base/dtd/ofbiz-properties.xsd Tue May 15 19:19:03 2012 @@ -36,4 +36,12 @@ under the License. <xs:attributeGroup name="attlist.property"> <xs:attribute type="xs:string" name="key" use="required"/> </xs:attributeGroup> + <xs:complexType name="valueType"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute ref="xml:lang"/> + <xs:attribute ref="xml:space"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> </xs:schema> Modified: ofbiz/branches/release10.04/framework/base/src/org/ofbiz/base/util/UtilXml.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/base/src/org/ofbiz/base/util/UtilXml.java?rev=1338843&r1=1338842&r2=1338843&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/base/src/org/ofbiz/base/util/UtilXml.java (original) +++ ofbiz/branches/release10.04/framework/base/src/org/ofbiz/base/util/UtilXml.java Tue May 15 19:19:03 2012 @@ -159,20 +159,26 @@ public class UtilXml { // ----- TrAX Methods ----------------- // - /** Creates a JAXP TrAX Transformer suitable for pretty-printing an - * XML document. This method is provided as an alternative to the - * deprecated <code>org.apache.xml.serialize.OutputFormat</code> class. - * @param encoding Optional encoding, defaults to UTF-8 - * @param omitXmlDeclaration If <code>true</code> the xml declaration - * will be omitted from the output - * @param indent If <code>true</code>, the output will be indented - * @param indentAmount If <code>indent</code> is <code>true</code>, - * the number of spaces to indent. Default is 4. + /** + * Creates a JAXP TrAX Transformer suitable for pretty-printing an XML document. This method is provided as an alternative to the deprecated + * <code>org.apache.xml.serialize.OutputFormat</code> class. + * + * @param encoding + * Optional encoding, defaults to UTF-8 + * @param omitXmlDeclaration + * If <code>true</code> the xml declaration will be omitted from the output + * @param indent + * If <code>true</code>, the output will be indented + * @param indentAmount + * If <code>indent</code> is <code>true</code>, the number of spaces to indent. Default is 4. + * @param keepSpace + * If <code>true</code> spaces are preserved, else striped * @return A <code>Transformer</code> instance * @see <a href="http://java.sun.com/javase/6/docs/api/javax/xml/transform/package-summary.html">JAXP TrAX</a> * @throws TransformerConfigurationException */ - public static Transformer createOutputTransformer(String encoding, boolean omitXmlDeclaration, boolean indent, int indentAmount) throws TransformerConfigurationException { + public static Transformer createOutputTransformer(String encoding, boolean omitXmlDeclaration, boolean indent, int indentAmount, boolean keepSpace) + throws TransformerConfigurationException { StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); sb.append("<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:xalan=\"http://xml.apache.org/xslt\" version=\"1.0\">\n"); @@ -190,7 +196,11 @@ public class UtilXml { sb.append(indentAmount <= 0 ? 4 : indentAmount); sb.append("\""); } - sb.append("/>\n<xsl:strip-space elements=\"*\"/>\n"); + if (keepSpace) { + sb.append("/>\n<xsl:preserve-space elements=\"*\"/>\n"); + } else { + sb.append("/>\n<xsl:strip-space elements=\"*\"/>\n"); + } sb.append("<xsl:template match=\"@*|node()\">\n"); sb.append("<xsl:copy><xsl:apply-templates select=\"@*|node()\"/></xsl:copy>\n"); sb.append("</xsl:template>\n</xsl:stylesheet>\n"); @@ -213,21 +223,29 @@ public class UtilXml { transformer.transform(source, result); } - /** Serializes a DOM <code>Node</code> to an <code>OutputStream</code> - * using JAXP TrAX. - * @param node The <code>Node</code> to serialize - * @param os The <code>OutputStream</code> to serialize to - * @param encoding Optional encoding, defaults to UTF-8 - * @param omitXmlDeclaration If <code>true</code> the xml declaration - * will be omitted from the output - * @param indent If <code>true</code>, the output will be indented - * @param indentAmount If <code>indent</code> is <code>true</code>, - * the number of spaces to indent. Default is 4. + /** + * Serializes a DOM <code>Node</code> to an <code>OutputStream</code> using JAXP TrAX. + * + * @param node + * The <code>Node</code> to serialize + * @param os + * The <code>OutputStream</code> to serialize to + * @param encoding + * Optional encoding, defaults to UTF-8 + * @param omitXmlDeclaration + * If <code>true</code> the xml declaration will be omitted from the output + * @param keepSpace + * If <code>true</code> spaces are preserved, else striped + * @param indent + * If <code>true</code>, the output will be indented + * @param indentAmount + * If <code>indent</code> is <code>true</code>, the number of spaces to indent. Default is 4. * @see <a href="http://java.sun.com/javase/6/docs/api/javax/xml/transform/package-summary.html">JAXP TrAX</a> * @throws TransformerException */ - public static void writeXmlDocument(Node node, OutputStream os, String encoding, boolean omitXmlDeclaration, boolean indent, int indentAmount) throws TransformerException { - Transformer transformer = createOutputTransformer(encoding, omitXmlDeclaration, indent, indentAmount); + public static void writeXmlDocument(Node node, OutputStream os, String encoding, boolean omitXmlDeclaration, boolean indent, int indentAmount, + boolean keepSpace) throws TransformerException { + Transformer transformer = createOutputTransformer(encoding, omitXmlDeclaration, indent, indentAmount, keepSpace); transformDomDocument(transformer, node, os); } @@ -326,9 +344,9 @@ public class UtilXml { return; } // OutputFormat defaults are: indent on, indent = 4, include XML declaration, - // charset = UTF-8, line width = 72 + // charset = UTF-8, line width = 72, strip spaces try { - writeXmlDocument(node, os, "UTF-8", false, true, 4); + writeXmlDocument(node, os, "UTF-8", false, true, 4, false); } catch (TransformerException e) { // Wrapping this exception for backwards compatibility throw new IOException(e.getMessage()); Modified: ofbiz/branches/release10.04/framework/common/config/CommonUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/common/config/CommonUiLabels.xml?rev=1338843&r1=1338842&r2=1338843&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/common/config/CommonUiLabels.xml (original) +++ ofbiz/branches/release10.04/framework/common/config/CommonUiLabels.xml Tue May 15 19:19:03 2012 @@ -2178,6 +2178,7 @@ <value xml:lang="zh_CN">çµåé®ä»¶</value> </property> <property key="CommonEmptyHeader"> + <!-- do not remove this! --> <value xml:lang="en" xml:space="preserve"> </value> </property> <property key="CommonEnabled"> Modified: ofbiz/branches/release10.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java?rev=1338843&r1=1338842&r2=1338843&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java (original) +++ ofbiz/branches/release10.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java Tue May 15 19:19:03 2012 @@ -34,10 +34,8 @@ import org.ofbiz.base.util.UtilPropertie import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; import org.ofbiz.base.util.cache.UtilCache; - import org.ofbiz.service.DispatchContext; import org.ofbiz.service.ServiceUtil; - import org.w3c.dom.Comment; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -148,7 +146,7 @@ public class SaveLabelsToXmlFile { if (apacheLicenseText != null) { fos.write(apacheLicenseText.getBytes()); } - UtilXml.writeXmlDocument(resourceElem, fos, "UTF-8", !(apacheLicenseText == null), true, 4); + UtilXml.writeXmlDocument(resourceElem, fos, "UTF-8", !(apacheLicenseText == null), true, 4, true); } finally { fos.close(); // clear cache to see immediately the new labels and