diff --git a/0001-SOLR-11477-Disallow-resolving-of-external-entities-i.patch b/0001-SOLR-11477-Disallow-resolving-of-external-entities-i.patch new file mode 100644 index 0000000000000000000000000000000000000000..6a466a29e0b7a56ec5dbe16f76579d5f13ac6488 --- /dev/null +++ b/0001-SOLR-11477-Disallow-resolving-of-external-entities-i.patch @@ -0,0 +1,119 @@ +From af208b7b3d55c6af5688132e206d73465e61104c Mon Sep 17 00:00:00 2001 +From: Christine Poerschke +Date: Fri, 13 Oct 2017 12:46:58 +0100 +Subject: [PATCH] SOLR-11477: Disallow resolving of external entities in Lucene + +--- + .../apache/lucene/queryparser/xml/CoreParser.java | 65 +++++++++++++++++++--- + 1 file changed, 56 insertions(+), 9 deletions(-) + +diff --git a/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java b/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java +index 81c6b36..4e70aef 100644 +--- a/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java ++++ b/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java +@@ -6,10 +6,18 @@ import org.apache.lucene.queryparser.xml.builders.*; + import org.apache.lucene.search.Query; + import org.w3c.dom.Document; + import org.w3c.dom.Element; ++import org.xml.sax.EntityResolver; ++import org.xml.sax.ErrorHandler; ++import org.xml.sax.InputSource; ++import org.xml.sax.SAXException; + ++ ++import javax.xml.XMLConstants; + import javax.xml.parsers.DocumentBuilder; + import javax.xml.parsers.DocumentBuilderFactory; ++import javax.xml.parsers.ParserConfigurationException; + import java.io.InputStream; ++import java.util.Locale; + + /* + * Licensed to the Apache Software Foundation (ASF) under one or more +@@ -117,6 +125,10 @@ public class CoreParser implements QueryBuilder { + queryFactory.addBuilder("SpanNot", snot); + } + ++ /** ++ * Parses the given stream as XML file and returns a {@link Query}. ++ * By default this disallows external entities for security reasons. ++ */ + public Query parse(InputStream xmlStream) throws ParserException { + return getQuery(parseXML(xmlStream).getDocumentElement()); + } +@@ -129,23 +141,48 @@ public class CoreParser implements QueryBuilder { + filterFactory.addBuilder(nodeName, builder); + } + +- private static Document parseXML(InputStream pXmlFile) throws ParserException { +- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); +- DocumentBuilder db = null; ++ /** ++ * Returns a SAX {@link EntityResolver} to be used by {@link DocumentBuilder}. ++ * By default this returns {@link #DISALLOW_EXTERNAL_ENTITY_RESOLVER}, which disallows the ++ * expansion of external entities (for security reasons). To restore legacy behavior, ++ * override this method to return {@code null}. ++ */ ++ protected EntityResolver getEntityResolver() { ++ return DISALLOW_EXTERNAL_ENTITY_RESOLVER; ++ } ++ ++ /** ++ * Subclass and override to return a SAX {@link ErrorHandler} to be used by {@link DocumentBuilder}. ++ * By default this returns {@code null} so no error handler is used. ++ * This method can be used to redirect XML parse errors/warnings to a custom logger. ++ */ ++ protected ErrorHandler getErrorHandler() { ++ return null; ++ } ++ ++ private Document parseXML(InputStream pXmlFile) throws ParserException { ++ final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); ++ dbf.setValidating(false); + try { +- db = dbf.newDocumentBuilder(); ++ dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); ++ } catch (ParserConfigurationException e) { ++ // ignore since all implementations are required to support the ++ // {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature + } +- catch (Exception se) { +- throw new ParserException("XML Parser configuration error", se); ++ final DocumentBuilder db; ++ try { ++ db = dbf.newDocumentBuilder(); ++ } catch (Exception se) { ++ throw new ParserException("XML Parser configuration error.", se); + } +- org.w3c.dom.Document doc = null; + try { +- doc = db.parse(pXmlFile); ++ db.setEntityResolver(getEntityResolver()); ++ db.setErrorHandler(getErrorHandler()); ++ return db.parse(pXmlFile); + } + catch (Exception se) { + throw new ParserException("Error parsing XML stream:" + se, se); + } +- return doc; + } + + +@@ -153,4 +190,14 @@ public class CoreParser implements QueryBuilder { + public Query getQuery(Element e) throws ParserException { + return queryFactory.getQuery(e); + } ++ ++ public static final EntityResolver DISALLOW_EXTERNAL_ENTITY_RESOLVER = new EntityResolver() { ++ @Override ++ public InputSource resolveEntity(String publicId, String systemId) throws SAXException { ++ throw new SAXException(String.format(Locale.ENGLISH, ++ "External Entity resolving unsupported: publicId=\"%s\" systemId=\"%s\"", ++ publicId, systemId)); ++ } ++ }; ++ + } +-- +2.13.6 + diff --git a/0001-dependency-generation.patch b/0001-dependency-generation.patch new file mode 100644 index 0000000000000000000000000000000000000000..9613a2621855e68d1287bf0e600d4960058f723d --- /dev/null +++ b/0001-dependency-generation.patch @@ -0,0 +1,74 @@ +From 8d6fc5deeea8e870e3fdcb798a01940e48a0cbe3 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Fri, 2 May 2014 11:07:23 +0200 +Subject: [PATCH] dependency generation + +Signed-off-by: rpm-build +--- + build.xml | 2 +- + common-build.xml | 7 +++---- + .../org/apache/lucene/dependencies/GetMavenDependenciesTask.java | 2 ++ + 3 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/build.xml b/build.xml +index 3237141..28fffe3 100644 +--- a/build.xml ++++ b/build.xml +@@ -497,7 +497,7 @@ + + + +- ++ + + + +diff --git a/common-build.xml b/common-build.xml +index 7068fe6..b6d4b9f 100644 +--- a/common-build.xml ++++ b/common-build.xml +@@ -1555,10 +1555,9 @@ ${ant.project.name}.test.dependencies=${test.classpath.list} + + + +- +- ++ + +@@ -1578,7 +1577,7 @@ ${ant.project.name}.test.dependencies=${test.classpath.list} + + + +- ++ + + + +diff --git a/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java b/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java +index 2069c7d..d891bc5 100644 +--- a/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java ++++ b/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java +@@ -481,6 +481,7 @@ public class GetMavenDependenciesTask extends Task { + private Collection getTransitiveDependenciesFromIvyCache + (String groupId, String artifactId, String version) { + SortedSet transitiveDependencies = new TreeSet<>(); ++ /* + // E.g. ~/.ivy2/cache/xerces/xercesImpl/ivy-2.9.1.xml + File ivyXmlFile = new File(new File(new File(ivyCacheDir, groupId), artifactId), "ivy-" + version + ".xml"); + if ( ! ivyXmlFile.exists()) { +@@ -502,6 +503,7 @@ public class GetMavenDependenciesTask extends Task { + + groupId + ':' + artifactId + ':' + version + " from " + + ivyXmlFile.getAbsolutePath(), e); + } ++ */ + return transitiveDependencies; + } + +-- +1.9.0 + diff --git a/0001-disable-ivy-settings.patch b/0001-disable-ivy-settings.patch new file mode 100644 index 0000000000000000000000000000000000000000..637b85ae4494a98f62300c1295b80e1e1d5c6fff --- /dev/null +++ b/0001-disable-ivy-settings.patch @@ -0,0 +1,25 @@ +From 161ffbc7a22ed1941bf897a126b80ca6a7fbf3ca Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Thu, 16 Jan 2014 16:27:10 +0100 +Subject: [PATCH] disable ivy settings + +Signed-off-by: Michael Simacek +--- + common-build.xml | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common-build.xml b/common-build.xml +index f4720a8..fa7aee5 100644 +--- a/common-build.xml ++++ b/common-build.xml +@@ -350,7 +350,6 @@ + you have an idea, fix it. + unless="ivy.settings.uptodate" --> + +- + + + +-- +1.8.4.2 + diff --git a/RandomInts-oe.patch b/RandomInts-oe.patch new file mode 100644 index 0000000000000000000000000000000000000000..2396811f52b085900a7971e3d89b37bd75a01358 --- /dev/null +++ b/RandomInts-oe.patch @@ -0,0 +1,382 @@ +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestCompressionMode.java lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestCompressionMode.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestCompressionMode.java 2014-02-19 13:42:17.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestCompressionMode.java 2020-06-09 01:50:25.176680050 +0000 +@@ -26,7 +26,7 @@ + import org.apache.lucene.util.LuceneTestCase; + import org.apache.lucene.util.TestUtil; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + public abstract class AbstractTestCompressionMode extends LuceneTestCase { + +@@ -45,7 +45,7 @@ + static byte[] randomArray(int length, int max) { + final byte[] arr = new byte[length]; + for (int i = 0; i < arr.length; ++i) { +- arr[i] = (byte) RandomInts.randomIntBetween(random(), 0, max); ++ arr[i] = (byte) RandomNumbers.randomIntBetween(random(), 0, max); + } + return arr; + } +@@ -130,7 +130,7 @@ + } + + public void testIncompressible() throws IOException { +- final byte[] decompressed = new byte[RandomInts.randomIntBetween(random(), 20, 256)]; ++ final byte[] decompressed = new byte[RandomNumbers.randomIntBetween(random(), 20, 256)]; + for (int i = 0; i < decompressed.length; ++i) { + decompressed[i] = (byte) i; + } +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestLZ4CompressionMode.java lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestLZ4CompressionMode.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestLZ4CompressionMode.java 2014-03-31 12:29:44.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/compressing/AbstractTestLZ4CompressionMode.java 2020-06-09 01:50:25.172679991 +0000 +@@ -20,7 +20,7 @@ + import java.io.IOException; + import java.nio.charset.StandardCharsets; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + public abstract class AbstractTestLZ4CompressionMode extends AbstractTestCompressionMode { + +@@ -88,7 +88,7 @@ + + public void testLongMatchs() throws IOException { + // match length >= 20 +- final byte[] decompressed = new byte[RandomInts.randomIntBetween(random(), 300, 1024)]; ++ final byte[] decompressed = new byte[RandomNumbers.randomIntBetween(random(), 300, 1024)]; + for (int i = 0; i < decompressed.length; ++i) { + decompressed[i] = (byte) i; + } +@@ -97,10 +97,10 @@ + + public void testLongLiterals() throws IOException { + // long literals (length >= 16) which are not the last literals +- final byte[] decompressed = randomArray(RandomInts.randomIntBetween(random(), 400, 1024), 256); ++ final byte[] decompressed = randomArray(RandomNumbers.randomIntBetween(random(), 400, 1024), 256); + final int matchRef = random().nextInt(30); +- final int matchOff = RandomInts.randomIntBetween(random(), decompressed.length - 40, decompressed.length - 20); +- final int matchLength = RandomInts.randomIntBetween(random(), 4, 10); ++ final int matchOff = RandomNumbers.randomIntBetween(random(), decompressed.length - 40, decompressed.length - 20); ++ final int matchLength = RandomNumbers.randomIntBetween(random(), 4, 10); + System.arraycopy(decompressed, matchRef, decompressed, matchOff, matchLength); + test(decompressed); + } +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java 2014-09-19 13:24:09.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java 2020-06-09 01:50:25.176680050 +0000 +@@ -34,7 +34,7 @@ + import org.junit.Test; + + import com.carrotsearch.randomizedtesting.annotations.Repeat; +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + @Repeat(iterations=5) // give it a chance to test various compression modes with different chunk sizes + public class TestCompressingStoredFieldsFormat extends BaseStoredFieldsFormatTestCase { +@@ -52,7 +52,7 @@ + ((MockDirectoryWrapper)dir).setEnableVirusScanner(false); + } + IndexWriterConfig iwConf = newIndexWriterConfig(new MockAnalyzer(random())); +- iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30)); ++ iwConf.setMaxBufferedDocs(RandomNumbers.randomIntBetween(random(), 2, 30)); + iwConf.setCodec(CompressingCodec.randomInstance(random())); + // disable CFS because this test checks file names + iwConf.setMergePolicy(newLogMergePolicy(false)); +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/codecs/lucene41/TestForUtil.java lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/lucene41/TestForUtil.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/codecs/lucene41/TestForUtil.java 2012-10-12 02:00:19.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/codecs/lucene41/TestForUtil.java 2020-06-09 01:50:25.172679991 +0000 +@@ -32,24 +32,24 @@ + import org.apache.lucene.util.LuceneTestCase; + import org.apache.lucene.util.packed.PackedInts; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + public class TestForUtil extends LuceneTestCase { + + public void testEncodeDecode() throws IOException { +- final int iterations = RandomInts.randomIntBetween(random(), 1, 1000); ++ final int iterations = RandomNumbers.randomIntBetween(random(), 1, 1000); + final float acceptableOverheadRatio = random().nextFloat(); + final int[] values = new int[(iterations - 1) * BLOCK_SIZE + ForUtil.MAX_DATA_SIZE]; + for (int i = 0; i < iterations; ++i) { + final int bpv = random().nextInt(32); + if (bpv == 0) { +- final int value = RandomInts.randomIntBetween(random(), 0, Integer.MAX_VALUE); ++ final int value = RandomNumbers.randomIntBetween(random(), 0, Integer.MAX_VALUE); + for (int j = 0; j < BLOCK_SIZE; ++j) { + values[i * BLOCK_SIZE + j] = value; + } + } else { + for (int j = 0; j < BLOCK_SIZE; ++j) { +- values[i * BLOCK_SIZE + j] = RandomInts.randomIntBetween(random(), ++ values[i * BLOCK_SIZE + j] = RandomNumbers.randomIntBetween(random(), + 0, (int) PackedInts.maxValue(bpv)); + } + } +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java lucene-4.10.4.new/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java 2014-04-05 10:09:42.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java 2020-06-09 01:50:25.176680050 +0000 +@@ -31,7 +31,7 @@ + import org.apache.lucene.util.LuceneTestCase.SuppressCodecs; + + import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite; +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + /** + * This test creates an index with one segment that is a little larger than 4GB. +@@ -64,7 +64,7 @@ + ft.setIndexed(false); + ft.setStored(true); + ft.freeze(); +- final int valueLength = RandomInts.randomIntBetween(random(), 1 << 13, 1 << 20); ++ final int valueLength = RandomNumbers.randomIntBetween(random(), 1 << 13, 1 << 20); + final byte[] value = new byte[valueLength]; + for (int i = 0; i < valueLength; ++i) { + // random so that even compressing codecs can't compress it +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/util/automaton/TestOperations.java lucene-4.10.4.new/core/src/test/org/apache/lucene/util/automaton/TestOperations.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/util/automaton/TestOperations.java 2014-11-04 22:29:27.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/util/automaton/TestOperations.java 2020-06-09 01:50:25.176680050 +0000 +@@ -22,7 +22,7 @@ + import org.apache.lucene.util.*; + import org.apache.lucene.util.fst.Util; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + import static org.apache.lucene.util.automaton.Operations.DEFAULT_MAX_DETERMINIZED_STATES; + +@@ -30,7 +30,7 @@ + /** Test string union. */ + public void testStringUnion() { + List strings = new ArrayList<>(); +- for (int i = RandomInts.randomIntBetween(random(), 0, 1000); --i >= 0;) { ++ for (int i = RandomNumbers.randomIntBetween(random(), 0, 1000); --i >= 0;) { + strings.add(new BytesRef(TestUtil.randomUnicodeString(random()))); + } + +diff -urN lucene-4.10.4/core/src/test/org/apache/lucene/util/packed/TestPackedInts.java lucene-4.10.4.new/core/src/test/org/apache/lucene/util/packed/TestPackedInts.java +--- lucene-4.10.4/core/src/test/org/apache/lucene/util/packed/TestPackedInts.java 2014-07-01 14:59:52.000000000 +0000 ++++ lucene-4.10.4.new/core/src/test/org/apache/lucene/util/packed/TestPackedInts.java 2020-06-09 01:50:25.180680109 +0000 +@@ -43,7 +43,7 @@ + import org.apache.lucene.util.packed.PackedInts.Reader; + import org.junit.Ignore; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + @Slow + public class TestPackedInts extends LuceneTestCase { +@@ -51,7 +51,7 @@ + public void testByteCount() { + final int iters = atLeast(3); + for (int i = 0; i < iters; ++i) { +- final int valueCount = RandomInts.randomIntBetween(random(), 1, Integer.MAX_VALUE); ++ final int valueCount = RandomNumbers.randomIntBetween(random(), 1, Integer.MAX_VALUE); + for (PackedInts.Format format : PackedInts.Format.values()) { + for (int bpv = 1; bpv <= 64; ++bpv) { + final long byteCount = format.byteCount(PackedInts.VERSION_CURRENT, valueCount, bpv); +@@ -208,7 +208,7 @@ + + public void testEndPointer() throws IOException { + final Directory dir = newDirectory(); +- final int valueCount = RandomInts.randomIntBetween(random(), 1, 1000); ++ final int valueCount = RandomNumbers.randomIntBetween(random(), 1, 1000); + final IndexOutput out = dir.createOutput("tests.bin", newIOContext(random())); + for (int i = 0; i < valueCount; ++i) { + out.writeLong(0); +@@ -226,7 +226,7 @@ + + // test iterator + in.seek(0L); +- final PackedInts.ReaderIterator it = PackedInts.getReaderIteratorNoHeader(in, format, version, valueCount, bpv, RandomInts.randomIntBetween(random(), 1, 1<<16)); ++ final PackedInts.ReaderIterator it = PackedInts.getReaderIteratorNoHeader(in, format, version, valueCount, bpv, RandomNumbers.randomIntBetween(random(), 1, 1<<16)); + for (int i = 0; i < valueCount; ++i) { + it.next(); + } +@@ -983,9 +983,9 @@ + } + + public void testPackedLongValues() { +- final long[] arr = new long[RandomInts.randomIntBetween(random(), 1, 1000000)]; ++ final long[] arr = new long[RandomNumbers.randomIntBetween(random(), 1, 1000000)]; + float[] ratioOptions = new float[]{PackedInts.DEFAULT, PackedInts.COMPACT, PackedInts.FAST}; +- for (int bpv : new int[]{0, 1, 63, 64, RandomInts.randomIntBetween(random(), 2, 62)}) { ++ for (int bpv : new int[]{0, 1, 63, 64, RandomNumbers.randomIntBetween(random(), 2, 62)}) { + for (DataType dataType : Arrays.asList(DataType.DELTA_PACKED)) { + final int pageSize = 1 << TestUtil.nextInt(random(), 6, 20); + float acceptableOverheadRatio = ratioOptions[TestUtil.nextInt(random(), 0, ratioOptions.length - 1)]; +@@ -1068,7 +1068,7 @@ + final int[] bitsPerValues = new int[longs.length]; + final boolean[] skip = new boolean[longs.length]; + for (int i = 0; i < longs.length; ++i) { +- final int bpv = RandomInts.randomIntBetween(random(), 1, 64); ++ final int bpv = RandomNumbers.randomIntBetween(random(), 1, 64); + bitsPerValues[i] = random().nextBoolean() ? bpv : TestUtil.nextInt(random(), bpv, 64); + if (bpv == 64) { + longs[i] = random().nextLong(); +diff -urN lucene-4.10.4/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java lucene-4.10.4.new/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java +--- lucene-4.10.4/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java 2014-08-14 09:15:35.000000000 +0000 ++++ lucene-4.10.4.new/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java 2020-06-09 01:50:25.180680109 +0000 +@@ -39,7 +39,7 @@ + import org.apache.lucene.util.TestUtil; + import org.apache.lucene.util.packed.PackedInts; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + @SuppressCodecs("Lucene3x") + public class TestDocValuesFieldSources extends LuceneTestCase { +@@ -81,7 +81,7 @@ + f.setBytesValue(new BytesRef((String) vals[i])); + break; + case NUMERIC: +- final int bitsPerValue = RandomInts.randomIntBetween(random(), 1, 31); // keep it an int ++ final int bitsPerValue = RandomNumbers.randomIntBetween(random(), 1, 31); // keep it an int + vals[i] = (long) random().nextInt((int) PackedInts.maxValue(bitsPerValue)); + f.setLongValue((Long) vals[i]); + break; +diff -urN lucene-4.10.4/test-framework/src/java/org/apache/lucene/codecs/compressing/CompressingCodec.java lucene-4.10.4.new/test-framework/src/java/org/apache/lucene/codecs/compressing/CompressingCodec.java +--- lucene-4.10.4/test-framework/src/java/org/apache/lucene/codecs/compressing/CompressingCodec.java 2014-08-14 16:15:33.000000000 +0000 ++++ lucene-4.10.4.new/test-framework/src/java/org/apache/lucene/codecs/compressing/CompressingCodec.java 2020-06-09 01:50:25.180680109 +0000 +@@ -25,7 +25,7 @@ + import org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec; + import org.apache.lucene.codecs.lucene410.Lucene410Codec; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + + /** + * A codec that uses {@link CompressingStoredFieldsFormat} for its stored +@@ -56,14 +56,14 @@ + * suffix + */ + public static CompressingCodec randomInstance(Random random) { +- return randomInstance(random, RandomInts.randomIntBetween(random, 1, 500), false); ++ return randomInstance(random, RandomNumbers.randomIntBetween(random, 1, 500), false); + } + + /** + * Creates a random {@link CompressingCodec} that is using a segment suffix + */ + public static CompressingCodec randomInstance(Random random, boolean withSegmentSuffix) { +- return randomInstance(random, RandomInts.randomIntBetween(random, 1, 500), withSegmentSuffix); ++ return randomInstance(random, RandomNumbers.randomIntBetween(random, 1, 500), withSegmentSuffix); + } + + private final CompressingStoredFieldsFormat storedFieldsFormat; +diff -urN lucene-4.10.4/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java lucene-4.10.4.new/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java +--- lucene-4.10.4/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java 2014-08-14 16:15:33.000000000 +0000 ++++ lucene-4.10.4.new/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java 2020-06-09 01:50:25.184680168 +0000 +@@ -59,7 +59,7 @@ + import org.apache.lucene.util.BytesRef; + import org.apache.lucene.util.TestUtil; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + import com.carrotsearch.randomizedtesting.generators.RandomPicks; + + /** +@@ -330,7 +330,7 @@ + public void testReadSkip() throws IOException { + Directory dir = newDirectory(); + IndexWriterConfig iwConf = newIndexWriterConfig(new MockAnalyzer(random())); +- iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30)); ++ iwConf.setMaxBufferedDocs(RandomNumbers.randomIntBetween(random(), 2, 30)); + RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConf); + + FieldType ft = new FieldType(); +@@ -383,7 +383,7 @@ + public void testEmptyDocs() throws IOException { + Directory dir = newDirectory(); + IndexWriterConfig iwConf = newIndexWriterConfig(new MockAnalyzer(random())); +- iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30)); ++ iwConf.setMaxBufferedDocs(RandomNumbers.randomIntBetween(random(), 2, 30)); + RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConf); + + // make sure that the fact that documents might be empty is not a problem +@@ -408,7 +408,7 @@ + public void testConcurrentReads() throws Exception { + Directory dir = newDirectory(); + IndexWriterConfig iwConf = newIndexWriterConfig(new MockAnalyzer(random())); +- iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30)); ++ iwConf.setMaxBufferedDocs(RandomNumbers.randomIntBetween(random(), 2, 30)); + RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConf); + + // make sure the readers are properly cloned +@@ -496,15 +496,15 @@ + } + Directory dir = newDirectory(); + IndexWriterConfig iwConf = newIndexWriterConfig(new MockAnalyzer(random())); +- iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30)); ++ iwConf.setMaxBufferedDocs(RandomNumbers.randomIntBetween(random(), 2, 30)); + RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConf); + + final int docCount = atLeast(200); + final byte[][][] data = new byte [docCount][][]; + for (int i = 0; i < docCount; ++i) { + final int fieldCount = rarely() +- ? RandomInts.randomIntBetween(random(), 1, 500) +- : RandomInts.randomIntBetween(random(), 1, 5); ++ ? RandomNumbers.randomIntBetween(random(), 1, 500) ++ : RandomNumbers.randomIntBetween(random(), 1, 5); + data[i] = new byte[fieldCount][]; + for (int j = 0; j < fieldCount; ++j) { + final int length = rarely() +@@ -589,7 +589,7 @@ + // so if we get NRTCachingDir+SimpleText, we make massive stored fields and OOM (LUCENE-4484) + Directory dir = new MockDirectoryWrapper(random(), new MMapDirectory(createTempDir("testBigDocuments"))); + IndexWriterConfig iwConf = newIndexWriterConfig(new MockAnalyzer(random())); +- iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30)); ++ iwConf.setMaxBufferedDocs(RandomNumbers.randomIntBetween(random(), 2, 30)); + RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConf); + + if (dir instanceof MockDirectoryWrapper) { +@@ -609,12 +609,12 @@ + onlyStored.setIndexed(false); + + final Field smallField = new Field("fld", randomByteArray(random().nextInt(10), 256), onlyStored); +- final int numFields = RandomInts.randomIntBetween(random(), 500000, 1000000); ++ final int numFields = RandomNumbers.randomIntBetween(random(), 500000, 1000000); + for (int i = 0; i < numFields; ++i) { + bigDoc1.add(smallField); + } + +- final Field bigField = new Field("fld", randomByteArray(RandomInts.randomIntBetween(random(), 1000000, 5000000), 2), onlyStored); ++ final Field bigField = new Field("fld", randomByteArray(RandomNumbers.randomIntBetween(random(), 1000000, 5000000), 2), onlyStored); + bigDoc2.add(bigField); + + final int numDocs = atLeast(5); +diff -urN lucene-4.10.4/test-framework/src/java/org/apache/lucene/util/TestUtil.java lucene-4.10.4.new/test-framework/src/java/org/apache/lucene/util/TestUtil.java +--- lucene-4.10.4/test-framework/src/java/org/apache/lucene/util/TestUtil.java 2014-08-14 16:15:33.000000000 +0000 ++++ lucene-4.10.4.new/test-framework/src/java/org/apache/lucene/util/TestUtil.java 2020-06-09 01:50:25.188680226 +0000 +@@ -88,7 +88,7 @@ + import org.apache.lucene.store.Directory; + import org.junit.Assert; + +-import com.carrotsearch.randomizedtesting.generators.RandomInts; ++import com.carrotsearch.randomizedtesting.generators.RandomNumbers; + import com.carrotsearch.randomizedtesting.generators.RandomPicks; + + /** +@@ -243,7 +243,7 @@ + + /** start and end are BOTH inclusive */ + public static int nextInt(Random r, int start, int end) { +- return RandomInts.randomIntBetween(r, start, end); ++ return RandomNumbers.randomIntBetween(r, start, end); + } + + /** start and end are BOTH inclusive */ +@@ -384,7 +384,7 @@ + final StringBuilder regexp = new StringBuilder(maxLength); + for (int i = nextInt(r, 0, maxLength); i > 0; i--) { + if (r.nextBoolean()) { +- regexp.append((char) RandomInts.randomIntBetween(r, 'a', 'z')); ++ regexp.append((char) RandomNumbers.randomIntBetween(r, 'a', 'z')); + } else { + regexp.append(RandomPicks.randomFrom(r, ops)); + } diff --git a/dev-tools-4.10.4.tar.xz b/dev-tools-4.10.4.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..757e8910775cadd547054a80b4b3d8567c0b5b96 Binary files /dev/null and b/dev-tools-4.10.4.tar.xz differ diff --git a/lucene-4.10.4-morfologik-stemming.patch b/lucene-4.10.4-morfologik-stemming.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e1e78a96473ad5675e2e00631b54dcb3d6eb6fa --- /dev/null +++ b/lucene-4.10.4-morfologik-stemming.patch @@ -0,0 +1,179 @@ +diff -Nru lucene-4.10.4/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java lucene-4.10.4.morfologik-stemming/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java +--- lucene-4.10.4/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java 2014-08-21 05:12:52.000000000 +0200 ++++ lucene-4.10.4.morfologik-stemming/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java 2016-04-30 01:39:55.894913112 +0200 +@@ -20,6 +20,9 @@ + + import java.io.Reader; + ++import morfologik.stemming.Dictionary; ++import morfologik.stemming.polish.PolishStemmer; ++ + import org.apache.lucene.analysis.Analyzer; + import org.apache.lucene.analysis.Tokenizer; + import org.apache.lucene.analysis.standard.StandardFilter; +@@ -31,7 +34,7 @@ + * @see Morfologik project page + */ + public class MorfologikAnalyzer extends Analyzer { +- private final String dictionary; ++ private final Dictionary dictionary; + + /** + * Builds an analyzer with an explicit dictionary resource. +@@ -43,32 +46,15 @@ + * + * @see "http://morfologik.blogspot.com/" + */ +- public MorfologikAnalyzer(final String dictionaryResource) { +- this.dictionary = dictionaryResource; +- } +- +- /** +- * @deprecated Use {@link #MorfologikAnalyzer(String)} +- */ +- @Deprecated +- public MorfologikAnalyzer(final Version version, final String dictionaryResource) { +- setVersion(version); +- this.dictionary = dictionaryResource; ++ public MorfologikAnalyzer(final Dictionary dictionary) { ++ this.dictionary = dictionary; + } + + /** + * Builds an analyzer with the default Morfologik's Polish dictionary. + */ + public MorfologikAnalyzer() { +- this(MorfologikFilterFactory.DEFAULT_DICTIONARY_RESOURCE); +- } +- +- /** +- * @deprecated Use {@link #MorfologikAnalyzer()} +- */ +- @Deprecated +- public MorfologikAnalyzer(final Version version) { +- this(version, MorfologikFilterFactory.DEFAULT_DICTIONARY_RESOURCE); ++ this(new PolishStemmer().getDictionary()); + } + + /** +@@ -88,6 +74,6 @@ + + return new TokenStreamComponents( + src, +- new MorfologikFilter(new StandardFilter(getVersion(), src), dictionary, getVersion())); ++ new MorfologikFilter(new StandardFilter(src), dictionary)); + } + } +diff -Nru lucene-4.10.4/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java lucene-4.10.4.morfologik-stemming/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java +--- lucene-4.10.4/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java 2014-08-21 05:12:52.000000000 +0200 ++++ lucene-4.10.4.morfologik-stemming/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java 2016-04-30 01:08:24.560899492 +0200 +@@ -18,8 +18,13 @@ + */ + + import java.util.Map; ++import java.util.Objects; + import java.util.logging.Logger; + ++import morfologik.stemming.Dictionary; ++import morfologik.stemming.DictionaryMetadata; ++import morfologik.stemming.polish.PolishStemmer; ++ + import org.apache.lucene.analysis.TokenStream; + import org.apache.lucene.analysis.util.TokenFilterFactory; + +@@ -48,6 +53,9 @@ + */ + private final String dictionaryResource; + ++ /** Loaded {@link Dictionary}, initialized on {@link #inform(ResourceLoader)}. */ ++ private Dictionary dictionary; ++ + /** Schema attribute. */ + @Deprecated + public static final String DICTIONARY_SCHEMA_ATTRIBUTE = "dictionary"; +@@ -79,6 +87,6 @@ + + @Override + public TokenStream create(TokenStream ts) { +- return new MorfologikFilter(ts, dictionaryResource); ++ return new MorfologikFilter(ts, Objects.requireNonNull(dictionary, "MorfologikFilterFactory was not fully initialized.")); + } + } +diff -Nru lucene-4.10.4/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilter.java lucene-4.10.4.morfologik-stemming/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilter.java +--- lucene-4.10.4/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilter.java 2014-08-21 05:12:52.000000000 +0200 ++++ lucene-4.10.4.morfologik-stemming/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilter.java 2016-04-30 01:25:55.949415627 +0200 +@@ -22,7 +22,11 @@ + import java.util.*; + import java.util.regex.Pattern; + +-import morfologik.stemming.*; ++import morfologik.stemming.Dictionary; ++import morfologik.stemming.DictionaryLookup; ++import morfologik.stemming.IStemmer; ++import morfologik.stemming.WordData; ++import morfologik.stemming.polish.PolishStemmer; + + import org.apache.lucene.analysis.TokenFilter; + import org.apache.lucene.analysis.TokenStream; +@@ -49,7 +53,7 @@ + private final KeywordAttribute keywordAttr = addAttribute(KeywordAttribute.class); + + private final CharsRefBuilder scratch = new CharsRefBuilder(); +- private final CharacterUtils charUtils; ++ private final CharacterUtils charUtils = CharacterUtils.getInstance(); + + private State current; + private final TokenStream input; +@@ -64,46 +68,20 @@ + * Creates a filter with the default (Polish) dictionary. + */ + public MorfologikFilter(final TokenStream in) { +- this(in, MorfologikFilterFactory.DEFAULT_DICTIONARY_RESOURCE); ++ this(in, new PolishStemmer().getDictionary()); + } + + /** +- * @deprecated Use {@link #MorfologikFilter(TokenStream)} +- */ +- @Deprecated +- public MorfologikFilter(final TokenStream in, final Version version) { +- this(in, MorfologikFilterFactory.DEFAULT_DICTIONARY_RESOURCE, version); +- } +- +- /** +- * Creates a filter with a given dictionary resource. ++ * Creates a filter with a given dictionary. + * + * @param in input token stream. +- * @param dict Dictionary resource from classpath. ++ * @param dict Dictionary to use for stemming. + */ +- public MorfologikFilter(final TokenStream in, final String dict) { +- this(in, dict, Version.LATEST); +- } +- +- /** +- * @deprecated Use {@link #MorfologikFilter(TokenStream,String)} +- */ +- @Deprecated +- public MorfologikFilter(final TokenStream in, final String dict, final Version version) { ++ public MorfologikFilter(final TokenStream in, final Dictionary dict) { + super(in); + this.input = in; +- +- // SOLR-4007: temporarily substitute context class loader to allow finding dictionary resources. +- Thread me = Thread.currentThread(); +- ClassLoader cl = me.getContextClassLoader(); +- try { +- me.setContextClassLoader(morfologik.stemming.Dictionary.class.getClassLoader()); +- this.stemmer = new DictionaryLookup(morfologik.stemming.Dictionary.getForLanguage(dict)); +- this.charUtils = CharacterUtils.getInstance(version); +- this.lemmaList = Collections.emptyList(); +- } finally { +- me.setContextClassLoader(cl); +- } ++ this.stemmer = new DictionaryLookup(dict); ++ this.lemmaList = Collections.emptyList(); + } + + /** diff --git a/lucene-4.10.4-src.tgz b/lucene-4.10.4-src.tgz new file mode 100644 index 0000000000000000000000000000000000000000..489e83d4a31254a055ddf85a23f38eaedb8ff87b Binary files /dev/null and b/lucene-4.10.4-src.tgz differ diff --git a/lucene4.spec b/lucene4.spec new file mode 100644 index 0000000000000000000000000000000000000000..e0001d3be290272ba6cbab1a627c72808109aa9f --- /dev/null +++ b/lucene4.spec @@ -0,0 +1,101 @@ +Summary: High-performance, full-featured text search engine +Name: lucene4 +Version: 4.10.4 +Release: 1 +Epoch: 0 +License: ASL 2.0 +URL: http://lucene.apache.org/ +Source0: http://archive.apache.org/dist/lucene/java/%{version}/lucene-%{version}-src.tgz +# svn export http://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_4_10_4dev-tools/ +# tar caf dev-tools-4.10.4.tar.xz dev-tools/ +Source1: dev-tools-%{version}.tar.xz +Patch0: 0001-disable-ivy-settings.patch +Patch1: 0001-dependency-generation.patch +Patch2: lucene-4.10.4-morfologik-stemming.patch +Patch3: 0001-SOLR-11477-Disallow-resolving-of-external-entities-i.patch +Patch4: RandomInts-oe.patch +Patch5: spatial4j-oe.patch + +BuildRequires: git subversion ant ivy-local apache-ivy icu4j httpcomponents-client +BuildRequires: jetty-continuation jetty-http jetty-io jetty-server jetty-servlet jetty-util +BuildRequires: morfologik-stemming uimaj uima-addons spatial4j nekohtml xerces-j2 +BuildRequires: mvn(javax.servlet:javax.servlet-api) mvn(org.antlr:antlr-runtime) maven-local +BuildRequires: apache-parent buildnumber-maven-plugin maven-plugin-bundle regexp +BuildRequires: junit randomizedtesting-junit4-ant randomizedtesting-runner +Provides: %{name}-core = %{epoch}:%{version}-%{release} +BuildArch: noarch + +%description +Apache Lucene is a high-performance, full-featured text search +engine library written entirely in Java. It is a technology suitable +for nearly any application that requires full-text search, especially +cross-platform. + +%package javadoc +Summary: Javadoc for Lucene + +%description javadoc +%{summary}. + +%prep +%setup -q -n lucene-%{version} +mkdir lucene +find -maxdepth 1 \ + ! -name CHANGES.txt ! -name LICENSE.txt ! -name README.txt \ + ! -name NOTICE.txt ! -name MIGRATE.txt ! -name ivy-settings.xml \ + ! -path ./lucene -exec mv \{} lucene/ \; +tar xf %{SOURCE1} +pushd lucene +%patch0 -p1 +%patch1 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +find . -name "*.jar" -delete +rm sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestJakartaRegexpCapabilities.java +rm -r replicator/src/test/* +rm -r analysis/common/src/test/* +ln -s %{_sysconfdir}/ivy/ivysettings.xml +popd +%patch2 -p1 +sed -i -e '/Export-Package/aorg.apache.lucene*;version="[${project.version},5.0.0)",org.tartarus*;version="[${project.version},5.0.0)",*' \ + dev-tools/maven/pom.xml.template +%mvn_alias :lucene-suggest :lucene-spellchecker +%mvn_alias :lucene-analyzers-common :lucene-analyzers +%mvn_compat_version : 4 %{version} + +%build +pushd lucene +ant filter-pom-templates -Divy.mode=local -Dversion=%{version} +for pom in `find build/poms/lucene -name pom.xml`; do + sed 's/\${module-path}/${basedir}/g' "$pom" > "${pom##build/poms/lucene/}" +done +%pom_disable_module src/test core +%pom_disable_module src/test codecs +%pom_add_dep org.ow2.asm:asm::test demo +%pom_add_dep org.ow2.asm:asm-commons::test demo +%pom_add_dep org.antlr:antlr-runtime::test demo +popd +mv lucene/build/poms/pom.xml . +%pom_disable_module solr +%pom_remove_plugin :gmaven-plugin +%pom_remove_plugin -r :forbiddenapis +%pom_remove_dep org.eclipse.jetty.orbit:javax.servlet +%pom_change_dep org.eclipse.jetty.orbit:javax.servlet javax.servlet:javax.servlet-api:3.1.0 lucene/replicator +%pom_change_dep -r :servlet-api javax.servlet:javax.servlet-api:3.1.0 +%pom_remove_plugin -r :maven-enforcer-plugin +%mvn_build -f + +%install +%mvn_install + +%files -f .mfiles +%doc CHANGES.txt README.txt MIGRATE.txt +%license LICENSE.txt NOTICE.txt + +%files javadoc -f .mfiles-javadoc +%license LICENSE.txt NOTICE.txt + +%changelog +* Thu Jul 30 2020 leiju - 4.10.4-1 +- Package init diff --git a/lucene4.yaml b/lucene4.yaml new file mode 100644 index 0000000000000000000000000000000000000000..00bbaf050db91e87f0ad529e5c29027a1bf150ae --- /dev/null +++ b/lucene4.yaml @@ -0,0 +1,4 @@ +version_control: NA +src_repo: NA +tag_prefix: NA +seperator: NA diff --git a/spatial4j-oe.patch b/spatial4j-oe.patch new file mode 100644 index 0000000000000000000000000000000000000000..9b178eab26d463106f1438832509e1960f14183d --- /dev/null +++ b/spatial4j-oe.patch @@ -0,0 +1,1101 @@ +diff -urN lucene-4.10.4/benchmark/conf/spatial.alg lucene-4.10.4.new/benchmark/conf/spatial.alg +--- lucene-4.10.4/benchmark/conf/spatial.alg 2014-07-23 04:47:15.000000000 +0000 ++++ lucene-4.10.4.new/benchmark/conf/spatial.alg 2020-06-09 01:52:52.242846354 +0000 +@@ -23,7 +23,7 @@ + ### Spatial Context, Grid, Strategy config + doc.maker=org.apache.lucene.benchmark.byTask.feeds.SpatialDocMaker + # SpatialContext: see SpatialContextFactory.makeSpatialContext +-#spatial.spatialContextFactory=com.spatial4j.core.context.jts.JtsSpatialContextFactory ++#spatial.spatialContextFactory=org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory + #spatial.geo=true + #spatial.distCalculator=haversine + #spatial.worldBounds=... +diff -urN lucene-4.10.4/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialDocMaker.java lucene-4.10.4.new/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialDocMaker.java +--- lucene-4.10.4/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialDocMaker.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialDocMaker.java 2020-06-09 01:52:52.242846354 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.context.SpatialContextFactory; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.context.SpatialContextFactory; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.benchmark.byTask.utils.Config; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; +diff -urN lucene-4.10.4/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialFileQueryMaker.java lucene-4.10.4.new/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialFileQueryMaker.java +--- lucene-4.10.4/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialFileQueryMaker.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/SpatialFileQueryMaker.java 2020-06-09 01:52:52.238846295 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.benchmark.byTask.utils.Config; + import org.apache.lucene.queries.CustomScoreQuery; + import org.apache.lucene.queries.function.FunctionQuery; +@@ -36,7 +36,7 @@ + + /** + * Reads spatial data from the body field docs from an internally created {@link LineDocSource}. +- * It's parsed by {@link com.spatial4j.core.context.SpatialContext#readShapeFromWkt(String)} (String)} and then ++ * It's parsed by {@link org.locationtech.spatial4j.context.SpatialContext#readShapeFromWkt(String)} (String)} and then + * further manipulated via a configurable {@link SpatialDocMaker.ShapeConverter}. When using point + * data, it's likely you'll want to configure the shape converter so that the query shapes actually + * cover a region. The queries are all created & cached in advance. This query maker works in +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource.java 2014-07-08 14:15:35.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource.java 2020-06-09 01:52:52.242846354 +0000 +@@ -16,7 +16,7 @@ + */ + package org.apache.lucene.spatial.bbox; + +-import com.spatial4j.core.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Rectangle; + import org.apache.lucene.queries.function.ValueSource; + import org.apache.lucene.search.Explanation; + +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java 2014-07-08 14:15:35.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java 2020-06-09 01:52:52.246846413 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Rectangle; + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.queries.function.FunctionValues; + import org.apache.lucene.queries.function.ValueSource; +@@ -31,7 +31,7 @@ + /** + * A base class for calculating a spatial relevance rank per document from a provided + * {@link ValueSource} in which {@link FunctionValues#objectVal(int)} returns a {@link +- * com.spatial4j.core.shape.Rectangle}. ++ * org.locationtech.spatial4j.shape.Rectangle}. + *

+ * Implementers: remember to implement equals & hashCode if you have + * fields! +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java 2014-08-13 09:36:54.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java 2020-06-09 01:52:52.242846354 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; + + import org.apache.lucene.document.DoubleField; + import org.apache.lucene.document.Field; +@@ -68,7 +68,7 @@ + * and a boolean to mark a dateline cross. Depending on the particular {@link + * SpatialOperation}s, there are a variety of {@link NumericRangeQuery}s to be + * done. +- * The {@link #makeOverlapRatioValueSource(com.spatial4j.core.shape.Rectangle, double)} ++ * The {@link #makeOverlapRatioValueSource(org.locationtech.spatial4j.shape.Rectangle, double)} + * works by calculating the query bbox overlap percentage against the indexed + * shape overlap percentage. The indexed shape's coordinates are retrieved from + * {@link AtomicReader#getNumericDocValues}. +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxValueSource.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxValueSource.java 2014-07-08 14:15:35.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxValueSource.java 2020-06-09 01:52:52.246846413 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Rectangle; + import org.apache.lucene.index.AtomicReader; + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.index.DocValues; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractPrefixTreeFilter.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractPrefixTreeFilter.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractPrefixTreeFilter.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractPrefixTreeFilter.java 2020-06-09 01:52:52.254846531 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.index.AtomicReader; + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.index.DocsEnum; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractVisitingPrefixTreeFilter.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractVisitingPrefixTreeFilter.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractVisitingPrefixTreeFilter.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/AbstractVisitingPrefixTreeFilter.java 2020-06-09 01:52:52.250846472 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.index.TermsEnum; + import org.apache.lucene.search.DocIdSet; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/ContainsPrefixTreeFilter.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/ContainsPrefixTreeFilter.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/ContainsPrefixTreeFilter.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/ContainsPrefixTreeFilter.java 2020-06-09 01:52:52.254846531 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.SpatialRelation; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.SpatialRelation; + + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.index.DocsEnum; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeFilter.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeFilter.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeFilter.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeFilter.java 2020-06-09 01:52:52.254846531 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.SpatialRelation; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.SpatialRelation; + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.search.DocIdSet; + import org.apache.lucene.spatial.prefix.tree.Cell; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java 2020-06-09 01:52:52.246846413 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Point; ++import org.locationtech.spatial4j.shape.Point; + import org.apache.lucene.spatial.prefix.tree.Cell; + import org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree; + import org.apache.lucene.spatial.util.ShapeFieldCacheProvider; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java 2020-06-09 01:52:52.246846413 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.analysis.TokenStream; + import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; + import org.apache.lucene.document.Field; +@@ -48,7 +48,7 @@ + *

  • Can index any shape; however only {@link RecursivePrefixTreeStrategy} + * can effectively search non-point shapes.
  • + *
  • Can index a variable number of shapes per field value. This strategy +- * can do it via multiple calls to {@link #createIndexableFields(com.spatial4j.core.shape.Shape)} ++ * can do it via multiple calls to {@link #createIndexableFields(org.locationtech.spatial4j.shape.Shape)} + * for a document or by giving it some sort of Shape aggregate (e.g. JTS + * WKT MultiPoint). The shape's boundary is approximated to a grid precision. + *
  • +@@ -57,7 +57,7 @@ + *
  • Only {@link org.apache.lucene.spatial.query.SpatialOperation#Intersects} + * is supported. If only points are indexed then this is effectively equivalent + * to IsWithin.
  • +- *
  • The strategy supports {@link #makeDistanceValueSource(com.spatial4j.core.shape.Point,double)} ++ *
  • The strategy supports {@link #makeDistanceValueSource(org.locationtech.spatial4j.shape.Point,double)} + * even for multi-valued data, so long as the indexed data is all points; the + * behavior is undefined otherwise. However, it will likely be removed in + * the future in lieu of using another strategy with a more scalable +@@ -90,7 +90,7 @@ + } + + /** +- * A memory hint used by {@link #makeDistanceValueSource(com.spatial4j.core.shape.Point)} ++ * A memory hint used by {@link #makeDistanceValueSource(org.locationtech.spatial4j.shape.Point)} + * for how big the initial size of each Document's array should be. The + * default is 2. Set this to slightly more than the default expected number + * of points per document. +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy.java 2014-07-07 15:42:29.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy.java 2020-06-09 01:52:52.254846531 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.search.Filter; + import org.apache.lucene.spatial.DisjointSpatialFilter; + import org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/TermQueryPrefixTreeStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/TermQueryPrefixTreeStrategy.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/TermQueryPrefixTreeStrategy.java 2014-08-13 09:36:54.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/TermQueryPrefixTreeStrategy.java 2020-06-09 01:52:52.258846589 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Shape; + + import org.apache.lucene.queries.TermsFilter; + import org.apache.lucene.search.Filter; +@@ -32,7 +32,7 @@ + + /** + * A basic implementation of {@link PrefixTreeStrategy} using a large {@link +- * TermsFilter} of all the cells from {@link SpatialPrefixTree#getCells(com.spatial4j.core.shape.Shape, ++ * TermsFilter} of all the cells from {@link SpatialPrefixTree#getCells(org.locationtech.spatial4j.shape.Shape, + * int, boolean, boolean)}. It only supports the search of indexed Point shapes. + *

    + * The precision of query shapes (distErrPct) is an important factor in using +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/Cell.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/Cell.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/Cell.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/Cell.java 2020-06-09 01:52:52.250846472 +0000 +@@ -17,9 +17,9 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.SpatialRelation; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.SpatialRelation; + + import java.util.ArrayList; + import java.util.Collection; +@@ -149,8 +149,8 @@ + + /** + * Like {@link #getSubCells()} but with the results filtered by a shape. If +- * that shape is a {@link com.spatial4j.core.shape.Point} then it must call +- * {@link #getSubCell(com.spatial4j.core.shape.Point)}. The returned cells ++ * that shape is a {@link org.locationtech.spatial4j.shape.Point} then it must call ++ * {@link #getSubCell(org.locationtech.spatial4j.shape.Point)}. The returned cells + * should have {@link Cell#getShapeRel()} set to their relation with {@code + * shapeFilter}. In addition, {@link Cell#isLeaf()} + * must be true when that relation is WITHIN. +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java 2020-06-09 01:52:52.250846472 +0000 +@@ -17,11 +17,11 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.io.GeohashUtils; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.io.GeohashUtils; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; + + import java.util.ArrayList; + import java.util.Collection; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java 2020-06-09 01:52:52.250846472 +0000 +@@ -17,11 +17,11 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.SpatialRelation; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.SpatialRelation; + + import java.io.PrintStream; + import java.text.NumberFormat; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java 2012-09-22 18:32:49.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java 2020-06-09 01:52:52.250846472 +0000 +@@ -17,8 +17,8 @@ + + package org.apache.lucene.spatial.prefix.tree; + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.distance.DistanceUtils; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.distance.DistanceUtils; + + import java.util.Map; + +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTree.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTree.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTree.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTree.java 2020-06-09 01:52:52.254846531 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; + + import java.nio.charset.Charset; + import java.nio.charset.StandardCharsets; +@@ -145,7 +145,7 @@ + * leaf and none of its children are added. + *

    + * This implementation checks if shape is a Point and if so returns {@link +- * #getCells(com.spatial4j.core.shape.Point, int, boolean)}. ++ * #getCells(org.locationtech.spatial4j.shape.Point, int, boolean)}. + * + * @param shape the shape; non-null + * @param detailLevel the maximum detail level to get cells for +@@ -213,7 +213,7 @@ + + /** + * A Point-optimized implementation of +- * {@link #getCells(com.spatial4j.core.shape.Shape, int, boolean, boolean)}. That ++ * {@link #getCells(org.locationtech.spatial4j.shape.Shape, int, boolean, boolean)}. That + * method in facts calls this for points. + *

    + * This implementation depends on {@link #getCell(String)} being fast, as its +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/WithinPrefixTreeFilter.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/WithinPrefixTreeFilter.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/prefix/WithinPrefixTreeFilter.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/prefix/WithinPrefixTreeFilter.java 2020-06-09 01:52:52.254846531 +0000 +@@ -17,13 +17,13 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.distance.DistanceUtils; +-import com.spatial4j.core.shape.Circle; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.SpatialRelation; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.distance.DistanceUtils; ++import org.locationtech.spatial4j.shape.Circle; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.SpatialRelation; + import org.apache.lucene.index.AtomicReaderContext; + import org.apache.lucene.search.DocIdSet; + import org.apache.lucene.spatial.prefix.tree.Cell; +@@ -57,7 +57,7 @@ + private final Shape bufferedQueryShape;//if null then the whole world + + /** +- * See {@link AbstractVisitingPrefixTreeFilter#AbstractVisitingPrefixTreeFilter(com.spatial4j.core.shape.Shape, String, org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree, int, int)}. ++ * See {@link AbstractVisitingPrefixTreeFilter#AbstractVisitingPrefixTreeFilter(org.locationtech.spatial4j.shape.Shape, String, org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree, int, int)}. + * {@code queryBuffer} is the (minimum) distance beyond the query shape edge + * where non-matching documents are looked for so they can be excluded. If + * -1 is used then the whole world is examined (a good default for correctness). +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java 2014-07-08 20:18:47.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java 2020-06-09 01:52:52.258846589 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; + + /** + * Principally holds the query {@link Shape} and the {@link SpatialOperation}. +@@ -121,8 +121,8 @@ + * inflates the size of the shape but should not shrink it. + * + * @return 0 to 0.5 +- * @see #calcDistanceFromErrPct(com.spatial4j.core.shape.Shape, double, +- * com.spatial4j.core.context.SpatialContext) ++ * @see #calcDistanceFromErrPct(org.locationtech.spatial4j.shape.Shape, double, ++ * org.locationtech.spatial4j.context.SpatialContext) + */ + public Double getDistErrPct() { + return distErrPct; +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgsParser.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgsParser.java +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgsParser.java 2014-03-12 18:14:05.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgsParser.java 2020-06-09 01:52:52.258846589 +0000 +@@ -17,9 +17,9 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.exception.InvalidShapeException; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.exception.InvalidShapeException; ++import org.locationtech.spatial4j.shape.Shape; + + import java.text.ParseException; + import java.util.HashMap; +@@ -30,8 +30,8 @@ + /** + * Parses a string that usually looks like "OPERATION(SHAPE)" into a {@link SpatialArgs} + * object. The set of operations supported are defined in {@link SpatialOperation}, such +- * as "Intersects" being a common one. The shape portion is defined by WKT {@link com.spatial4j.core.io.WktShapeParser}, +- * but it can be overridden/customized via {@link #parseShape(String, com.spatial4j.core.context.SpatialContext)}. ++ * as "Intersects" being a common one. The shape portion is defined by WKT {@link org.locationtech.spatial4j.io.WktShapeParser}, ++ * but it can be overridden/customized via {@link #parseShape(String, org.locationtech.spatial4j.context.SpatialContext)}. + * There are some optional name-value pair parameters that follow the closing parenthesis. Example: + *

    +  *   Intersects(ENVELOPE(-10,-8,22,20)) distErrPct=0.025
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java	2014-07-08 20:18:47.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java	2020-06-09 01:52:52.258846589 +0000
    +@@ -17,9 +17,9 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.shape.Rectangle;
    +-import com.spatial4j.core.shape.Shape;
    +-import com.spatial4j.core.shape.SpatialRelation;
    ++import org.locationtech.spatial4j.shape.Rectangle;
    ++import org.locationtech.spatial4j.shape.Shape;
    ++import org.locationtech.spatial4j.shape.SpatialRelation;
    + 
    + import java.io.Serializable;
    + import java.util.ArrayList;
    +@@ -31,7 +31,7 @@
    + /**
    +  * A predicate that compares a stored geometry to a supplied geometry. It's enum-like. For more
    +  * explanation of each predicate, consider looking at the source implementation
    +- * of {@link #evaluate(com.spatial4j.core.shape.Shape, com.spatial4j.core.shape.Shape)}. It's important
    ++ * of {@link #evaluate(org.locationtech.spatial4j.shape.Shape, org.locationtech.spatial4j.shape.Shape)}. It's important
    +  * to be aware that Lucene-spatial makes no distinction of shape boundaries, unlike many standardized
    +  * definitions. Nor does it make dimensional distinctions (e.g. line vs polygon).
    +  * You can lookup a predicate by "Covers" or "Contains", for example, and you will get the
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/serialized/SerializedDVStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/serialized/SerializedDVStrategy.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/serialized/SerializedDVStrategy.java	2014-08-14 09:15:35.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/serialized/SerializedDVStrategy.java	2020-06-09 01:52:52.258846589 +0000
    +@@ -17,10 +17,10 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.context.SpatialContext;
    +-import com.spatial4j.core.io.BinaryCodec;
    +-import com.spatial4j.core.shape.Point;
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.context.SpatialContext;
    ++import org.locationtech.spatial4j.io.BinaryCodec;
    ++import org.locationtech.spatial4j.shape.Point;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.document.BinaryDocValuesField;
    + import org.apache.lucene.document.Field;
    + import org.apache.lucene.index.AtomicReaderContext;
    +@@ -54,7 +54,7 @@
    +  * SpatialStrategy that is approximated (like {@link org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy})
    +  * to add precision or eventually make more specific / advanced calculations on the per-document
    +  * geometry.
    +- * The serialization uses Spatial4j's {@link com.spatial4j.core.io.BinaryCodec}.
    ++ * The serialization uses Spatial4j's {@link org.locationtech.spatial4j.io.BinaryCodec}.
    +  *
    +  * @lucene.experimental
    +  */
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java	2013-07-24 17:25:11.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java	2020-06-09 01:52:52.262846648 +0000
    +@@ -17,10 +17,10 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.context.SpatialContext;
    +-import com.spatial4j.core.shape.Point;
    +-import com.spatial4j.core.shape.Rectangle;
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.context.SpatialContext;
    ++import org.locationtech.spatial4j.shape.Point;
    ++import org.locationtech.spatial4j.shape.Rectangle;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.document.Field;
    + import org.apache.lucene.queries.function.ValueSource;
    + import org.apache.lucene.queries.function.valuesource.ReciprocalFloatFunction;
    +@@ -102,7 +102,7 @@
    +   public abstract Field[] createIndexableFields(Shape shape);
    + 
    +   /**
    +-   * See {@link #makeDistanceValueSource(com.spatial4j.core.shape.Point, double)} called with
    ++   * See {@link #makeDistanceValueSource(org.locationtech.spatial4j.shape.Point, double)} called with
    +    * a multiplier of 1.0 (i.e. units of degrees).
    +    */
    +   public ValueSource makeDistanceValueSource(Point queryPoint) {
    +@@ -148,7 +148,7 @@
    + 
    +   /**
    +    * Returns a ValueSource with values ranging from 1 to 0, depending inversely
    +-   * on the distance from {@link #makeDistanceValueSource(com.spatial4j.core.shape.Point,double)}.
    ++   * on the distance from {@link #makeDistanceValueSource(org.locationtech.spatial4j.shape.Point,double)}.
    +    * The formula is {@code c/(d + c)} where 'd' is the distance and 'c' is
    +    * one tenth the distance to the farthest edge from the center. Thus the
    +    * scores will be 1 for indexed points at the center of the query shape and as
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/DistanceToShapeValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/DistanceToShapeValueSource.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/DistanceToShapeValueSource.java	2014-08-07 05:21:33.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/DistanceToShapeValueSource.java	2020-06-09 01:52:52.262846648 +0000
    +@@ -17,10 +17,10 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.context.SpatialContext;
    +-import com.spatial4j.core.distance.DistanceCalculator;
    +-import com.spatial4j.core.shape.Point;
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.context.SpatialContext;
    ++import org.locationtech.spatial4j.distance.DistanceCalculator;
    ++import org.locationtech.spatial4j.shape.Point;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.index.AtomicReaderContext;
    + import org.apache.lucene.queries.function.FunctionValues;
    + import org.apache.lucene.queries.function.ValueSource;
    +@@ -34,7 +34,7 @@
    + /**
    +  * The distance from a provided Point to a Point retrieved from a ValueSource via
    +  * {@link org.apache.lucene.queries.function.FunctionValues#objectVal(int)}. The distance
    +- * is calculated via a {@link com.spatial4j.core.distance.DistanceCalculator}.
    ++ * is calculated via a {@link org.locationtech.spatial4j.distance.DistanceCalculator}.
    +  *
    +  * @lucene.experimental
    +  */
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeAreaValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeAreaValueSource.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeAreaValueSource.java	2015-02-26 19:34:12.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeAreaValueSource.java	2020-06-09 01:52:52.258846589 +0000
    +@@ -17,8 +17,8 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.context.SpatialContext;
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.context.SpatialContext;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.index.AtomicReaderContext;
    + import org.apache.lucene.queries.function.FunctionValues;
    + import org.apache.lucene.queries.function.ValueSource;
    +@@ -33,7 +33,7 @@
    +  * The area of a Shape retrieved from a ValueSource via
    +  * {@link org.apache.lucene.queries.function.FunctionValues#objectVal(int)}.
    +  *
    +- * @see Shape#getArea(com.spatial4j.core.context.SpatialContext)
    ++ * @see Shape#getArea(org.locationtech.spatial4j.context.SpatialContext)
    +  *
    +  * @lucene.experimental
    +  */
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheDistanceValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheDistanceValueSource.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheDistanceValueSource.java	2013-07-24 17:25:11.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheDistanceValueSource.java	2020-06-09 01:52:52.262846648 +0000
    +@@ -17,9 +17,9 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.context.SpatialContext;
    +-import com.spatial4j.core.distance.DistanceCalculator;
    +-import com.spatial4j.core.shape.Point;
    ++import org.locationtech.spatial4j.context.SpatialContext;
    ++import org.locationtech.spatial4j.distance.DistanceCalculator;
    ++import org.locationtech.spatial4j.shape.Point;
    + import org.apache.lucene.index.AtomicReaderContext;
    + import org.apache.lucene.queries.function.FunctionValues;
    + import org.apache.lucene.queries.function.ValueSource;
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java	2014-03-12 18:14:05.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java	2020-06-09 01:52:52.262846648 +0000
    +@@ -17,7 +17,7 @@
    + 
    + package org.apache.lucene.spatial.util;
    + 
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.shape.Shape;
    + 
    + import java.util.ArrayList;
    + import java.util.List;
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java	2014-03-12 18:14:05.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java	2020-06-09 01:52:52.262846648 +0000
    +@@ -17,7 +17,7 @@
    + 
    + package org.apache.lucene.spatial.util;
    + 
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.index.*;
    + import org.apache.lucene.search.DocIdSetIterator;
    + import org.apache.lucene.util.BytesRef;
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapePredicateValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapePredicateValueSource.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/util/ShapePredicateValueSource.java	2014-08-07 05:21:33.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/util/ShapePredicateValueSource.java	2020-06-09 01:52:52.262846648 +0000
    +@@ -17,7 +17,7 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.index.AtomicReaderContext;
    + import org.apache.lucene.queries.function.FunctionValues;
    + import org.apache.lucene.queries.function.ValueSource;
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java	2013-07-24 17:25:11.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java	2020-06-09 01:52:52.246846413 +0000
    +@@ -17,8 +17,8 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.distance.DistanceCalculator;
    +-import com.spatial4j.core.shape.Point;
    ++import org.locationtech.spatial4j.distance.DistanceCalculator;
    ++import org.locationtech.spatial4j.shape.Point;
    + import org.apache.lucene.index.AtomicReader;
    + import org.apache.lucene.index.AtomicReaderContext;
    + import org.apache.lucene.queries.function.FunctionValues;
    +diff -urN lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/vector/PointVectorStrategy.java lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/vector/PointVectorStrategy.java
    +--- lucene-4.10.4/spatial/src/java/org/apache/lucene/spatial/vector/PointVectorStrategy.java	2013-07-24 17:25:11.000000000 +0000
    ++++ lucene-4.10.4.new/spatial/src/java/org/apache/lucene/spatial/vector/PointVectorStrategy.java	2020-06-09 01:52:52.246846413 +0000
    +@@ -17,11 +17,11 @@
    +  * limitations under the License.
    +  */
    + 
    +-import com.spatial4j.core.context.SpatialContext;
    +-import com.spatial4j.core.shape.Circle;
    +-import com.spatial4j.core.shape.Point;
    +-import com.spatial4j.core.shape.Rectangle;
    +-import com.spatial4j.core.shape.Shape;
    ++import org.locationtech.spatial4j.context.SpatialContext;
    ++import org.locationtech.spatial4j.shape.Circle;
    ++import org.locationtech.spatial4j.shape.Point;
    ++import org.locationtech.spatial4j.shape.Rectangle;
    ++import org.locationtech.spatial4j.shape.Shape;
    + import org.apache.lucene.document.DoubleField;
    + import org.apache.lucene.document.Field;
    + import org.apache.lucene.document.FieldType;
    +@@ -55,7 +55,7 @@
    +  * org.apache.lucene.spatial.query.SpatialOperation#Intersects} and {@link
    +  * SpatialOperation#IsWithin} is supported.
  • + *
  • Uses the FieldCache for +- * {@link #makeDistanceValueSource(com.spatial4j.core.shape.Point)} and for ++ * {@link #makeDistanceValueSource(org.locationtech.spatial4j.shape.Point)} and for + * searching with a Circle.
  • + * + * +@@ -63,7 +63,7 @@ + * This is a simple Strategy. Search works with {@link NumericRangeQuery}s on + * an x & y pair of fields. A Circle query does the same bbox query but adds a + * ValueSource filter on +- * {@link #makeDistanceValueSource(com.spatial4j.core.shape.Point)}. ++ * {@link #makeDistanceValueSource(org.locationtech.spatial4j.shape.Point)}. + *

    + * One performance shortcoming with this strategy is that a scenario involving + * both a search using a Circle and sort will result in calculations for the +@@ -109,7 +109,7 @@ + throw new UnsupportedOperationException("Can only index Point, not " + shape); + } + +- /** @see #createIndexableFields(com.spatial4j.core.shape.Shape) */ ++ /** @see #createIndexableFields(org.locationtech.spatial4j.shape.Shape) */ + public Field[] createIndexableFields(Point point) { + FieldType doubleFieldType = new FieldType(DoubleField.TYPE_NOT_STORED); + doubleFieldType.setNumericPrecisionStep(precisionStep); +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java 2014-08-20 17:18:37.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java 2020-06-09 01:52:52.266846707 +0000 +@@ -18,12 +18,12 @@ + */ + + import com.carrotsearch.randomizedtesting.annotations.Repeat; +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.context.SpatialContextFactory; +-import com.spatial4j.core.distance.DistanceUtils; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.impl.RectangleImpl; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.context.SpatialContextFactory; ++import org.locationtech.spatial4j.distance.DistanceUtils; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.impl.RectangleImpl; + import org.apache.lucene.document.FieldType; + import org.apache.lucene.search.Query; + import org.apache.lucene.spatial.SpatialMatchConcern; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java 2020-06-09 01:52:52.266846707 +0000 +@@ -19,9 +19,9 @@ + + import com.carrotsearch.randomizedtesting.annotations.Name; + import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.document.FieldType; + import org.apache.lucene.spatial.bbox.BBoxStrategy; + import org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/PortedSolr3Test.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/PortedSolr3Test.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/PortedSolr3Test.java 2014-03-12 18:14:05.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/PortedSolr3Test.java 2020-06-09 01:52:52.262846648 +0000 +@@ -19,10 +19,10 @@ + + import com.carrotsearch.randomizedtesting.annotations.Name; + import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.distance.DistanceUtils; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.distance.DistanceUtils; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.search.FilteredQuery; + import org.apache.lucene.search.MatchAllDocsQuery; + import org.apache.lucene.search.Query; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/JtsPolygonTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/JtsPolygonTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/JtsPolygonTest.java 2014-03-12 18:14:05.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/JtsPolygonTest.java 2020-06-09 01:52:52.270846766 +0000 +@@ -17,9 +17,9 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContextFactory; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContextFactory; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.Field.Store; +@@ -46,7 +46,7 @@ + try { + HashMap args = new HashMap<>(); + args.put("spatialContextFactory", +- "com.spatial4j.core.context.jts.JtsSpatialContextFactory"); ++ "org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory"); + ctx = SpatialContextFactory.makeSpatialContext(args, getClass().getClassLoader()); + } catch (NoClassDefFoundError e) { + assumeTrue("This test requires JTS jar: "+e, false); +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpFuzzyPrefixTreeTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpFuzzyPrefixTreeTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpFuzzyPrefixTreeTest.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpFuzzyPrefixTreeTest.java 2020-06-09 01:52:52.270846766 +0000 +@@ -18,14 +18,14 @@ + */ + + import com.carrotsearch.randomizedtesting.annotations.Repeat; +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.context.SpatialContextFactory; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.ShapeCollection; +-import com.spatial4j.core.shape.SpatialRelation; +-import com.spatial4j.core.shape.impl.RectangleImpl; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.context.SpatialContextFactory; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.ShapeCollection; ++import org.locationtech.spatial4j.shape.SpatialRelation; ++import org.locationtech.spatial4j.shape.impl.RectangleImpl; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.StoredField; +@@ -55,10 +55,10 @@ + import static com.carrotsearch.randomizedtesting.RandomizedTest.randomBoolean; + import static com.carrotsearch.randomizedtesting.RandomizedTest.randomInt; + import static com.carrotsearch.randomizedtesting.RandomizedTest.randomIntBetween; +-import static com.spatial4j.core.shape.SpatialRelation.CONTAINS; +-import static com.spatial4j.core.shape.SpatialRelation.DISJOINT; +-import static com.spatial4j.core.shape.SpatialRelation.INTERSECTS; +-import static com.spatial4j.core.shape.SpatialRelation.WITHIN; ++import static org.locationtech.spatial4j.shape.SpatialRelation.CONTAINS; ++import static org.locationtech.spatial4j.shape.SpatialRelation.DISJOINT; ++import static org.locationtech.spatial4j.shape.SpatialRelation.INTERSECTS; ++import static org.locationtech.spatial4j.shape.SpatialRelation.WITHIN; + + /** Randomized PrefixTree test that considers the fuzziness of the + * results introduced by grid approximation. */ +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpStrategyTestCase.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpStrategyTestCase.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpStrategyTestCase.java 2014-06-19 18:40:11.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpStrategyTestCase.java 2020-06-09 01:52:52.270846766 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.search.Query; + import org.apache.lucene.spatial.StrategyTestCase; + import org.apache.lucene.spatial.query.SpatialArgs; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/SpatialOpRecursivePrefixTreeTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/SpatialOpRecursivePrefixTreeTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/SpatialOpRecursivePrefixTreeTest.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/SpatialOpRecursivePrefixTreeTest.java 2020-06-09 01:52:52.274846825 +0000 +@@ -18,14 +18,14 @@ + */ + + import com.carrotsearch.randomizedtesting.annotations.Repeat; +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.context.SpatialContextFactory; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; +-import com.spatial4j.core.shape.ShapeCollection; +-import com.spatial4j.core.shape.SpatialRelation; +-import com.spatial4j.core.shape.impl.RectangleImpl; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.context.SpatialContextFactory; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; ++import org.locationtech.spatial4j.shape.ShapeCollection; ++import org.locationtech.spatial4j.shape.SpatialRelation; ++import org.locationtech.spatial4j.shape.impl.RectangleImpl; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.StoredField; +@@ -56,10 +56,10 @@ + import static com.carrotsearch.randomizedtesting.RandomizedTest.randomBoolean; + import static com.carrotsearch.randomizedtesting.RandomizedTest.randomInt; + import static com.carrotsearch.randomizedtesting.RandomizedTest.randomIntBetween; +-import static com.spatial4j.core.shape.SpatialRelation.CONTAINS; +-import static com.spatial4j.core.shape.SpatialRelation.DISJOINT; +-import static com.spatial4j.core.shape.SpatialRelation.INTERSECTS; +-import static com.spatial4j.core.shape.SpatialRelation.WITHIN; ++import static org.locationtech.spatial4j.shape.SpatialRelation.CONTAINS; ++import static org.locationtech.spatial4j.shape.SpatialRelation.DISJOINT; ++import static org.locationtech.spatial4j.shape.SpatialRelation.INTERSECTS; ++import static org.locationtech.spatial4j.shape.SpatialRelation.WITHIN; + + public class SpatialOpRecursivePrefixTreeTest extends StrategyTestCase { + +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/TestRecursivePrefixTreeStrategy.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/TestRecursivePrefixTreeStrategy.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/TestRecursivePrefixTreeStrategy.java 2014-03-18 05:31:24.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/TestRecursivePrefixTreeStrategy.java 2020-06-09 01:52:52.270846766 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.distance.DistanceUtils; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.distance.DistanceUtils; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.spatial.SpatialMatchConcern; + import org.apache.lucene.spatial.StrategyTestCase; + import org.apache.lucene.spatial.prefix.tree.GeohashPrefixTree; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java 2014-01-24 20:16:49.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java 2020-06-09 01:52:52.270846766 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.StoredField; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeTest.java 2014-04-18 02:07:04.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeTest.java 2020-06-09 01:52:52.270846766 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.Field.Store; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/query/SpatialArgsParserTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/query/SpatialArgsParserTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/query/SpatialArgsParserTest.java 2014-07-08 20:18:47.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/query/SpatialArgsParserTest.java 2020-06-09 01:52:52.274846825 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Rectangle; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Rectangle; + import org.apache.lucene.util.LuceneTestCase; + import org.junit.Test; + +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/QueryEqualsHashCodeTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/QueryEqualsHashCodeTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/QueryEqualsHashCodeTest.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/QueryEqualsHashCodeTest.java 2020-06-09 01:52:52.266846707 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Shape; + //import org.apache.lucene.spatial.bbox.BBoxStrategy; + import org.apache.lucene.spatial.bbox.BBoxStrategy; + import org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/serialized/SerializedStrategyTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/serialized/SerializedStrategyTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/serialized/SerializedStrategyTest.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/serialized/SerializedStrategyTest.java 2020-06-09 01:52:52.274846825 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; ++import org.locationtech.spatial4j.context.SpatialContext; + import org.apache.lucene.search.FilteredQuery; + import org.apache.lucene.search.MatchAllDocsQuery; + import org.apache.lucene.search.Query; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialArgsTest.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialArgsTest.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialArgsTest.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialArgsTest.java 2020-06-09 01:52:52.274846825 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.spatial.query.SpatialArgs; + import org.junit.Test; + +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java 2014-01-24 20:16:49.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java 2020-06-09 01:52:52.278846884 +0000 +@@ -17,10 +17,10 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.distance.DistanceUtils; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.distance.DistanceUtils; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.IntField; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java 2014-08-14 16:15:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java 2020-06-09 01:52:52.266846707 +0000 +@@ -17,9 +17,9 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Point; +-import com.spatial4j.core.shape.Rectangle; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Point; ++import org.locationtech.spatial4j.shape.Rectangle; + import org.apache.lucene.analysis.MockAnalyzer; + import org.apache.lucene.codecs.lucene410.Lucene410DocValuesFormat; + import org.apache.lucene.document.Document; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialTestData.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialTestData.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialTestData.java 2014-08-07 05:21:33.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialTestData.java 2020-06-09 01:52:52.274846825 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Shape; + + import java.io.BufferedReader; + import java.io.IOException; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialTestQuery.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialTestQuery.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/SpatialTestQuery.java 2014-03-31 20:43:48.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/SpatialTestQuery.java 2020-06-09 01:52:52.274846825 +0000 +@@ -17,7 +17,7 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; ++import org.locationtech.spatial4j.context.SpatialContext; + + import org.apache.lucene.spatial.query.SpatialArgs; + import org.apache.lucene.spatial.query.SpatialArgsParser; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java 2014-07-08 20:11:47.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java 2020-06-09 01:52:52.266846707 +0000 +@@ -18,8 +18,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Shape; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Shape; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; + import org.apache.lucene.document.StoredField; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/TestTestFramework.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/TestTestFramework.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/TestTestFramework.java 2014-03-12 18:14:05.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/TestTestFramework.java 2020-06-09 01:52:52.274846825 +0000 +@@ -17,8 +17,8 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Rectangle; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Rectangle; + import org.apache.lucene.spatial.query.SpatialArgsParser; + import org.apache.lucene.spatial.query.SpatialOperation; + import org.apache.lucene.util.LuceneTestCase; +diff -urN lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/vector/TestPointVectorStrategy.java lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/vector/TestPointVectorStrategy.java +--- lucene-4.10.4/spatial/src/test/org/apache/lucene/spatial/vector/TestPointVectorStrategy.java 2012-09-22 21:41:00.000000000 +0000 ++++ lucene-4.10.4.new/spatial/src/test/org/apache/lucene/spatial/vector/TestPointVectorStrategy.java 2020-06-09 01:52:52.266846707 +0000 +@@ -17,9 +17,9 @@ + * limitations under the License. + */ + +-import com.spatial4j.core.context.SpatialContext; +-import com.spatial4j.core.shape.Circle; +-import com.spatial4j.core.shape.Point; ++import org.locationtech.spatial4j.context.SpatialContext; ++import org.locationtech.spatial4j.shape.Circle; ++import org.locationtech.spatial4j.shape.Point; + import org.apache.lucene.search.Query; + import org.apache.lucene.spatial.SpatialMatchConcern; + import org.apache.lucene.spatial.StrategyTestCase;