Skip to content

Commit f77427b

Browse files
author
mcasters
committed
git-svn-id: svn://source.pentaho.org/svnkettleroot/Kettle/trunk@7045 5fb7f6ec-07c1-534a-b4ca-9155e429e800
1 parent 57fb104 commit f77427b

File tree

6 files changed

+167
-93
lines changed

6 files changed

+167
-93
lines changed

src-ui/org/pentaho/di/ui/i18n/LocaleStore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public LocaleStore(String locale, List<String> messagesPackages, String mainLoca
5454
* @param directories The source directories to reference the packages from
5555
* @throws KettleException
5656
*/
57-
public void read(String[] directories) throws KettleException {
57+
public void read(List<String> directories) throws KettleException {
5858
for (String messagePackage : messagesPackages) {
5959
MessagesStore messagesStore = new MessagesStore(locale, messagePackage);
6060

src-ui/org/pentaho/di/ui/i18n/MessagesSourceCrawler.java

Lines changed: 86 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,31 @@
1212
*/
1313
package org.pentaho.di.ui.i18n;
1414

15-
import java.io.BufferedReader;
16-
import java.io.IOException;
17-
import java.io.InputStreamReader;
18-
import java.util.ArrayList;
19-
import java.util.Collections;
20-
import java.util.Hashtable;
21-
import java.util.List;
22-
import java.util.Locale;
23-
import java.util.Map;
24-
25-
import org.apache.commons.vfs.FileObject;
26-
import org.pentaho.di.core.Const;
27-
import org.pentaho.di.core.exception.KettleXMLException;
28-
import org.pentaho.di.core.fileinput.FileInputList;
29-
import org.pentaho.di.core.logging.LogWriter;
30-
import org.pentaho.di.core.variables.Variables;
31-
import org.pentaho.di.core.vfs.KettleVFS;
32-
import org.pentaho.di.core.xml.XMLHandler;
33-
import org.pentaho.di.i18n.BaseMessages;
34-
import org.pentaho.di.i18n.LanguageChoice;
35-
import org.pentaho.di.ui.spoon.Spoon;
36-
import org.pentaho.di.ui.spoon.job.JobGraph;
37-
import org.w3c.dom.Document;
38-
import org.w3c.dom.Node;
39-
import org.w3c.dom.NodeList;
15+
import java.io.BufferedReader;
16+
import java.io.IOException;
17+
import java.io.InputStreamReader;
18+
import java.util.ArrayList;
19+
import java.util.Collections;
20+
import java.util.Hashtable;
21+
import java.util.List;
22+
import java.util.Locale;
23+
import java.util.Map;
24+
25+
import org.apache.commons.vfs.FileObject;
26+
import org.pentaho.di.core.Const;
27+
import org.pentaho.di.core.exception.KettleXMLException;
28+
import org.pentaho.di.core.fileinput.FileInputList;
29+
import org.pentaho.di.core.logging.LogWriter;
30+
import org.pentaho.di.core.variables.Variables;
31+
import org.pentaho.di.core.vfs.KettleVFS;
32+
import org.pentaho.di.core.xml.XMLHandler;
33+
import org.pentaho.di.i18n.BaseMessages;
34+
import org.pentaho.di.i18n.LanguageChoice;
35+
import org.pentaho.di.ui.spoon.Spoon;
36+
import org.pentaho.di.ui.spoon.job.JobGraph;
37+
import org.w3c.dom.Document;
38+
import org.w3c.dom.Node;
39+
import org.w3c.dom.NodeList;
4040

4141
/**
4242
* This class takes care of crawling through the source code
@@ -50,7 +50,7 @@ public class MessagesSourceCrawler {
5050
/**
5151
* The source directories to crawl through
5252
*/
53-
private String[] sourceDirectories;
53+
private List<String> sourceDirectories;
5454

5555
/**
5656
* The directories to search for XUL files in
@@ -66,31 +66,35 @@ public class MessagesSourceCrawler {
6666
/**
6767
* The file names to avoid (base names)
6868
*/
69-
private String[] filesToAvoid;
69+
private List<String> filesToAvoid;
70+
71+
private String singleMessagesFile;
7072

7173

7274
/**
73-
* @param sourceDirectories The source directories to crawl through
75+
* @param sourceDirectories The source directories to crawl through
76+
* @param singleMessagesFile the messages file if there is only one, otherwise: null
7477
*/
75-
public MessagesSourceCrawler(String[] sourceDirectories) {
78+
public MessagesSourceCrawler(List<String> sourceDirectories, String singleMessagesFile) {
7679
super();
77-
this.sourceDirectories = sourceDirectories;
80+
this.sourceDirectories = sourceDirectories;
81+
this.singleMessagesFile = singleMessagesFile;
7882
this.occurrences = new ArrayList<KeyOccurrence>();
79-
this.filesToAvoid = new String[] {};
83+
this.filesToAvoid = new ArrayList<String>();
8084
this.xulDirectories = new String[] {};
8185
}
8286

8387
/**
8488
* @return The source directories to crawl through
8589
*/
86-
public String[] getSourceDirectories() {
90+
public List<String> getSourceDirectories() {
8791
return sourceDirectories;
8892
}
8993

9094
/**
9195
* @param sourceDirectories The source directories to crawl through
9296
*/
93-
public void setSourceDirectories(String[] sourceDirectories) {
97+
public void setSourceDirectories(List<String> sourceDirectories) {
9498
this.sourceDirectories = sourceDirectories;
9599
}
96100

@@ -110,16 +114,16 @@ public void setOccurrences(List<KeyOccurrence> occurrences) {
110114
}
111115

112116
/**
113-
* @return the filesToAvoid
117+
* @return the files to avoid
114118
*/
115-
public String[] getFilesToAvoid() {
119+
public List<String> getFilesToAvoid() {
116120
return filesToAvoid;
117121
}
118122

119123
/**
120-
* @param filesToAvoid the filesToAvoid to set
124+
* @param filesToAvoid the files to avoid
121125
*/
122-
public void setFilesToAvoid(String[] filesToAvoid) {
126+
public void setFilesToAvoid(List<String> filesToAvoid) {
123127
this.filesToAvoid = filesToAvoid;
124128
}
125129

@@ -140,17 +144,19 @@ public void addKeyOccurrence(KeyOccurrence occ) {
140144
}
141145
}
142146

143-
public void crawl() throws IOException {
144-
String[] masks = new String[sourceDirectories.length];
145-
String[] req = new String[sourceDirectories.length];
146-
boolean[] subdirs = new boolean[sourceDirectories.length];
147+
public void crawl() throws IOException {
148+
String[] dirs = new String[sourceDirectories.size()];
149+
String[] masks = new String[sourceDirectories.size()];
150+
String[] req = new String[sourceDirectories.size()];
151+
boolean[] subdirs = new boolean[sourceDirectories.size()];
147152

148-
for (int i=0;i<masks.length;i++) {
153+
for (int i=0;i<masks.length;i++) {
154+
dirs[i] = sourceDirectories.get(i);
149155
masks[i] = ".*\\.java$";
150156
req[i] = "N";
151157
subdirs[i] = true;
152158
}
153-
FileInputList fileInputList = FileInputList.createFileList(new Variables(), sourceDirectories, masks, req, subdirs);
159+
FileInputList fileInputList = FileInputList.createFileList(new Variables(), dirs, masks, req, subdirs);
154160

155161
/**
156162
* We don't want the Messages.java files, there is nothing in there for us.
@@ -251,7 +257,7 @@ public void lookForOccurrencesInFile(FileObject fileObject) throws IOException {
251257
//
252258
// "import org.pentaho.di.trans.steps.sortedmerge.Messages;"
253259
//
254-
if (line.matches("^[ \t]*import [a-z\\._]*\\.Messages;[ \t]*$")) {
260+
if (line.matches("^[ \t]*import [a-z\\._0-9]*\\.Messages;[ \t]*$")) {
255261
int beginIndex = line.indexOf("org.pentaho.");
256262
int endIndex = line.indexOf(".Messages;");
257263
messagesPackage = line.substring(beginIndex, endIndex); // if there is any specified, we take this one.
@@ -382,15 +388,28 @@ public List<KeyOccurrence> getOccurrencesForPackage(String messagesPackage) {
382388
return list;
383389
}
384390

385-
public static void main(String[] args) throws IOException {
386-
MessagesSourceCrawler crawler = new MessagesSourceCrawler(new String[] { "src", "src-ui", } );
387-
crawler.setFilesToAvoid(
388-
new String[] {
389-
"MessagesSourceCrawler.java", "KeyOccurence.java", "TransLator.java",
390-
"MenuHelper.java", "Messages.java", "XulMessages.java",
391-
"AnnotatedStepsConfigManager.java", "AnnotatedJobConfigManager.java",
392-
"JobEntryValidatorUtils.java", "Const.java", "XulHelper.java",
393-
});
391+
public static void main(String[] args) throws IOException {
392+
List<String> directories = new ArrayList<String>();
393+
directories.add("src-core");
394+
directories.add("src");
395+
directories.add("src-ui");
396+
397+
List<String> filesToAvoid = new ArrayList<String>();
398+
filesToAvoid.add("MessagesSourceCrawler.java");
399+
filesToAvoid.add("KeyOccurence.java");
400+
filesToAvoid.add("TransLator.java");
401+
filesToAvoid.add("MenuHelper.java");
402+
filesToAvoid.add("Messages.java");
403+
filesToAvoid.add("XulMessages.java");
404+
filesToAvoid.add("AnnotatedStepsConfigManager.java");
405+
filesToAvoid.add("AnnotatedJobConfigManager.java");
406+
filesToAvoid.add("JobEntryValidatorUtils.java");
407+
filesToAvoid.add("Const.java");
408+
filesToAvoid.add("XulHelper.java");
409+
410+
411+
MessagesSourceCrawler crawler = new MessagesSourceCrawler( directories, null );
412+
crawler.setFilesToAvoid(filesToAvoid);
394413
crawler.crawl();
395414
int mis=0;
396415
LanguageChoice.getInstance().setDefaultLocale(Locale.US);
@@ -434,6 +453,20 @@ public KeyOccurrence getKeyOccurrence(String key, String selectedMessagesPackage
434453
}
435454
}
436455
return null;
456+
}
457+
458+
/**
459+
* @return the singleMessagesFile
460+
*/
461+
public String getSingleMessagesFile() {
462+
return singleMessagesFile;
463+
}
464+
465+
/**
466+
* @param singleMessagesFile the singleMessagesFile to set
467+
*/
468+
public void setSingleMessagesFile(String singleMessagesFile) {
469+
this.singleMessagesFile = singleMessagesFile;
437470
}
438471

439472
}

src-ui/org/pentaho/di/ui/i18n/MessagesStore.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.io.FileOutputStream;
1919
import java.io.IOException;
2020
import java.util.Hashtable;
21+
import java.util.List;
2122
import java.util.Map;
2223
import java.util.Properties;
2324

@@ -54,7 +55,7 @@ public MessagesStore(String locale, String messagesPackage) {
5455
}
5556

5657

57-
public void read(String[] directories) throws KettleException {
58+
public void read(List<String> directories) throws KettleException {
5859
try
5960
{
6061
String filename = getLoadFilename(directories);
@@ -107,7 +108,7 @@ public void write(String filename) throws KettleException {
107108
* @param directories the source directories to try and map the messages files against.
108109
* @return the filename that was found.
109110
*/
110-
public String getLoadFilename(String[] directories) throws FileNotFoundException {
111+
public String getLoadFilename(List<String> directories) throws FileNotFoundException {
111112
String localeUpperLower = locale.substring(0, 3).toLowerCase()+locale.substring(3).toUpperCase();
112113

113114
String filename="messages_"+localeUpperLower+".properties";
@@ -120,7 +121,7 @@ public String getLoadFilename(String[] directories) throws FileNotFoundException
120121
throw new FileNotFoundException("package '"+(path+Const.FILE_SEPARATOR+"messages"+Const.FILE_SEPARATOR+filename)+"' could not be found");
121122
}
122123

123-
public String getSourceDirectory(String[] directories) {
124+
public String getSourceDirectory(List<String> directories) {
124125
String localeUpperLower = locale.substring(0, 3).toLowerCase()+locale.substring(3).toUpperCase();
125126

126127
String filename="messages_"+localeUpperLower+".properties";

src-ui/org/pentaho/di/ui/i18n/TranslationsStore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public TranslationsStore(List<String> localeList, List<String> messagesPackages,
5252
* @param directories The reference source directories to search packages in
5353
* @throws KettleException
5454
*/
55-
public void read(String[] directories) throws KettleException {
55+
public void read(List<String> directories) throws KettleException {
5656

5757
// The first locale (en_US) takes the lead: we need to find all of those
5858
// The others are optional.

0 commit comments

Comments
 (0)