This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opennlp.git
The following commit(s) were added to refs/heads/main by this push:
new 476e1b38d GH-1522: Download the 1.5 models from
downloads.sourceforge.net (#1523)
476e1b38d is described below
commit 476e1b38da26f5f45323c2c5133a5af4844602ab
Author: Richard Zowalla <[email protected]>
AuthorDate: Mon Nov 2 11:16:33 2026 +0100
GH-1522: Download the 1.5 models from downloads.sourceforge.net (#1523)
The project web copy at opennlp.sourceforge.net/models-1.5 returns 404. The
same files are still served from the SourceForge file release area, so the
tests and createPear.xml now use
https://downloads.sourceforge.net/project/opennlp/models-1.5/.
EnabledWhenCDNAvailable gets an optional path, probed with a HEAD request,
because the root of downloads.sourceforge.net returns 404.
---
.../opennlp/tools/AbstractModelLoaderTest.java | 2 +-
.../opennlp/tools/EnabledWhenCDNAvailable.java | 9 +++++++-
.../cmdline/chunker/ChunkerModelLoaderTest.java | 3 ++-
.../namefind/TokenNameFinderModelLoaderTest.java | 3 ++-
.../opennlp/tools/AbstractModelLoaderTest.java | 2 +-
.../opennlp/tools/EnabledWhenCDNAvailable.java | 9 +++++++-
.../java/opennlp/tools/postag/POSTaggerMETest.java | 12 +++++++----
opennlp-extensions/opennlp-uima/createPear.xml | 24 +++++++++++-----------
.../src/test/java/opennlp/uima/AbstractIT.java | 2 +-
.../java/opennlp/uima/FullAnnotatorsFlowIT.java | 3 ++-
.../test/java/opennlp/uima/SingleAnnotatorIT.java | 3 ++-
.../opennlp/tools/EnabledWhenCDNAvailable.java | 9 +++++++-
.../tools/namefind/AbstractNameFinderTest.java | 2 +-
.../tools/namefind/TokenNameFinderModelTest.java | 3 ++-
pom.xml | 2 +-
15 files changed, 59 insertions(+), 29 deletions(-)
diff --git
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
index 242aba9b9..dae7e3ada 100644
---
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
+++
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
@@ -36,7 +36,7 @@ public abstract class AbstractModelLoaderTest {
private static final Logger logger =
LoggerFactory.getLogger(AbstractModelLoaderTest.class);
- private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://opennlp.sourceforge.net/models-1.5/");
+ private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://downloads.sourceforge.net/project/opennlp/models-1.5/");
private static final String BASE_URL_MODELS_V183 =
System.getProperty("opennlp.model.v183.base.url",
"https://dlcdn.apache.org/opennlp/models/langdetect/1.8.3/");
protected static final Path OPENNLP_DIR =
Paths.get(System.getProperty("OPENNLP_DOWNLOAD_HOME",
System.getProperty("user.home"))).resolve(".opennlp");
diff --git
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
index d15f2707f..f0e50a2f3 100644
---
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
+++
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
@@ -43,6 +43,12 @@ public @interface EnabledWhenCDNAvailable {
String hostname();
+ /**
+ * The path of a resource on {@link #hostname()} that must be reachable,
starting with
+ * {@code /}. Empty to check the root of the host.
+ */
+ String path() default "";
+
int TIMEOUT_MS = 2000;
// JUnit5 execution condition to decide whether tests can assume CDN
downloads are possible (= online).
@@ -59,10 +65,11 @@ public @interface EnabledWhenCDNAvailable {
socket.connect(new InetSocketAddress(host, 443), TIMEOUT_MS);
// Then, try to check the HTTP status by making an HTTPS request
- final URL url = new URI("https://" + host).toURL();
+ final URL url = new URI("https://" + host +
annotation.path()).toURL();
final HttpsURLConnection connection = (HttpsURLConnection)
url.openConnection();
connection.setConnectTimeout(TIMEOUT_MS);
connection.setReadTimeout(TIMEOUT_MS);
+ connection.setRequestMethod("HEAD");
int statusCode = connection.getResponseCode();
// If the HTTP status code indicates success (2xx range), return
enabled
diff --git
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/chunker/ChunkerModelLoaderTest.java
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/chunker/ChunkerModelLoaderTest.java
index 25436f861..bb449c863 100644
---
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/chunker/ChunkerModelLoaderTest.java
+++
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/chunker/ChunkerModelLoaderTest.java
@@ -31,7 +31,8 @@ import opennlp.tools.AbstractModelLoaderTest;
import opennlp.tools.EnabledWhenCDNAvailable;
import opennlp.tools.chunker.ChunkerModel;
-@EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+@EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
public class ChunkerModelLoaderTest extends AbstractModelLoaderTest {
// SUT
diff --git
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoaderTest.java
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoaderTest.java
index 662866397..25b383c22 100644
---
a/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoaderTest.java
+++
b/opennlp-core/opennlp-cli/src/test/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoaderTest.java
@@ -31,7 +31,8 @@ import opennlp.tools.AbstractModelLoaderTest;
import opennlp.tools.EnabledWhenCDNAvailable;
import opennlp.tools.namefind.TokenNameFinderModel;
-@EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+@EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
public class TokenNameFinderModelLoaderTest extends AbstractModelLoaderTest {
// SUT
diff --git
a/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
b/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
index 242aba9b9..dae7e3ada 100644
---
a/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
+++
b/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/AbstractModelLoaderTest.java
@@ -36,7 +36,7 @@ public abstract class AbstractModelLoaderTest {
private static final Logger logger =
LoggerFactory.getLogger(AbstractModelLoaderTest.class);
- private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://opennlp.sourceforge.net/models-1.5/");
+ private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://downloads.sourceforge.net/project/opennlp/models-1.5/");
private static final String BASE_URL_MODELS_V183 =
System.getProperty("opennlp.model.v183.base.url",
"https://dlcdn.apache.org/opennlp/models/langdetect/1.8.3/");
protected static final Path OPENNLP_DIR =
Paths.get(System.getProperty("OPENNLP_DOWNLOAD_HOME",
System.getProperty("user.home"))).resolve(".opennlp");
diff --git
a/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
b/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
index d15f2707f..f0e50a2f3 100644
---
a/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
+++
b/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
@@ -43,6 +43,12 @@ public @interface EnabledWhenCDNAvailable {
String hostname();
+ /**
+ * The path of a resource on {@link #hostname()} that must be reachable,
starting with
+ * {@code /}. Empty to check the root of the host.
+ */
+ String path() default "";
+
int TIMEOUT_MS = 2000;
// JUnit5 execution condition to decide whether tests can assume CDN
downloads are possible (= online).
@@ -59,10 +65,11 @@ public @interface EnabledWhenCDNAvailable {
socket.connect(new InetSocketAddress(host, 443), TIMEOUT_MS);
// Then, try to check the HTTP status by making an HTTPS request
- final URL url = new URI("https://" + host).toURL();
+ final URL url = new URI("https://" + host +
annotation.path()).toURL();
final HttpsURLConnection connection = (HttpsURLConnection)
url.openConnection();
connection.setConnectTimeout(TIMEOUT_MS);
connection.setReadTimeout(TIMEOUT_MS);
+ connection.setRequestMethod("HEAD");
int statusCode = connection.getResponseCode();
// If the HTTP status code indicates success (2xx range), return
enabled
diff --git
a/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/postag/POSTaggerMETest.java
b/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/postag/POSTaggerMETest.java
index 1dd19991d..ebd80d6fb 100644
---
a/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/postag/POSTaggerMETest.java
+++
b/opennlp-core/opennlp-runtime/src/test/java/opennlp/tools/postag/POSTaggerMETest.java
@@ -105,7 +105,8 @@ public class POSTaggerMETest extends
AbstractModelLoaderTest {
}
@Test
- @EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+ @EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
void testPOSTaggerLegacyPerceptronPennToUD() throws IOException {
final String[] expected = {"DET", "NOUN", "VERB", "ADV", "VERB", "ADP",
"DET", "NOUN", "PUNCT"};
//convert PENN to UD on the fly.
@@ -114,7 +115,8 @@ public class POSTaggerMETest extends
AbstractModelLoaderTest {
}
@Test
- @EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+ @EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
void testPOSTaggerLegacyPerceptronPenn() throws IOException {
final String[] expected = {"DT", "NN", "VBD", "RB", "VBN", "IN", "DT",
"NN", "."};
//convert PENN to UD on the fly.
@@ -123,7 +125,8 @@ public class POSTaggerMETest extends
AbstractModelLoaderTest {
}
@Test
- @EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+ @EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
void testPOSTaggerLegacyMaxentPennToUD() throws IOException {
final String[] expected = {"DET", "NOUN", "VERB", "ADV", "VERB", "ADP",
"DET", "NOUN", "PUNCT"};
//convert PENN to UD on the fly.
@@ -132,7 +135,8 @@ public class POSTaggerMETest extends
AbstractModelLoaderTest {
}
@Test
- @EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+ @EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
void testPOSTaggerLegacyMaxentPenn() throws IOException {
final String[] expected = {"DT", "NN", "VBD", "RB", "VBN", "IN", "DT",
"NN", "."};
//convert PENN to UD on the fly.
diff --git a/opennlp-extensions/opennlp-uima/createPear.xml
b/opennlp-extensions/opennlp-uima/createPear.xml
index 9fecb265c..673a0da59 100644
--- a/opennlp-extensions/opennlp-uima/createPear.xml
+++ b/opennlp-extensions/opennlp-uima/createPear.xml
@@ -71,18 +71,18 @@
<mkdir dir="${modelDir}" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-token.bin"
dest="${modelDir}/en-token.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-sent.bin"
dest="${modelDir}/en-sent.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-date.bin"
dest="${modelDir}/en-ner-date.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-location.bin"
dest="${modelDir}/en-ner-location.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-money.bin"
dest="${modelDir}/en-ner-money.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-organization.bin"
dest="${modelDir}/en-ner-organization.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-percentage.bin"
dest="${modelDir}/en-ner-percentage.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-person.bin"
dest="${modelDir}/en-ner-person.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-ner-time.bin"
dest="${modelDir}/en-ner-time.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-pos-maxent.bin"
dest="${modelDir}/en-pos-maxent.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-parser-chunking.bin"
dest="${modelDir}/en-parser-chunking.bin" />
- <get
src="http://opennlp.sourceforge.net/models-1.5/en-chunker.bin"
dest="${modelDir}/en-chunker.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-token.bin"
dest="${modelDir}/en-token.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-sent.bin"
dest="${modelDir}/en-sent.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-date.bin"
dest="${modelDir}/en-ner-date.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-location.bin"
dest="${modelDir}/en-ner-location.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-money.bin"
dest="${modelDir}/en-ner-money.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-organization.bin"
dest="${modelDir}/en-ner-organization.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-percentage.bin"
dest="${modelDir}/en-ner-percentage.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-person.bin"
dest="${modelDir}/en-ner-person.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-ner-time.bin"
dest="${modelDir}/en-ner-time.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-pos-maxent.bin"
dest="${modelDir}/en-pos-maxent.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-parser-chunking.bin"
dest="${modelDir}/en-parser-chunking.bin" />
+ <get
src="https://downloads.sourceforge.net/project/opennlp/models-1.5/en-chunker.bin"
dest="${modelDir}/en-chunker.bin" />
<!-- Create pear zip file-->
<zip destfile="target/OpenNlpTextAnalyzer.pear"
basedir="${pearDir}" />
diff --git
a/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/AbstractIT.java
b/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/AbstractIT.java
index af7615e22..46f460e45 100644
--- a/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/AbstractIT.java
+++ b/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/AbstractIT.java
@@ -55,7 +55,7 @@ abstract class AbstractIT extends AbstractUimaTest {
protected static final String BIN = ".bin";
- private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://opennlp.sourceforge.net/models-1.5/");
+ private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://downloads.sourceforge.net/project/opennlp/models-1.5/");
@BeforeAll
public static void initEnv() throws IOException {
diff --git
a/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/FullAnnotatorsFlowIT.java
b/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/FullAnnotatorsFlowIT.java
index 84e3e9696..4177a94cd 100644
---
a/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/FullAnnotatorsFlowIT.java
+++
b/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/FullAnnotatorsFlowIT.java
@@ -35,7 +35,8 @@ import static org.junit.jupiter.api.Assertions.fail;
/**
* Test for initialization of the opennlp.uima Annotators classes.
*/
-@EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+@EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
public class FullAnnotatorsFlowIT extends AbstractIT {
private static final String DOCUMENT_TEXT =
diff --git
a/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/SingleAnnotatorIT.java
b/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/SingleAnnotatorIT.java
index 9abea9689..93da7bd4e 100644
---
a/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/SingleAnnotatorIT.java
+++
b/opennlp-extensions/opennlp-uima/src/test/java/opennlp/uima/SingleAnnotatorIT.java
@@ -35,7 +35,8 @@ import static org.junit.jupiter.api.Assertions.fail;
/**
* Test for initialization of the opennlp.uima Annotators classes.
*/
-@EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+@EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
public class SingleAnnotatorIT extends AbstractIT {
private static final String DOCUMENT_TEXT =
diff --git
a/opennlp-tools/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
b/opennlp-tools/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
index d15f2707f..f0e50a2f3 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/EnabledWhenCDNAvailable.java
@@ -43,6 +43,12 @@ public @interface EnabledWhenCDNAvailable {
String hostname();
+ /**
+ * The path of a resource on {@link #hostname()} that must be reachable,
starting with
+ * {@code /}. Empty to check the root of the host.
+ */
+ String path() default "";
+
int TIMEOUT_MS = 2000;
// JUnit5 execution condition to decide whether tests can assume CDN
downloads are possible (= online).
@@ -59,10 +65,11 @@ public @interface EnabledWhenCDNAvailable {
socket.connect(new InetSocketAddress(host, 443), TIMEOUT_MS);
// Then, try to check the HTTP status by making an HTTPS request
- final URL url = new URI("https://" + host).toURL();
+ final URL url = new URI("https://" + host +
annotation.path()).toURL();
final HttpsURLConnection connection = (HttpsURLConnection)
url.openConnection();
connection.setConnectTimeout(TIMEOUT_MS);
connection.setReadTimeout(TIMEOUT_MS);
+ connection.setRequestMethod("HEAD");
int statusCode = connection.getResponseCode();
// If the HTTP status code indicates success (2xx range), return
enabled
diff --git
a/opennlp-tools/src/test/java/opennlp/tools/namefind/AbstractNameFinderTest.java
b/opennlp-tools/src/test/java/opennlp/tools/namefind/AbstractNameFinderTest.java
index d1a590bd0..70a896c79 100644
---
a/opennlp-tools/src/test/java/opennlp/tools/namefind/AbstractNameFinderTest.java
+++
b/opennlp-tools/src/test/java/opennlp/tools/namefind/AbstractNameFinderTest.java
@@ -48,7 +48,7 @@ abstract class AbstractNameFinderTest {
protected static final Path OPENNLP_DIR =
Paths.get(System.getProperty("OPENNLP_DOWNLOAD_HOME",
System.getProperty("user.home"))).resolve(".opennlp");
- private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://opennlp.sourceforge.net/models-1.5/");
+ private static final String BASE_URL_MODELS_V15 =
System.getProperty("opennlp.model.v15.base.url",
"https://downloads.sourceforge.net/project/opennlp/models-1.5/");
protected static boolean hasOtherAsOutcome(TokenNameFinderModel
nameFinderModel) {
SequenceClassificationModel model =
nameFinderModel.getNameFinderSequenceModel();
diff --git
a/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderModelTest.java
b/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderModelTest.java
index 125435552..ff654caf0 100644
---
a/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderModelTest.java
+++
b/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderModelTest.java
@@ -139,7 +139,8 @@ public class TokenNameFinderModelTest extends
AbstractNameFinderTest {
/*
* OPENNLP-1369
*/
- @EnabledWhenCDNAvailable(hostname = "opennlp.sourceforge.net")
+ @EnabledWhenCDNAvailable(hostname = "downloads.sourceforge.net",
+ path = "/project/opennlp/models-1.5/en-token.bin")
@Test
void testNERWithPOSModelV15() throws IOException, URISyntaxException {
diff --git a/pom.xml b/pom.xml
index 2acdbf409..0a8587434 100644
--- a/pom.xml
+++ b/pom.xml
@@ -257,7 +257,7 @@
<opennlp.models.version>1.3.0</opennlp.models.version>
<!-- Old OpenNLP models are hosted on Sourceforge. Set a
default. -->
-
<opennlp.model.v15.base.url>https://opennlp.sourceforge.net/models-1.5/</opennlp.model.v15.base.url>
+
<opennlp.model.v15.base.url>https://downloads.sourceforge.net/project/opennlp/models-1.5/</opennlp.model.v15.base.url>
<!-- Dependency versions -->
<commons-secure-xml.version>1.1.0</commons-secure-xml.version>