From 837d2e1cac7e006506cd4cff03862d7fbcd42140 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Fri, 25 Aug 2023 20:42:14 +0000 Subject: [PATCH] 8314483: Optionally override copyright header in generated source Reviewed-by: dholmes, iris --- make/ToolsJdk.gmk | 3 ++ .../tools/cldrconverter/CLDRConverter.java | 9 +++++- .../ResourceBundleGenerator.java | 12 ++++++-- .../EquivMapsGenerator.java | 30 +++++++++++++++---- 4 files changed, 45 insertions(+), 9 deletions(-) diff --git a/make/ToolsJdk.gmk b/make/ToolsJdk.gmk index 7eb2a4efa7e..5147ffff699 100644 --- a/make/ToolsJdk.gmk +++ b/make/ToolsJdk.gmk @@ -137,4 +137,7 @@ PANDOC_HTML_MANPAGE_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpa ########################################################################################## +# Hook to include the corresponding custom post file, if present. +$(eval $(call IncludeCustomExtension, ToolsJdk-post.gmk)) + endif # _TOOLS_GMK diff --git a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java index 17ecb754529..614221b26bb 100644 --- a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java +++ b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java @@ -114,6 +114,7 @@ public class CLDRConverter { private static Set AVAILABLE_TZIDS; static int copyrightYear; + static String jdkHeaderTemplate; private static String zoneNameTempFile; private static String tzDataDir; private static final Map canonicalTZMap = new HashMap<>(); @@ -229,6 +230,10 @@ public class CLDRConverter { tzDataDir = args[++i]; break; + case "-jdk-header-template": + jdkHeaderTemplate = Files.readString(Paths.get(args[++i])); + break; + case "-help": usage(); System.exit(0); @@ -304,7 +309,9 @@ public class CLDRConverter { + "\t-year year copyright year in output%n" + "\t-zntempfile template file for java.time.format.ZoneName.java%n" + "\t-tzdatadir tzdata directory for java.time.format.ZoneName.java%n" - + "\t-utf8 use UTF-8 rather than \\uxxxx (for debug)%n"); + + "\t-utf8 use UTF-8 rather than \\uxxxx (for debug)%n" + + "\t-jdk-header-template %n" + + "\t\t override default GPL header with contents of file%n"); } static void info(String fmt, Object... args) { diff --git a/make/jdk/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java b/make/jdk/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java index 6b2b5b4c0c0..90c70f75cb9 100644 --- a/make/jdk/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java +++ b/make/jdk/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java @@ -174,7 +174,7 @@ class ResourceBundleGenerator implements BundleGenerator { try (PrintWriter out = new PrintWriter(file, encoding)) { // Output copyright headers - out.println(CopyrightHeaders.getOpenJDKCopyright(CLDRConverter.copyrightYear)); + out.println(getOpenJDKCopyright()); out.println(CopyrightHeaders.getUnicodeCopyright()); if (useJava) { @@ -294,7 +294,7 @@ class ResourceBundleGenerator implements BundleGenerator { CLDRConverter.info("Generating file " + file); try (PrintWriter out = new PrintWriter(file, "us-ascii")) { - out.printf(CopyrightHeaders.getOpenJDKCopyright(CLDRConverter.copyrightYear)); + out.printf(getOpenJDKCopyright()); out.printf(""" package sun.util.%s; @@ -448,4 +448,12 @@ class ResourceBundleGenerator implements BundleGenerator { }); return tags; } + + private static String getOpenJDKCopyright() { + if (CLDRConverter.jdkHeaderTemplate != null) { + return String.format(CLDRConverter.jdkHeaderTemplate, CLDRConverter.copyrightYear); + } else { + return CopyrightHeaders.getOpenJDKCopyright(CLDRConverter.copyrightYear); + } + } } diff --git a/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java b/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java index 5af0c268096..78122c9f134 100644 --- a/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java +++ b/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java @@ -53,21 +53,38 @@ import java.util.regex.Pattern; public class EquivMapsGenerator { public static void main(String[] args) throws Exception { - if (args.length != 3) { + int i = 0; + boolean valid = true; + if (args.length != 5 && args.length !=3) { + valid = false; + } else if (args.length == 5) { + if ("-jdk-header-template".equals(args[i])) { + jdkHeaderTemplate = Files.readString(Paths.get(args[++i])); + i++; + } else { + valid = false; + } + } + if (!valid) { System.err.println("Usage: java EquivMapsGenerator" + + " [-jdk-header-template ]" + " language-subtag-registry.txt LocaleEquivalentMaps.java copyrightYear"); System.exit(1); } - copyrightYear = Integer.parseInt(args[2]); - readLSRfile(args[0]); + String lsrFile = args[i++]; + String outputFile = args[i++]; + copyrightYear = Integer.parseInt(args[i++]); + + readLSRfile(lsrFile); // Builds the maps from the IANA data generateEquivalentMap(); // Writes the maps out to LocaleEquivalentMaps.java - generateSourceCode(args[1]); + generateSourceCode(outputFile); } private static String LSRrevisionDate; private static int copyrightYear; + private static String jdkHeaderTemplate; private static Map initialLanguageMap = new TreeMap<>(); private static Map initialRegionVariantMap = @@ -225,6 +242,7 @@ public class EquivMapsGenerator { try (BufferedWriter writer = Files.newBufferedWriter( Paths.get(fileName))) { writer.write(getOpenJDKCopyright()); + writer.write("\n"); writer.write(HEADER_TEXT); writer.write(getMapsText()); writer.write(getLSRText()); @@ -241,7 +259,8 @@ public class EquivMapsGenerator { } private static String getOpenJDKCopyright() { - return String.format(Locale.US, COPYRIGHT, copyrightYear); + return String.format(Locale.US, + (jdkHeaderTemplate != null ? jdkHeaderTemplate : COPYRIGHT), copyrightYear); } private static final String COPYRIGHT = @@ -270,7 +289,6 @@ public class EquivMapsGenerator { * or visit www.oracle.com if you need additional information or have any * questions. */ - """; private static final String HEADER_TEXT =