This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 57e0b2dc0eeb50e47049b7667fc297f52b895283 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Aug 15 16:07:07 2019 +0100 Copy utility classes to back-port translations --- .../tomcat/buildutil/translate/BackportBase.java | 65 +++++++++++++++++++++ .../buildutil/translate/BackportEnglish.java | 51 +++++++++++++++++ .../buildutil/translate/BackportTranslations.java | 66 ++++++++++++++++++++++ 3 files changed, 182 insertions(+) diff --git a/java/org/apache/tomcat/buildutil/translate/BackportBase.java b/java/org/apache/tomcat/buildutil/translate/BackportBase.java new file mode 100644 index 0000000..1a4830f --- /dev/null +++ b/java/org/apache/tomcat/buildutil/translate/BackportBase.java @@ -0,0 +1,65 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.tomcat.buildutil.translate; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +/** + * Base class providing common implementation for back-port utilities. + */ +public abstract class BackportBase { + + protected final Map<String,Properties> sourceTranslations = new HashMap<>(); + protected final Map<String,Properties> targetTranslations = new HashMap<>(); + protected final File targetRoot; + protected final Properties sourceEnglish; + protected final Properties targetEnglish; + protected final File storageDir; + + protected BackportBase(String... args) throws IOException { + if (args.length != 1) { + throw new IllegalArgumentException("Missing back-port target"); + } + targetRoot = new File(args[0]); + + if (!targetRoot.isDirectory()) { + throw new IllegalArgumentException("Back-port target not a directory"); + } + + File sourceRoot = new File("."); + for (String dir : Constants.SEARCH_DIRS) { + File directory = new File(dir); + Utils.processDirectory(sourceRoot, directory, sourceTranslations); + } + + for (String dir : Constants.SEARCH_DIRS) { + File directory = new File(targetRoot, dir); + Utils.processDirectory(targetRoot, directory, targetTranslations); + } + + sourceEnglish = sourceTranslations.get(""); + targetEnglish = targetTranslations.get(""); + + storageDir = new File(targetRoot, Constants.STORAGE_DIR); + } + + protected abstract void execute() throws IOException; +} diff --git a/java/org/apache/tomcat/buildutil/translate/BackportEnglish.java b/java/org/apache/tomcat/buildutil/translate/BackportEnglish.java new file mode 100644 index 0000000..c6f9608 --- /dev/null +++ b/java/org/apache/tomcat/buildutil/translate/BackportEnglish.java @@ -0,0 +1,51 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.tomcat.buildutil.translate; + +import java.io.IOException; + +/** + * Generates a set of English property files to back-port updates to a previous + * version. Where a key exists in the source and target versions the value is + * copied from the source to the target, overwriting the value in the target. + * The expectation is that the changes will be manually reviewed before + * committing them. + */ +public class BackportEnglish extends BackportBase { + + public static void main(String... args) throws IOException { + BackportEnglish backport = new BackportEnglish(args); + backport.execute(); + } + + + protected BackportEnglish(String[] args) throws IOException { + super(args); + } + + + @Override + protected void execute() throws IOException { + for (Object key : sourceEnglish.keySet()) { + if (targetEnglish.containsKey(key)) { + targetEnglish.put(key, sourceEnglish.get(key)); + } + } + + Utils.export("", targetEnglish, storageDir); + } +} diff --git a/java/org/apache/tomcat/buildutil/translate/BackportTranslations.java b/java/org/apache/tomcat/buildutil/translate/BackportTranslations.java new file mode 100644 index 0000000..6c27177 --- /dev/null +++ b/java/org/apache/tomcat/buildutil/translate/BackportTranslations.java @@ -0,0 +1,66 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.tomcat.buildutil.translate; + +import java.io.IOException; +import java.util.Properties; + +/** + * Generates a set of translated property files to back-port updates to a + * previous version. If the source and target use the same value for the English + * key then any translated value for that key is copied from the source to the + * target. + */ +public class BackportTranslations extends BackportBase { + + public static void main(String... args) throws IOException { + BackportTranslations backport = new BackportTranslations(args); + backport.execute(); + } + + protected BackportTranslations(String[] args) throws IOException { + super(args); + } + + + @Override + protected void execute() throws IOException { + for (String langauge : targetTranslations.keySet()) { + // Skip source + if (langauge.length() == 0) { + continue; + } + + Properties sourceTranslated = sourceTranslations.get(langauge); + Properties targetTranslated = targetTranslations.get(langauge); + if (targetTranslated == null) { + targetTranslated = new Properties(); + targetTranslations.put(langauge, targetTranslated); + } + + for (Object key : targetEnglish.keySet()) { + if (sourceTranslated.containsKey(key) && + targetEnglish.get(key).equals(sourceEnglish.get(key))) { + + targetTranslated.put(key, sourceTranslated.get(key)); + } + } + + Utils.export(langauge, targetTranslated, storageDir); + } + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org