svn commit: r768634 - /ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r768634 - /ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java

adrianc
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;
+    }
 }