initial commit for java 21

This commit is contained in:
ChrisHegarty 2023-11-03 14:48:30 +00:00
parent 8fa0de2743
commit 1274db1ae6
17 changed files with 55 additions and 33 deletions

View File

@ -73,7 +73,7 @@ ext {
} }
// Minimum Java version required to compile and run Lucene. // Minimum Java version required to compile and run Lucene.
minJavaVersion = JavaVersion.VERSION_17 minJavaVersion = JavaVersion.VERSION_21
// snapshot build marker used in scripts. // snapshot build marker used in scripts.
snapshotBuild = version.contains("SNAPSHOT") snapshotBuild = version.contains("SNAPSHOT")
@ -101,6 +101,12 @@ dependencies {
groovy "org.codehaus.groovy:groovy-all:3.0.12" groovy "org.codehaus.groovy:groovy-all:3.0.12"
} }
repositories {
maven {
url "https://repo.eclipse.org/content/repositories/eclipse-snapshots/"
}
}
apply from: file('buildSrc/scriptDepVersions.gradle') apply from: file('buildSrc/scriptDepVersions.gradle')
// Include smaller chunks configuring dedicated build areas. // Include smaller chunks configuring dedicated build areas.

View File

@ -24,7 +24,7 @@ ext {
"apache-rat": "0.14", "apache-rat": "0.14",
"asm": "9.6", "asm": "9.6",
"commons-codec": "1.13", "commons-codec": "1.13",
"ecj": "3.30.0", "ecj": "3.36.0-SNAPSHOT",
"flexmark": "0.61.24", "flexmark": "0.61.24",
"javacc": "7.0.12", "javacc": "7.0.12",
"jflex": "1.8.2", "jflex": "1.8.2",

View File

@ -20,7 +20,7 @@ import java.util.Locale;
/** A stemmer for Brazilian Portuguese words. */ /** A stemmer for Brazilian Portuguese words. */
class BrazilianStemmer { class BrazilianStemmer {
private static final Locale locale = new Locale("pt", "BR"); private static final Locale locale = Locale.of("pt", "BR");
/** Changed term */ /** Changed term */
private String TERM; private String TERM;

View File

@ -33,7 +33,7 @@ class GermanStemmer {
/** Amount of characters that are removed with <code>substitute()</code> while stemming. */ /** Amount of characters that are removed with <code>substitute()</code> while stemming. */
private int substCount = 0; private int substCount = 0;
private static final Locale locale = new Locale("de", "DE"); private static final Locale locale = Locale.of("de", "DE");
/** /**
* Stemms the given term to an unique <code>discriminator</code>. * Stemms the given term to an unique <code>discriminator</code>.

View File

@ -38,7 +38,7 @@ public class ThaiTokenizer extends SegmentingTokenizerBase {
*/ */
public static final boolean DBBI_AVAILABLE; public static final boolean DBBI_AVAILABLE;
private static final BreakIterator proto = BreakIterator.getWordInstance(new Locale("th")); private static final BreakIterator proto = BreakIterator.getWordInstance(Locale.of("th"));
static { static {
// check that we have a working dictionary-based break iterator for thai // check that we have a working dictionary-based break iterator for thai

View File

@ -26,7 +26,7 @@ public class TestCollationKeyAnalyzer extends CollationTestBase {
// Neither Java 1.4.2 nor 1.5.0 has Farsi Locale collation available in // Neither Java 1.4.2 nor 1.5.0 has Farsi Locale collation available in
// RuleBasedCollator. However, the Arabic Locale seems to order the Farsi // RuleBasedCollator. However, the Arabic Locale seems to order the Farsi
// characters properly. // characters properly.
private Collator collator = Collator.getInstance(new Locale("ar")); private Collator collator = Collator.getInstance(Locale.of("ar"));
private Analyzer analyzer; private Analyzer analyzer;
@Override @Override

View File

@ -21,6 +21,7 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.Writer; import java.io.Writer;
import java.net.URI;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -111,7 +112,7 @@ public class GenerateJflexTLDMacros {
public GenerateJflexTLDMacros(String tldFileURL, String jflexFile, String tldListFile) public GenerateJflexTLDMacros(String tldFileURL, String jflexFile, String tldListFile)
throws Exception { throws Exception {
this.tldFileURL = new URL(tldFileURL); this.tldFileURL = URI.create(tldFileURL).toURL();
this.jflexMacroFile = Paths.get(jflexFile); this.jflexMacroFile = Paths.get(jflexFile);
this.tldListFile = Paths.get(tldListFile); this.tldListFile = Paths.get(tldListFile);
} }

View File

@ -24,7 +24,7 @@ import org.apache.lucene.util.BytesRef;
public class TestICUCollationKeyAnalyzer extends CollationTestBase { public class TestICUCollationKeyAnalyzer extends CollationTestBase {
private Collator collator = Collator.getInstance(new Locale("fa")); private Collator collator = Collator.getInstance(Locale.of("fa"));
private Analyzer analyzer; private Analyzer analyzer;
@Override @Override

View File

@ -27,6 +27,7 @@ import java.io.InputStreamReader;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.Writer; import java.io.Writer;
import java.net.URI;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -155,19 +156,19 @@ public class GenerateUTR30DataFiles {
} }
private static void getNFKCDataFilesFromIcuProject(String releaseTag) throws IOException { private static void getNFKCDataFilesFromIcuProject(String releaseTag) throws IOException {
URL icuTagsURL = new URL(ICU_GIT_TAG_URL + "/"); URI icuTagsURL = URI.create(ICU_GIT_TAG_URL + "/");
URL icuReleaseTagURL = new URL(icuTagsURL, releaseTag + "/"); URI icuReleaseTagURL = icuTagsURL.resolve(releaseTag + "/");
URL norm2url = new URL(icuReleaseTagURL, ICU_DATA_NORM2_PATH + "/"); URI norm2url = icuReleaseTagURL.resolve(ICU_DATA_NORM2_PATH + "/");
System.err.print("Downloading " + NFKC_TXT + " ... "); System.err.print("Downloading " + NFKC_TXT + " ... ");
download(new URL(norm2url, NFKC_TXT), NFKC_TXT); download(norm2url.resolve(NFKC_TXT), NFKC_TXT);
System.err.println("done."); System.err.println("done.");
System.err.print("Downloading " + NFKC_CF_TXT + " ... "); System.err.print("Downloading " + NFKC_CF_TXT + " ... ");
download(new URL(norm2url, NFKC_CF_TXT), NFKC_CF_TXT); download(norm2url.resolve(NFKC_CF_TXT), NFKC_CF_TXT);
System.err.println("done."); System.err.println("done.");
System.err.print("Downloading " + NFKC_CF_TXT + " and making diacritic rules one-way ... "); System.err.print("Downloading " + NFKC_CF_TXT + " and making diacritic rules one-way ... ");
URLConnection connection = openConnection(new URL(norm2url, NFC_TXT)); URLConnection connection = openConnection(norm2url.resolve(NFC_TXT).toURL());
try (BufferedReader reader = try (BufferedReader reader =
new BufferedReader( new BufferedReader(
new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)); new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
@ -210,8 +211,8 @@ public class GenerateUTR30DataFiles {
System.err.println("done."); System.err.println("done.");
} }
private static void download(URL url, String outputFile) throws IOException { private static void download(URI uri, String outputFile) throws IOException {
final URLConnection connection = openConnection(url); final URLConnection connection = openConnection(uri.toURL());
try (InputStream inputStream = connection.getInputStream(); try (InputStream inputStream = connection.getInputStream();
OutputStream outputStream = Files.newOutputStream(Path.of(outputFile))) { OutputStream outputStream = Files.newOutputStream(Path.of(outputFile))) {
inputStream.transferTo(outputStream); inputStream.transferTo(outputStream);

View File

@ -46,6 +46,7 @@ import org.apache.lucene.store.ByteBuffersDirectory;
import org.apache.lucene.store.Directory; import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory; import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.IOUtils; import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.SuppressForbidden;
/** /**
* Data maintained by a performance test run. * Data maintained by a performance test run.
@ -204,7 +205,7 @@ public class PerfRunData implements Closeable {
resetInputs(); resetInputs();
// release unused stuff // release unused stuff
System.runFinalization(); runFinalization();
System.gc(); System.gc();
// Re-init clock // Re-init clock
@ -482,4 +483,10 @@ public class PerfRunData implements Closeable {
public Map<String, AnalyzerFactory> getAnalyzerFactories() { public Map<String, AnalyzerFactory> getAnalyzerFactories() {
return analyzerFactories; return analyzerFactories;
} }
@SuppressWarnings("removal")
@SuppressForbidden(reason = "requires to run finalization")
private static void runFinalization() {
System.runFinalization();
}
} }

View File

@ -39,7 +39,7 @@ public class NewLocaleTask extends PerfTask {
private String variant; private String variant;
/** /**
* Create a new {@link java.util.Locale} and set it it in the getRunData() for use by all future * Create a new {@link java.util.Locale} and set it in the getRunData() for use by all future
* tasks. * tasks.
*/ */
public NewLocaleTask(PerfRunData runData) { public NewLocaleTask(PerfRunData runData) {
@ -52,7 +52,7 @@ public class NewLocaleTask extends PerfTask {
String lang = language; String lang = language;
if (lang.equalsIgnoreCase("ROOT")) lang = ""; // empty language is the root locale in the JDK if (lang.equalsIgnoreCase("ROOT")) lang = ""; // empty language is the root locale in the JDK
return new Locale(lang, country, variant); return Locale.of(lang, country, variant);
} }
@Override @Override

View File

@ -793,19 +793,19 @@ public class TestPerfTasksLogic extends BenchmarkTestCase {
// ROOT locale // ROOT locale
benchmark = execBenchmark(getLocaleConfig("ROOT")); benchmark = execBenchmark(getLocaleConfig("ROOT"));
assertEquals(new Locale(""), benchmark.getRunData().getLocale()); assertEquals(Locale.of(""), benchmark.getRunData().getLocale());
// specify just a language // specify just a language
benchmark = execBenchmark(getLocaleConfig("de")); benchmark = execBenchmark(getLocaleConfig("de"));
assertEquals(new Locale("de"), benchmark.getRunData().getLocale()); assertEquals(Locale.of("de"), benchmark.getRunData().getLocale());
// specify language + country // specify language + country
benchmark = execBenchmark(getLocaleConfig("en,US")); benchmark = execBenchmark(getLocaleConfig("en,US"));
assertEquals(new Locale("en", "US"), benchmark.getRunData().getLocale()); assertEquals(Locale.of("en", "US"), benchmark.getRunData().getLocale());
// specify language + country + variant // specify language + country + variant
benchmark = execBenchmark(getLocaleConfig("no,NO,NY")); benchmark = execBenchmark(getLocaleConfig("no,NO,NY"));
assertEquals(new Locale("no", "NO", "NY"), benchmark.getRunData().getLocale()); assertEquals(Locale.of("no", "NO", "NY"), benchmark.getRunData().getLocale());
} }
private String[] getLocaleConfig(String localeParam) { private String[] getLocaleConfig(String localeParam) {
@ -832,22 +832,22 @@ public class TestPerfTasksLogic extends BenchmarkTestCase {
public void testCollator() throws Exception { public void testCollator() throws Exception {
// ROOT locale // ROOT locale
Benchmark benchmark = execBenchmark(getCollatorConfig("ROOT", "impl:jdk")); Benchmark benchmark = execBenchmark(getCollatorConfig("ROOT", "impl:jdk"));
CollationKeyAnalyzer expected = new CollationKeyAnalyzer(Collator.getInstance(new Locale(""))); CollationKeyAnalyzer expected = new CollationKeyAnalyzer(Collator.getInstance(Locale.of("")));
assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar"); assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar");
// specify just a language // specify just a language
benchmark = execBenchmark(getCollatorConfig("de", "impl:jdk")); benchmark = execBenchmark(getCollatorConfig("de", "impl:jdk"));
expected = new CollationKeyAnalyzer(Collator.getInstance(new Locale("de"))); expected = new CollationKeyAnalyzer(Collator.getInstance(Locale.of("de")));
assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar"); assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar");
// specify language + country // specify language + country
benchmark = execBenchmark(getCollatorConfig("en,US", "impl:jdk")); benchmark = execBenchmark(getCollatorConfig("en,US", "impl:jdk"));
expected = new CollationKeyAnalyzer(Collator.getInstance(new Locale("en", "US"))); expected = new CollationKeyAnalyzer(Collator.getInstance(Locale.of("en", "US")));
assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar"); assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar");
// specify language + country + variant // specify language + country + variant
benchmark = execBenchmark(getCollatorConfig("no,NO,NY", "impl:jdk")); benchmark = execBenchmark(getCollatorConfig("no,NO,NY", "impl:jdk"));
expected = new CollationKeyAnalyzer(Collator.getInstance(new Locale("no", "NO", "NY"))); expected = new CollationKeyAnalyzer(Collator.getInstance(Locale.of("no", "NO", "NY")));
assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar"); assertEqualCollation(expected, benchmark.getRunData().getAnalyzer(), "foobar");
} }

View File

@ -96,7 +96,7 @@ public class TestHtmlParser extends LuceneTestCase {
public void testTurkish() throws Exception { public void testTurkish() throws Exception {
final Locale saved = Locale.getDefault(); final Locale saved = Locale.getDefault();
try { try {
Locale.setDefault(new Locale("tr", "TR")); Locale.setDefault(Locale.of("tr", "TR"));
String text = String text =
"<html><HEAD><TITLE>ııı</TITLE></head><body>" "<html><HEAD><TITLE>ııı</TITLE></head><body>"
+ "<IMG SRC=\"../images/head.jpg\" WIDTH=570 HEIGHT=47 BORDER=0 ALT=\"ş\">" + "<IMG SRC=\"../images/head.jpg\" WIDTH=570 HEIGHT=47 BORDER=0 ALT=\"ş\">"

View File

@ -119,7 +119,7 @@ public class TestWeakIdentityMap extends LuceneTestCase {
int size = map.size(); int size = map.size();
for (int i = 0; size > 0 && i < 10; i++) for (int i = 0; size > 0 && i < 10; i++)
try { try {
System.runFinalization(); runFinalization();
System.gc(); System.gc();
int newSize = map.size(); int newSize = map.size();
assertTrue("previousSize(" + size + ")>=newSize(" + newSize + ")", size >= newSize); assertTrue("previousSize(" + size + ")>=newSize(" + newSize + ")", size >= newSize);
@ -232,7 +232,7 @@ public class TestWeakIdentityMap extends LuceneTestCase {
int size = map.size(); int size = map.size();
for (int i = 0; size > 0 && i < 10; i++) for (int i = 0; size > 0 && i < 10; i++)
try { try {
System.runFinalization(); runFinalization();
System.gc(); System.gc();
int newSize = map.size(); int newSize = map.size();
assertTrue("previousSize(" + size + ")>=newSize(" + newSize + ")", size >= newSize); assertTrue("previousSize(" + size + ")>=newSize(" + newSize + ")", size >= newSize);
@ -252,4 +252,10 @@ public class TestWeakIdentityMap extends LuceneTestCase {
InterruptedException ie) { InterruptedException ie) {
} }
} }
@SuppressWarnings("removal")
@SuppressForbidden(reason = "requires to run finalization")
private static void runFinalization() {
System.runFinalization();
}
} }

View File

@ -421,7 +421,7 @@ public final class QueryParserPaneProvider implements QueryParserTabOperator {
.fuzzyMinSim(fuzzyMinSimFloat) .fuzzyMinSim(fuzzyMinSimFloat)
.fuzzyPrefixLength(fuzzyPrefLenInt) .fuzzyPrefixLength(fuzzyPrefLenInt)
.dateResolution(DateTools.Resolution.valueOf((String) dateResCB.getSelectedItem())) .dateResolution(DateTools.Resolution.valueOf((String) dateResCB.getSelectedItem()))
.locale(new Locale(locationTF.getText())) .locale(Locale.of(locationTF.getText()))
.timeZone(TimeZone.getTimeZone(timezoneTF.getText())) .timeZone(TimeZone.getTimeZone(timezoneTF.getText()))
.typeMap(typeMap) .typeMap(typeMap)
.build(); .build();

View File

@ -23,6 +23,7 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.io.IOException; import java.io.IOException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
import javax.swing.JLabel; import javax.swing.JLabel;
@ -37,7 +38,7 @@ public final class URLLabel extends JLabel {
super(text); super(text);
try { try {
this.link = new URL(text); this.link = (URI.create(text)).toURL();
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
throw new LukeException(e.getMessage(), e); throw new LukeException(e.getMessage(), e);
} }

View File

@ -68,7 +68,7 @@ public class TestNLS extends LuceneTestCase {
} }
public void testNLSLoading_xx_XX() { public void testNLSLoading_xx_XX() {
Locale locale = new Locale("xx", "XX", ""); Locale locale = Locale.of("xx", "XX", "");
String message = String message =
NLS.getLocalizedMessage( NLS.getLocalizedMessage(
MessagesTestBundle.Q0004E_INVALID_SYNTAX_ESCAPE_UNICODE_TRUNCATION, locale); MessagesTestBundle.Q0004E_INVALID_SYNTAX_ESCAPE_UNICODE_TRUNCATION, locale);