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>

Reply via email to