You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2017/08/26 07:51:59 UTC

svn commit: r1806271 - in /ofbiz/branches: release13.07/framework/webtools/src/org/ofbiz/webtools/labelmanager/ release14.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/ release15.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/

Author: jleroux
Date: Sat Aug 26 07:51:58 2017
New Revision: 1806271

URL: http://svn.apache.org/viewvc?rev=1806271&view=rev
Log:
"Applied fix BY HAND from trunk framework for revision: 1806266" 
------------------------------------------------------------------------
r1806266 | jleroux | 2017-08-26 09:37:49 +0200 (sam., 26 août 2017) | 23 lines

Fixed: Improvements in LabelReferences class
(OFBIZ-9623)

For Java:
Current support is only for occurrences like "UtilProperties.getMessage(",
 but there are other occurrences such as "uiLabelMap.get(" 
in Java as well. Need to add support for same.

For groovy:
After some recent improvements for groovy handling, still, there is a 
possibility that someone is using "UtilProperties.getMessage(" in groovy files 
as well, so IMO, that must also be handled.

For XML forms:
In XML forms current support in handled for auto-fields-service and 
auto-fields-entity but there are some occurrences of tooltip element of 
field tag as well, that must also be handled.

For XML Simple Methods:
Doesn't handle case of property-to-field and default-message elements. 
(Separate ticket created OFBIZ-9606, just adding it here for reference)

Thanks: Suraj Khurana
------------------------------------------------------------------------

Modified:
    ofbiz/branches/release13.07/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java
    ofbiz/branches/release14.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java
    ofbiz/branches/release15.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java

Modified: ofbiz/branches/release13.07/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java?rev=1806271&r1=1806270&r2=1806271&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java (original)
+++ ofbiz/branches/release13.07/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java Sat Aug 26 07:51:58 2017
@@ -179,44 +179,47 @@ public class LabelReferences {
             }
         }
     }
-
     private void getLabelsFromJavaFiles() throws IOException {
         for (String rootFolder : this.rootFolders) {
             List<File> javaFiles = FileUtil.findFiles("java", rootFolder + "src", null, null);
             for (File javaFile : javaFiles) {
                 String inFile = FileUtil.readString("UTF-8", javaFile);
-                int pos = inFile.indexOf(getMessage);
-                while (pos >= 0) {
-                    int endLabel = inFile.indexOf(")", pos);
-                    if (endLabel >= 0) {
-                        String[] args = inFile.substring(pos + getMessage.length(), endLabel).split(",");
-                        for (String labelKey : this.labelSet) {
-                            String searchString = "\"" + labelKey + "\"";
-                            if (searchString.equals(args[1].trim())) {
-                                setLabelReference(labelKey, javaFile.getPath());
-                            }
-                        }
-                        pos = endLabel;
-                    } else {
-                        pos = pos + getMessage.length();
-                    }
-                    pos = inFile.indexOf(getMessage, pos);
-                }
+                findUiLabelMapInMessage(inFile, javaFile.getPath());
+                findUiLabelMapInPattern(inFile, "uiLabelMap.get(\"", javaFile.getPath());
             }
         }
     }
-
     private void getLabelsFromGroovyFiles() throws IOException {
         for (String rootFolder : this.rootFolders) {
             List<File> groovyFiles = FileUtil.findFiles("groovy", rootFolder + "groovyScripts", null, null);
             for (File file : groovyFiles) {
                 String inFile = FileUtil.readString("UTF-8", file);
-                findUiLabelMapInGroovy(inFile, uiLabelMap, file.getPath());
-                findUiLabelMapInGroovy(inFile, "uiLabelMap.get(\"", file.getPath());
+                findUiLabelMapInPattern(inFile, uiLabelMap, file.getPath());
+                findUiLabelMapInPattern(inFile, "uiLabelMap.get(\"", file.getPath());
+                findUiLabelMapInMessage(inFile, file.getPath());
+            }
+        }
+    }
+    protected void findUiLabelMapInMessage(String inFile, String filePath) {
+        int pos = inFile.indexOf(getMessage);
+        while (pos >= 0) {
+            int endLabel = inFile.indexOf(")", pos);
+            if (endLabel >= 0) {
+                String[] args = inFile.substring(pos + getMessage.length(), endLabel).split(",");
+                for (String labelKey : this.labelSet) {
+                    String searchString = "\"" + labelKey + "\"";
+                    if (searchString.equals(args[1].trim())) {
+                        setLabelReference(labelKey, filePath);
+                    }
+                }
+                pos = endLabel;
+            } else {
+                pos = pos + getMessage.length();
             }
+            pos = inFile.indexOf(getMessage, pos);
         }
     }
-    protected void findUiLabelMapInGroovy(String inFile, String pattern, String filePath) {
+    protected void findUiLabelMapInPattern(String inFile, String pattern, String filePath) {
         int pos = inFile.indexOf(pattern);
         while (pos >= 0) {
             String label = inFile.substring(pos + pattern.length());
@@ -300,6 +303,9 @@ public class LabelReferences {
             for (Element elem : UtilXml.childElementList(formElement, "auto-fields-entity")) {
                 getAutoFieldsEntityTag(elem, fieldNames);
             }
+            for (Element elem : UtilXml.childElementList(formElement, "field")) {
+                getAutoFieldsTag(elem, file.getPath());
+            }
             for (String field : fieldNames) {
                 String labelKey = formFieldTitle.concat(field);
                 if (this.labelSet.contains(labelKey)) {
@@ -342,7 +348,28 @@ public class LabelReferences {
             }
         }
     }
-
+    private void getAutoFieldsTag(Element element, String filePath) {
+        String tooltip = UtilFormatOut.checkNull(element.getAttribute("tooltip"));
+        if (UtilValidate.isNotEmpty(tooltip)) {
+            int pos = tooltip.indexOf(getMessage);
+            while (pos >= 0) {
+                int endLabel = tooltip.indexOf(")", pos);
+                if (endLabel >= 0) {
+                    String[] args = tooltip.substring(pos + getMessage.length(), endLabel).split(",");
+                    for (String labelKey : this.labelSet) {
+                        String xmlSearchString = "\'" + labelKey + "\'";
+                        if (xmlSearchString.equals(args[1].trim())) {
+                            setLabelReference(labelKey, filePath);
+                        }
+                    }
+                    pos = endLabel;
+                } else {
+                    pos = pos + getMessage.length();
+                }
+                pos = tooltip.indexOf(getMessage, pos);
+            }
+        }
+    }
     private void getAutoFieldsServiceTag(Element element, Set<String> fieldNames) throws GenericServiceException {
         String serviceName = UtilFormatOut.checkNull(element.getAttribute("service-name"));
         String defaultFieldType = UtilFormatOut.checkNull(element.getAttribute("default-field-type"));

Modified: ofbiz/branches/release14.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java?rev=1806271&r1=1806270&r2=1806271&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java (original)
+++ ofbiz/branches/release14.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java Sat Aug 26 07:51:58 2017
@@ -179,44 +179,47 @@ public class LabelReferences {
             }
         }
     }
-
     private void getLabelsFromJavaFiles() throws IOException {
         for (String rootFolder : this.rootFolders) {
             List<File> javaFiles = FileUtil.findFiles("java", rootFolder + "src", null, null);
             for (File javaFile : javaFiles) {
                 String inFile = FileUtil.readString("UTF-8", javaFile);
-                int pos = inFile.indexOf(getMessage);
-                while (pos >= 0) {
-                    int endLabel = inFile.indexOf(")", pos);
-                    if (endLabel >= 0) {
-                        String[] args = inFile.substring(pos + getMessage.length(), endLabel).split(",");
-                        for (String labelKey : this.labelSet) {
-                            String searchString = "\"" + labelKey + "\"";
-                            if (searchString.equals(args[1].trim())) {
-                                setLabelReference(labelKey, javaFile.getPath());
-                            }
-                        }
-                        pos = endLabel;
-                    } else {
-                        pos = pos + getMessage.length();
-                    }
-                    pos = inFile.indexOf(getMessage, pos);
-                }
+                findUiLabelMapInMessage(inFile, javaFile.getPath());
+                findUiLabelMapInPattern(inFile, "uiLabelMap.get(\"", javaFile.getPath());
             }
         }
     }
-
     private void getLabelsFromGroovyFiles() throws IOException {
         for (String rootFolder : this.rootFolders) {
             List<File> groovyFiles = FileUtil.findFiles("groovy", rootFolder + "groovyScripts", null, null);
             for (File file : groovyFiles) {
                 String inFile = FileUtil.readString("UTF-8", file);
-                findUiLabelMapInGroovy(inFile, uiLabelMap, file.getPath());
-                findUiLabelMapInGroovy(inFile, "uiLabelMap.get(\"", file.getPath());
+                findUiLabelMapInPattern(inFile, uiLabelMap, file.getPath());
+                findUiLabelMapInPattern(inFile, "uiLabelMap.get(\"", file.getPath());
+                findUiLabelMapInMessage(inFile, file.getPath());
+            }
+        }
+    }
+    protected void findUiLabelMapInMessage(String inFile, String filePath) {
+        int pos = inFile.indexOf(getMessage);
+        while (pos >= 0) {
+            int endLabel = inFile.indexOf(")", pos);
+            if (endLabel >= 0) {
+                String[] args = inFile.substring(pos + getMessage.length(), endLabel).split(",");
+                for (String labelKey : this.labelSet) {
+                    String searchString = "\"" + labelKey + "\"";
+                    if (searchString.equals(args[1].trim())) {
+                        setLabelReference(labelKey, filePath);
+                    }
+                }
+                pos = endLabel;
+            } else {
+                pos = pos + getMessage.length();
             }
+            pos = inFile.indexOf(getMessage, pos);
         }
     }
-    protected void findUiLabelMapInGroovy(String inFile, String pattern, String filePath) {
+    protected void findUiLabelMapInPattern(String inFile, String pattern, String filePath) {
         int pos = inFile.indexOf(pattern);
         while (pos >= 0) {
             String label = inFile.substring(pos + pattern.length());
@@ -300,6 +303,9 @@ public class LabelReferences {
             for (Element elem : UtilXml.childElementList(formElement, "auto-fields-entity")) {
                 getAutoFieldsEntityTag(elem, fieldNames);
             }
+            for (Element elem : UtilXml.childElementList(formElement, "field")) {
+                getAutoFieldsTag(elem, file.getPath());
+            }
             for (String field : fieldNames) {
                 String labelKey = formFieldTitle.concat(field);
                 if (this.labelSet.contains(labelKey)) {
@@ -342,7 +348,28 @@ public class LabelReferences {
             }
         }
     }
-
+    private void getAutoFieldsTag(Element element, String filePath) {
+        String tooltip = UtilFormatOut.checkNull(element.getAttribute("tooltip"));
+        if (UtilValidate.isNotEmpty(tooltip)) {
+            int pos = tooltip.indexOf(getMessage);
+            while (pos >= 0) {
+                int endLabel = tooltip.indexOf(")", pos);
+                if (endLabel >= 0) {
+                    String[] args = tooltip.substring(pos + getMessage.length(), endLabel).split(",");
+                    for (String labelKey : this.labelSet) {
+                        String xmlSearchString = "\'" + labelKey + "\'";
+                        if (xmlSearchString.equals(args[1].trim())) {
+                            setLabelReference(labelKey, filePath);
+                        }
+                    }
+                    pos = endLabel;
+                } else {
+                    pos = pos + getMessage.length();
+                }
+                pos = tooltip.indexOf(getMessage, pos);
+            }
+        }
+    }
     private void getAutoFieldsServiceTag(Element element, Set<String> fieldNames) throws GenericServiceException {
         String serviceName = UtilFormatOut.checkNull(element.getAttribute("service-name"));
         String defaultFieldType = UtilFormatOut.checkNull(element.getAttribute("default-field-type"));

Modified: ofbiz/branches/release15.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release15.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java?rev=1806271&r1=1806270&r2=1806271&view=diff
==============================================================================
--- ofbiz/branches/release15.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java (original)
+++ ofbiz/branches/release15.12/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java Sat Aug 26 07:51:58 2017
@@ -178,44 +178,47 @@ public class LabelReferences {
             }
         }
     }
-
     private void getLabelsFromJavaFiles() throws IOException {
         for (String rootFolder : this.rootFolders) {
             List<File> javaFiles = FileUtil.findFiles("java", rootFolder + "src", null, null);
             for (File javaFile : javaFiles) {
                 String inFile = FileUtil.readString("UTF-8", javaFile);
-                int pos = inFile.indexOf(getMessage);
-                while (pos >= 0) {
-                    int endLabel = inFile.indexOf(")", pos);
-                    if (endLabel >= 0) {
-                        String[] args = inFile.substring(pos + getMessage.length(), endLabel).split(",");
-                        for (String labelKey : this.labelSet) {
-                            String searchString = "\"" + labelKey + "\"";
-                            if (searchString.equals(args[1].trim())) {
-                                setLabelReference(labelKey, javaFile.getPath());
-                            }
-                        }
-                        pos = endLabel;
-                    } else {
-                        pos = pos + getMessage.length();
-                    }
-                    pos = inFile.indexOf(getMessage, pos);
-                }
+                findUiLabelMapInMessage(inFile, javaFile.getPath());
+                findUiLabelMapInPattern(inFile, "uiLabelMap.get(\"", javaFile.getPath());
             }
         }
     }
-
     private void getLabelsFromGroovyFiles() throws IOException {
         for (String rootFolder : this.rootFolders) {
             List<File> groovyFiles = FileUtil.findFiles("groovy", rootFolder + "groovyScripts", null, null);
             for (File file : groovyFiles) {
                 String inFile = FileUtil.readString("UTF-8", file);
-                findUiLabelMapInGroovy(inFile, uiLabelMap, file.getPath());
-                findUiLabelMapInGroovy(inFile, "uiLabelMap.get(\"", file.getPath());
+                findUiLabelMapInPattern(inFile, uiLabelMap, file.getPath());
+                findUiLabelMapInPattern(inFile, "uiLabelMap.get(\"", file.getPath());
+                findUiLabelMapInMessage(inFile, file.getPath());
+            }
+        }
+    }
+    protected void findUiLabelMapInMessage(String inFile, String filePath) {
+        int pos = inFile.indexOf(getMessage);
+        while (pos >= 0) {
+            int endLabel = inFile.indexOf(")", pos);
+            if (endLabel >= 0) {
+                String[] args = inFile.substring(pos + getMessage.length(), endLabel).split(",");
+                for (String labelKey : this.labelSet) {
+                    String searchString = "\"" + labelKey + "\"";
+                    if (searchString.equals(args[1].trim())) {
+                        setLabelReference(labelKey, filePath);
+                    }
+                }
+                pos = endLabel;
+            } else {
+                pos = pos + getMessage.length();
             }
+            pos = inFile.indexOf(getMessage, pos);
         }
     }
-    protected void findUiLabelMapInGroovy(String inFile, String pattern, String filePath) {
+    protected void findUiLabelMapInPattern(String inFile, String pattern, String filePath) {
         int pos = inFile.indexOf(pattern);
         while (pos >= 0) {
             String label = inFile.substring(pos + pattern.length());
@@ -299,6 +302,9 @@ public class LabelReferences {
             for (Element elem : UtilXml.childElementList(formElement, "auto-fields-entity")) {
                 getAutoFieldsEntityTag(elem, fieldNames);
             }
+            for (Element elem : UtilXml.childElementList(formElement, "field")) {
+                getAutoFieldsTag(elem, file.getPath());
+            }
             for (String field : fieldNames) {
                 String labelKey = formFieldTitle.concat(field);
                 if (this.labelSet.contains(labelKey)) {
@@ -341,7 +347,28 @@ public class LabelReferences {
             }
         }
     }
-
+    private void getAutoFieldsTag(Element element, String filePath) {
+        String tooltip = UtilFormatOut.checkNull(element.getAttribute("tooltip"));
+        if (UtilValidate.isNotEmpty(tooltip)) {
+            int pos = tooltip.indexOf(getMessage);
+            while (pos >= 0) {
+                int endLabel = tooltip.indexOf(")", pos);
+                if (endLabel >= 0) {
+                    String[] args = tooltip.substring(pos + getMessage.length(), endLabel).split(",");
+                    for (String labelKey : this.labelSet) {
+                        String xmlSearchString = "\'" + labelKey + "\'";
+                        if (xmlSearchString.equals(args[1].trim())) {
+                            setLabelReference(labelKey, filePath);
+                        }
+                    }
+                    pos = endLabel;
+                } else {
+                    pos = pos + getMessage.length();
+                }
+                pos = tooltip.indexOf(getMessage, pos);
+            }
+        }
+    }
     private void getAutoFieldsServiceTag(Element element, Set<String> fieldNames) throws GenericServiceException {
         String serviceName = UtilFormatOut.checkNull(element.getAttribute("service-name"));
         String defaultFieldType = UtilFormatOut.checkNull(element.getAttribute("default-field-type"));