Author: adrianc
Date: Sun Apr 26 03:21:40 2009 New Revision: 768634 URL: http://svn.apache.org/viewvc?rev=768634&view=rev Log: Cleaned up SaveLabelsToXmlFile.java code, converted to use new UtilXml methods. This is an example of how to eliminate the use of the deprecated OutputFormat class. Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java?rev=768634&r1=768633&r2=768634&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java (original) +++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java Sun Apr 26 03:21:40 2009 @@ -20,13 +20,13 @@ import java.io.File; import java.io.FileOutputStream; +import java.io.IOException; import java.net.URI; import java.util.Locale; import java.util.Map; import java.util.Set; import org.apache.commons.lang.StringEscapeUtils; -import org.apache.xml.serialize.OutputFormat; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.FileUtil; import org.ofbiz.base.util.UtilProperties; @@ -50,40 +50,38 @@ public static Map<String, Object> saveLabelsToXmlFile(DispatchContext dctx, Map<String, ? extends Object> context) { Locale locale = (Locale)context.get("locale"); String labelFileName = (String)context.get("labelFileName"); - + String apacheLicenseText = null; + try { + apacheLicenseText = getApacheLicenseText(); + } catch (IOException e) { + Debug.logWarning(e, "Unable to read Apache License text file", module); + } try { LabelManagerFactory.getLabelManagerFactory(dctx.getDelegator().getDelegatorName()); Map<String, LabelInfo> labels = LabelManagerFactory.getLabels(); Map<String, String> fileNamesFound = LabelManagerFactory.getFileNamesFound(); Set<String> labelsList = LabelManagerFactory.getLabelsList(); Set<String> localesFound = LabelManagerFactory.getLocalesFound(); - for (String fileName : fileNamesFound.keySet()) { if (UtilValidate.isNotEmpty(labelFileName) && !(labelFileName.equalsIgnoreCase(fileName))) { continue; } - - String uri = (String)fileNamesFound.get(fileName); + String uri = fileNamesFound.get(fileName); Document resourceDocument = UtilXml.makeEmptyXmlDocument("resource"); Element resourceElem = resourceDocument.getDocumentElement(); resourceElem.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); - for (String labelKey : labelsList) { - LabelInfo labelInfo = (LabelInfo)labels.get(labelKey); - + LabelInfo labelInfo = labels.get(labelKey); if (!(labelInfo.getFileName().equalsIgnoreCase(fileName))) { continue; } - Element propertyElem = UtilXml.addChildElement(resourceElem, "property", resourceDocument); propertyElem.setAttribute("key", StringEscapeUtils.unescapeHtml(labelInfo.getLabelKey())); - if (UtilValidate.isNotEmpty(labelInfo.getLabelKeyComment())) { Comment labelKeyComment = resourceDocument.createComment(StringEscapeUtils.unescapeHtml(labelInfo.getLabelKeyComment())); Node parent = propertyElem.getParentNode(); parent.insertBefore(labelKeyComment, propertyElem); } - for (String localeFound : localesFound) { LabelValue labelValue = labelInfo.getLabelValue(localeFound); String valueString = null; @@ -105,40 +103,18 @@ } } } - if (UtilValidate.isNotEmpty(uri)) { File outFile = new File(new URI(uri)); FileOutputStream fos = new FileOutputStream(outFile); - OutputFormat format = new OutputFormat(resourceDocument.getDocumentElement().getOwnerDocument(), "UTF-8", true); - try { - format.setIndent(4); - format.setOmitXMLDeclaration(true); - UtilXml.writeXmlDocument(fos, resourceElem, format); - } finally { - if (UtilValidate.isNotEmpty(fos)) { - fos.close(); - - // workaround to insert the Apache License Header at top of the file - // because the comment on top the xml file has been not written - String outBuffer = FileUtil.readString("UTF-8", outFile); - String basePath = System.getProperty("ofbiz.home"); - - if (UtilValidate.isNotEmpty(basePath)) { - String apacheHeaderFileName = basePath + "/framework/webtools/config/APACHE2_HEADER_FOR_XML"; - String apacheHeaderBuffer = ""; - File apacheHeaderFile = new File(apacheHeaderFileName); - - if (UtilValidate.isNotEmpty(apacheHeaderFile)) { - apacheHeaderBuffer = FileUtil.readString("UTF-8", apacheHeaderFile); - } - - FileUtil.writeString("UTF-8", apacheHeaderBuffer + outBuffer, outFile); - - // clear cache to see immediately the new labels and translations in OFBiz - UtilCache.clearCache("properties.UtilPropertiesBundleCache"); - } + if (apacheLicenseText != null) { + fos.write(apacheLicenseText.getBytes()); } + UtilXml.writeXmlDocument(resourceElem, fos, "UTF-8", true, true, 4); + } finally { + fos.close(); + // clear cache to see immediately the new labels and translations in OFBiz + UtilCache.clearCache("properties.UtilPropertiesBundleCache"); } } } @@ -148,4 +124,15 @@ } return ServiceUtil.returnSuccess(); } + + public static String getApacheLicenseText() throws IOException { + String apacheLicenseText = null; + String basePath = System.getProperty("ofbiz.home"); + if (UtilValidate.isNotEmpty(basePath)) { + String apacheLicenseFileName = basePath + "/framework/webtools/config/APACHE2_HEADER_FOR_XML"; + File apacheLicenseFile = new File(apacheLicenseFileName); + apacheLicenseText = FileUtil.readString("UTF-8", apacheLicenseFile); + } + return apacheLicenseText; + } } |
Free forum by Nabble | Edit this page |