This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 21aa776a63912e1d32d0c6e4da5ed6a7b1ac0096
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Aug 14 10:30:49 2019 +0100

    Refactor i18n export tool to make re-use easier.
---
 .../apache/tomcat/buildutil/translate/Export.java  | 69 +---------------------
 .../apache/tomcat/buildutil/translate/Utils.java   | 54 +++++++++++++++++
 2 files changed, 56 insertions(+), 67 deletions(-)

diff --git a/java/org/apache/tomcat/buildutil/translate/Export.java 
b/java/org/apache/tomcat/buildutil/translate/Export.java
index a4d73b8..2b963d1 100644
--- a/java/org/apache/tomcat/buildutil/translate/Export.java
+++ b/java/org/apache/tomcat/buildutil/translate/Export.java
@@ -37,79 +37,14 @@ public class Export {
 
     public static void main(String... args) {
         for (String dir : Constants.SEARCH_DIRS) {
-            processRoot(dir);
+            File root = new File(dir);
+            Utils.processDirectory(root, translations);
         }
 
         outputTranslations();
     }
 
 
-    private static void processRoot(String dir) {
-        // Run from within IDE so working dir is root of project.
-        File root = new File(dir);
-
-        // Assumes no l18n files directly in roots
-        for (File f : root.listFiles()) {
-            if (f.isDirectory()) {
-                processDirectory(f);
-            }
-        }
-    }
-
-
-    private static void processDirectory(File dir) {
-        for (File f : dir.listFiles()) {
-            if (f.isDirectory()) {
-                processDirectory(f);
-            } else if (f.isFile()) {
-                processFile(f);
-            }
-        }
-    }
-
-
-    private static void processFile(File f) {
-        String name = f.getName();
-
-        // non-l10n files
-        if (!name.startsWith(Constants.L10N_PREFIX)) {
-            return;
-        }
-
-        // Determine language
-        String language = Utils.getLanguage(name);
-
-        String keyPrefix = getKeyPrefix(f);
-        Properties props = Utils.load(f);
-
-        // Create a Map for the language if one does not exist.
-        Properties translation = translations.get(language);
-        if (translation == null) {
-            translation = new Properties();
-            translations.put(language, translation);
-        }
-
-        // Add the properties from this file to the combined file, prefixing 
the
-        // key with the package name to ensure uniqueness.
-        for (Object obj : props.keySet()) {
-            String key = (String) obj;
-            String value = props.getProperty(key);
-
-            translation.put(keyPrefix + key, value);
-        }
-    }
-
-
-    private static String getKeyPrefix(File f) {
-        File wd = new File(".");
-        String prefix = f.getParentFile().getAbsolutePath();
-        prefix = prefix.substring(wd.getAbsolutePath().length() - 1);
-        prefix = prefix.replace(File.separatorChar, '.');
-        prefix = prefix + Constants.END_PACKAGE_MARKER;
-        return prefix;
-    }
-
-
     private static void outputTranslations() {
 
         File storageDir = new File(Constants.STORAGE_DIR);
diff --git a/java/org/apache/tomcat/buildutil/translate/Utils.java 
b/java/org/apache/tomcat/buildutil/translate/Utils.java
index 9a5f5d7..d441c35 100644
--- a/java/org/apache/tomcat/buildutil/translate/Utils.java
+++ b/java/org/apache/tomcat/buildutil/translate/Utils.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.nio.charset.StandardCharsets;
+import java.util.Map;
 import java.util.Properties;
 import java.util.regex.Pattern;
 
@@ -70,4 +71,57 @@ public class Utils {
         }
         return result;
     }
+
+
+    static void processDirectory(File dir, Map<String,Properties> 
translations) {
+        for (File f : dir.listFiles()) {
+            if (f.isDirectory()) {
+                processDirectory(f, translations);
+            } else if (f.isFile()) {
+                processFile(f, translations);
+            }
+        }
+    }
+
+
+    static void processFile(File f, Map<String,Properties> translations) {
+        String name = f.getName();
+
+        // non-l10n files
+        if (!name.startsWith(Constants.L10N_PREFIX)) {
+            return;
+        }
+
+        // Determine language
+        String language = Utils.getLanguage(name);
+
+        String keyPrefix = getKeyPrefix(f);
+        Properties props = Utils.load(f);
+
+        // Create a Map for the language if one does not exist.
+        Properties translation = translations.get(language);
+        if (translation == null) {
+            translation = new Properties();
+            translations.put(language, translation);
+        }
+
+        // Add the properties from this file to the combined file, prefixing 
the
+        // key with the package name to ensure uniqueness.
+        for (Object obj : props.keySet()) {
+            String key = (String) obj;
+            String value = props.getProperty(key);
+
+            translation.put(keyPrefix + key, value);
+        }
+    }
+
+
+    static String getKeyPrefix(File f) {
+        File wd = new File(".");
+        String prefix = f.getParentFile().getAbsolutePath();
+        prefix = prefix.substring(wd.getAbsolutePath().length() - 1);
+        prefix = prefix.replace(File.separatorChar, '.');
+        prefix = prefix + Constants.END_PACKAGE_MARKER;
+        return prefix;
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to