This is an automated email from the ASF dual-hosted git repository. mawiesne pushed a commit to branch update-opennlp-dep-towards-3.x in repository https://gitbox.apache.org/repos/asf/opennlp-sandbox.git
commit 9ee79d79976c6b712545b59543cfba9b9d34c146 Author: Martin Wiesner <[email protected]> AuthorDate: Fri Mar 20 21:47:36 2026 +0100 Updates sandbox components to use modular OpenNLP 3.0.0-M1 - adapts version in pom files - adapts towards more fine-grained use of modular OpenNLP components - adapts classes with missing generic types - removes use of `new URL(..)` - bumps snapshot version for next dev iteration --- .github/workflows/maven.yml | 7 +++--- caseditor-corpus-server-plugin/pom.xml | 5 ++--- caseditor-opennlp-plugin/pom.xml | 7 +++--- corpus-server/corpus-server-connector/pom.xml | 9 ++++---- corpus-server/corpus-server-core/pom.xml | 2 +- corpus-server/corpus-server-impl/pom.xml | 5 ++--- corpus-server/corpus-server-tools/pom.xml | 3 +-- corpus-server/pom.xml | 4 ++-- mahout-addon/pom.xml | 7 +++--- .../mahout/AbstractOnlineLearnerTrainer.java | 6 +++--- .../mahout/AdaptiveLogisticRegressionTrainer.java | 8 ++----- .../addons/mahout/LogisticRegressionTrainer.java | 8 ++----- .../mahout/OnlineLogisticRegressionTrainer.java | 7 ++---- .../addons/mahout/PassiveAggressiveTrainer.java | 7 ++---- mallet-addon/pom.xml | 8 +++---- .../java/opennlp/addons/mallet/CRFTrainer.java | 6 +++++- .../java/opennlp/addons/mallet/MaxentTrainer.java | 6 ++++-- modelbuilder-addon/pom.xml | 10 ++++++--- nlp-utils/pom.xml | 3 +-- opennlp-brat-annotator/pom.xml | 4 ++-- opennlp-coref/pom.xml | 5 ++--- .../opennlp/tools/coref/AbstractCorefTest.java | 12 ++++++++++- opennlp-dl/pom.xml | 12 +++++++---- opennlp-grpc/README.md | 2 +- opennlp-grpc/opennlp-grpc-api/pom.xml | 2 +- opennlp-grpc/opennlp-grpc-service/pom.xml | 6 +++--- .../src/main/java/opennlp/OpenNLPServer.java | 2 +- .../service/classpath/DirectoryModelFinder.java | 16 +++++++++++--- .../service/exception/ServiceException.java | 5 +++++ opennlp-grpc/pom.xml | 2 +- opennlp-similarity/pom.xml | 14 ++++++------ opennlp-wsd/pom.xml | 13 ++++++----- pom.xml | 25 ++++++++++++++-------- summarizer/pom.xml | 7 +++--- tagging-server/pom.xml | 5 ++--- tf-ner-poc/pom.xml | 5 ++--- wikinews-importer/pom.xml | 3 +-- 37 files changed, 140 insertions(+), 118 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index a0e82a8..1a24e93 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -16,7 +16,7 @@ name: Java CI on: - # Run CI on Pushes to "master"" or on pull requests targeting "master". + # Run CI on Pushes to "main or on pull requests targeting "main". push: branches: - main @@ -28,7 +28,6 @@ on: jobs: build: runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: @@ -36,7 +35,7 @@ jobs: java: [ 21, 25 ] experimental: [false] # include: -# - java: 25-ea +# - java: 26-ea # os: ubuntu-latest # experimental: true @@ -54,6 +53,6 @@ jobs: distribution: temurin java-version: ${{ matrix.java }} - name: Build with Maven - run: mvn -V clean test install --no-transfer-progress -Pjacoco + run: mvn -V clean test verify --no-transfer-progress -Pjacoco - name: Jacoco run: mvn jacoco:report diff --git a/caseditor-corpus-server-plugin/pom.xml b/caseditor-corpus-server-plugin/pom.xml index 303b773..4645710 100644 --- a/caseditor-corpus-server-plugin/pom.xml +++ b/caseditor-corpus-server-plugin/pom.xml @@ -23,13 +23,12 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>caseditor-corpus-server-plugin</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> <name>Apache OpenNLP CasEditor Corpus Server Plugin</name> + <packaging>jar</packaging> <repositories> <repository> diff --git a/caseditor-opennlp-plugin/pom.xml b/caseditor-opennlp-plugin/pom.xml index 9f3a921..9a2261e 100644 --- a/caseditor-opennlp-plugin/pom.xml +++ b/caseditor-opennlp-plugin/pom.xml @@ -23,13 +23,12 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>caseditor-opennlp-plugin</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> <name>Apache OpenNLP CasEditor Plugin</name> + <packaging>jar</packaging> <repositories> <repository> @@ -52,7 +51,7 @@ <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> <!-- UIMA dependencies --> diff --git a/corpus-server/corpus-server-connector/pom.xml b/corpus-server/corpus-server-connector/pom.xml index 446c07e..672d5e7 100644 --- a/corpus-server/corpus-server-connector/pom.xml +++ b/corpus-server/corpus-server-connector/pom.xml @@ -24,13 +24,12 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>corpus-server-connector</artifactId> - <packaging>jar</packaging> - <name>Apache OpenNLP Corpus Server UIMA Connector</name> + <packaging>jar</packaging> <dependencies> <dependency> @@ -70,14 +69,14 @@ <dependency> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server-core</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server-impl</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> <scope>test</scope> </dependency> diff --git a/corpus-server/corpus-server-core/pom.xml b/corpus-server/corpus-server-core/pom.xml index 7f5af4a..afc4b7f 100644 --- a/corpus-server/corpus-server-core/pom.xml +++ b/corpus-server/corpus-server-core/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>corpus-server-core</artifactId> diff --git a/corpus-server/corpus-server-impl/pom.xml b/corpus-server/corpus-server-impl/pom.xml index c86f2cb..37059b4 100644 --- a/corpus-server/corpus-server-impl/pom.xml +++ b/corpus-server/corpus-server-impl/pom.xml @@ -24,11 +24,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>corpus-server-impl</artifactId> - <version>2.5.8-SNAPSHOT</version> <packaging>bundle</packaging> <name>Apache OpenNLP Corpus Server Implementation</name> @@ -37,7 +36,7 @@ <dependency> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server-core</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> <scope>provided</scope> </dependency> diff --git a/corpus-server/corpus-server-tools/pom.xml b/corpus-server/corpus-server-tools/pom.xml index 4877cfb..5b6ad87 100644 --- a/corpus-server/corpus-server-tools/pom.xml +++ b/corpus-server/corpus-server-tools/pom.xml @@ -24,11 +24,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>corpus-server</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>corpus-server-tools</artifactId> - <version>2.1.1-incubating-SNAPSHOT</version> <packaging>jar</packaging> <name>Apache OpenNLP Corpus Server Shell</name> diff --git a/corpus-server/pom.xml b/corpus-server/pom.xml index 0d2b2cc..f10d10e 100644 --- a/corpus-server/pom.xml +++ b/corpus-server/pom.xml @@ -24,11 +24,11 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>corpus-server</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Apache OpenNLP Corpus Server</name> diff --git a/mahout-addon/pom.xml b/mahout-addon/pom.xml index cf496e7..34b3bd1 100644 --- a/mahout-addon/pom.xml +++ b/mahout-addon/pom.xml @@ -24,18 +24,17 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>mahout-addon</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> <name>Apache OpenNLP Mahout Addon</name> + <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> <dependency> diff --git a/mahout-addon/src/main/java/opennlp/addons/mahout/AbstractOnlineLearnerTrainer.java b/mahout-addon/src/main/java/opennlp/addons/mahout/AbstractOnlineLearnerTrainer.java index 0929b84..c04a7cf 100644 --- a/mahout-addon/src/main/java/opennlp/addons/mahout/AbstractOnlineLearnerTrainer.java +++ b/mahout-addon/src/main/java/opennlp/addons/mahout/AbstractOnlineLearnerTrainer.java @@ -29,7 +29,7 @@ import opennlp.tools.ml.AbstractEventTrainer; import opennlp.tools.ml.model.DataIndexer; import opennlp.tools.util.TrainingParameters; -abstract class AbstractOnlineLearnerTrainer extends AbstractEventTrainer { +abstract class AbstractOnlineLearnerTrainer extends AbstractEventTrainer<TrainingParameters> { protected int iterations; @@ -41,7 +41,7 @@ abstract class AbstractOnlineLearnerTrainer extends AbstractEventTrainer { iterations = trainParams.getIntParameter("Iterations", 20); } - protected void trainOnlineLearner(DataIndexer indexer, org.apache.mahout.classifier.OnlineLearner pa) { + protected void trainOnlineLearner(DataIndexer<TrainingParameters> indexer, org.apache.mahout.classifier.OnlineLearner pa) { int cardinality = indexer.getPredLabels().length; int[] outcomes = indexer.getOutcomeList(); @@ -59,7 +59,7 @@ abstract class AbstractOnlineLearnerTrainer extends AbstractEventTrainer { } } - protected Map<String, Integer> createPrepMap(DataIndexer indexer) { + protected Map<String, Integer> createPrepMap(DataIndexer<TrainingParameters> indexer) { Map<String, Integer> predMap = new HashMap<>(); String[] predLabels = indexer.getPredLabels(); diff --git a/mahout-addon/src/main/java/opennlp/addons/mahout/AdaptiveLogisticRegressionTrainer.java b/mahout-addon/src/main/java/opennlp/addons/mahout/AdaptiveLogisticRegressionTrainer.java index 9c19abd..b567493 100644 --- a/mahout-addon/src/main/java/opennlp/addons/mahout/AdaptiveLogisticRegressionTrainer.java +++ b/mahout-addon/src/main/java/opennlp/addons/mahout/AdaptiveLogisticRegressionTrainer.java @@ -24,6 +24,7 @@ import java.util.Map; import opennlp.tools.ml.model.DataIndexer; import opennlp.tools.ml.model.MaxentModel; +import opennlp.tools.util.TrainingParameters; import org.apache.mahout.classifier.sgd.AdaptiveLogisticRegression; import org.apache.mahout.classifier.sgd.L1; @@ -35,7 +36,7 @@ public class AdaptiveLogisticRegressionTrainer extends AbstractOnlineLearnerTrai } @Override - public MaxentModel doTrain(DataIndexer indexer) throws IOException { + public MaxentModel doTrain(DataIndexer<TrainingParameters> indexer) throws IOException { // TODO: Lets use the predMap here as well for encoding int numberOfOutcomes = indexer.getOutcomeLabels().length; @@ -61,9 +62,4 @@ public class AdaptiveLogisticRegressionTrainer extends AbstractOnlineLearnerTrai return new VectorClassifierModel(pa.getBest().getPayload().getLearner(), indexer.getOutcomeLabels(), createPrepMap(indexer)); } - - @Override - public boolean isSortAndMerge() { - return true; - } } diff --git a/mahout-addon/src/main/java/opennlp/addons/mahout/LogisticRegressionTrainer.java b/mahout-addon/src/main/java/opennlp/addons/mahout/LogisticRegressionTrainer.java index 1b9d555..80a1f67 100644 --- a/mahout-addon/src/main/java/opennlp/addons/mahout/LogisticRegressionTrainer.java +++ b/mahout-addon/src/main/java/opennlp/addons/mahout/LogisticRegressionTrainer.java @@ -25,6 +25,7 @@ import java.util.Map; import opennlp.tools.ml.model.DataIndexer; import opennlp.tools.ml.model.MaxentModel; +import opennlp.tools.util.TrainingParameters; import org.apache.mahout.classifier.sgd.AdaptiveLogisticRegression; import org.apache.mahout.classifier.sgd.L1; @@ -36,7 +37,7 @@ public class LogisticRegressionTrainer extends AbstractOnlineLearnerTrainer { } @Override - public MaxentModel doTrain(DataIndexer indexer) throws IOException { + public MaxentModel doTrain(DataIndexer<TrainingParameters> indexer) throws IOException { // TODO: Lets use the predMap here as well for encoding @@ -82,11 +83,6 @@ public class LogisticRegressionTrainer extends AbstractOnlineLearnerTrainer { return new VectorClassifierModel(pa.getBest().getPayload().getLearner(), indexer.getOutcomeLabels(), predMap); -// return new VectorClassifierModel(pa, indexer.getOutcomeLabels(), predMap); } - @Override - public boolean isSortAndMerge() { - return true; - } } diff --git a/mahout-addon/src/main/java/opennlp/addons/mahout/OnlineLogisticRegressionTrainer.java b/mahout-addon/src/main/java/opennlp/addons/mahout/OnlineLogisticRegressionTrainer.java index ee23b9c..7850027 100644 --- a/mahout-addon/src/main/java/opennlp/addons/mahout/OnlineLogisticRegressionTrainer.java +++ b/mahout-addon/src/main/java/opennlp/addons/mahout/OnlineLogisticRegressionTrainer.java @@ -24,6 +24,7 @@ import java.util.Map; import opennlp.tools.ml.model.DataIndexer; import opennlp.tools.ml.model.MaxentModel; +import opennlp.tools.util.TrainingParameters; import org.apache.mahout.classifier.sgd.L1; import org.apache.mahout.classifier.sgd.OnlineLogisticRegression; @@ -35,7 +36,7 @@ public class OnlineLogisticRegressionTrainer extends AbstractOnlineLearnerTraine } @Override - public MaxentModel doTrain(DataIndexer indexer) throws IOException { + public MaxentModel doTrain(DataIndexer<TrainingParameters> indexer) throws IOException { // TODO: Lets use the predMap here as well for encoding int numberOfOutcomes = indexer.getOutcomeLabels().length; @@ -60,8 +61,4 @@ public class OnlineLogisticRegressionTrainer extends AbstractOnlineLearnerTraine return new VectorClassifierModel(pa, indexer.getOutcomeLabels(), createPrepMap(indexer)); } - @Override - public boolean isSortAndMerge() { - return true; - } } diff --git a/mahout-addon/src/main/java/opennlp/addons/mahout/PassiveAggressiveTrainer.java b/mahout-addon/src/main/java/opennlp/addons/mahout/PassiveAggressiveTrainer.java index 369724f..643bb76 100644 --- a/mahout-addon/src/main/java/opennlp/addons/mahout/PassiveAggressiveTrainer.java +++ b/mahout-addon/src/main/java/opennlp/addons/mahout/PassiveAggressiveTrainer.java @@ -24,6 +24,7 @@ import java.util.Map; import opennlp.tools.ml.model.DataIndexer; import opennlp.tools.ml.model.MaxentModel; +import opennlp.tools.util.TrainingParameters; import org.apache.mahout.classifier.sgd.PassiveAggressive; @@ -34,7 +35,7 @@ public class PassiveAggressiveTrainer extends AbstractOnlineLearnerTrainer { } @Override - public MaxentModel doTrain(DataIndexer indexer) throws IOException { + public MaxentModel doTrain(DataIndexer<TrainingParameters> indexer) throws IOException { // TODO: Lets use the predMap here as well for encoding int numberOfOutcomes = indexer.getOutcomeLabels().length; @@ -54,8 +55,4 @@ public class PassiveAggressiveTrainer extends AbstractOnlineLearnerTrainer { return new VectorClassifierModel(pa, indexer.getOutcomeLabels(), createPrepMap(indexer)); } - @Override - public boolean isSortAndMerge() { - return true; - } } diff --git a/mallet-addon/pom.xml b/mallet-addon/pom.xml index 0d2a283..b950270 100644 --- a/mallet-addon/pom.xml +++ b/mallet-addon/pom.xml @@ -24,20 +24,18 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <groupId>kottmann.opennlp</groupId> <artifactId>mallet-addon</artifactId> - <version>2.5.8-SNAPSHOT</version> - - <packaging>jar</packaging> <name>Apache OpenNLP Mallet Addon</name> + <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> <version>${opennlp.tools.version}</version> </dependency> diff --git a/mallet-addon/src/main/java/opennlp/addons/mallet/CRFTrainer.java b/mallet-addon/src/main/java/opennlp/addons/mallet/CRFTrainer.java index 11cd4b7..98a5ba9 100644 --- a/mallet-addon/src/main/java/opennlp/addons/mallet/CRFTrainer.java +++ b/mallet-addon/src/main/java/opennlp/addons/mallet/CRFTrainer.java @@ -28,6 +28,8 @@ import opennlp.tools.ml.model.Event; import opennlp.tools.ml.model.Sequence; import opennlp.tools.ml.model.SequenceClassificationModel; import opennlp.tools.ml.model.SequenceStream; +import opennlp.tools.util.TrainingParameters; + import cc.mallet.fst.CRF; import cc.mallet.fst.CRFOptimizableByLabelLikelihood; import cc.mallet.fst.CRFTrainerByValueGradients; @@ -45,7 +47,9 @@ import cc.mallet.types.LabelSequence; // Transducer should be abstract, we have two CRF and HMM. // For HMM we don't need to generate any features (how to do that nicely?!) // Dummy feature generator ?! -public class CRFTrainer extends AbstractTrainer implements SequenceTrainer { +public class CRFTrainer + extends AbstractTrainer<TrainingParameters> + implements SequenceTrainer<TrainingParameters> { private int[] getOrders() { String[] ordersString = "0,1".split(","); diff --git a/mallet-addon/src/main/java/opennlp/addons/mallet/MaxentTrainer.java b/mallet-addon/src/main/java/opennlp/addons/mallet/MaxentTrainer.java index cfcb294..b9e2aa5 100644 --- a/mallet-addon/src/main/java/opennlp/addons/mallet/MaxentTrainer.java +++ b/mallet-addon/src/main/java/opennlp/addons/mallet/MaxentTrainer.java @@ -26,6 +26,8 @@ import java.util.Collection; import opennlp.tools.ml.AbstractEventTrainer; import opennlp.tools.ml.model.DataIndexer; import opennlp.tools.ml.model.MaxentModel; +import opennlp.tools.util.TrainingParameters; + import cc.mallet.classify.Classifier; import cc.mallet.classify.MaxEntTrainer; import cc.mallet.types.Alphabet; @@ -34,7 +36,7 @@ import cc.mallet.types.Instance; import cc.mallet.types.InstanceList; import cc.mallet.types.LabelAlphabet; -public class MaxentTrainer extends AbstractEventTrainer { +public class MaxentTrainer extends AbstractEventTrainer<TrainingParameters> { @Override public boolean isSortAndMerge() { @@ -42,7 +44,7 @@ public class MaxentTrainer extends AbstractEventTrainer { } @Override - public MaxentModel doTrain(DataIndexer indexer) throws IOException { + public MaxentModel doTrain(DataIndexer<TrainingParameters> indexer) throws IOException { int numFeatures = indexer.getPredLabels().length; diff --git a/modelbuilder-addon/pom.xml b/modelbuilder-addon/pom.xml index 2a2be56..de0d46d 100644 --- a/modelbuilder-addon/pom.xml +++ b/modelbuilder-addon/pom.xml @@ -22,11 +22,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>modelbuilder-addon</artifactId> - <version>2.5.8-SNAPSHOT</version> <packaging>jar</packaging> <name>Apache OpenNLP ModelBuilder Addon</name> @@ -38,7 +37,12 @@ <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.opennlp</groupId> + <artifactId>opennlp-formats</artifactId> </dependency> <dependency> diff --git a/nlp-utils/pom.xml b/nlp-utils/pom.xml index 727749f..976db5f 100644 --- a/nlp-utils/pom.xml +++ b/nlp-utils/pom.xml @@ -23,11 +23,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>nlp-utils</artifactId> - <version>2.5.8-SNAPSHOT</version> <name>Apache OpenNLP Utils</name> <dependencies> diff --git a/opennlp-brat-annotator/pom.xml b/opennlp-brat-annotator/pom.xml index 2cd0550..9c12d0d 100644 --- a/opennlp-brat-annotator/pom.xml +++ b/opennlp-brat-annotator/pom.xml @@ -17,7 +17,7 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-brat-annotator</artifactId> @@ -73,7 +73,7 @@ <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> <dependency> diff --git a/opennlp-coref/pom.xml b/opennlp-coref/pom.xml index db5f17a..6a1ade6 100644 --- a/opennlp-coref/pom.xml +++ b/opennlp-coref/pom.xml @@ -24,13 +24,12 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-coref</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> <name>Apache OpenNLP Coreferencer</name> + <packaging>jar</packaging> <properties> <wordnet-dict.version>3.1</wordnet-dict.version> diff --git a/opennlp-coref/src/test/java/opennlp/tools/coref/AbstractCorefTest.java b/opennlp-coref/src/test/java/opennlp/tools/coref/AbstractCorefTest.java index bebcfdb..db1e58d 100644 --- a/opennlp-coref/src/test/java/opennlp/tools/coref/AbstractCorefTest.java +++ b/opennlp-coref/src/test/java/opennlp/tools/coref/AbstractCorefTest.java @@ -20,6 +20,8 @@ package opennlp.tools.coref; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -39,7 +41,15 @@ public abstract class AbstractCorefTest { protected static final String MODEL_TRAINING_DIR = "/models/training"; protected static void downloadVersion15Model(String modelName) throws IOException { - downloadModel(new URL(BASE_URL_MODELS_V15 + modelName)); + downloadModel(toModelURL(BASE_URL_MODELS_V15 + modelName)); + } + + private static URL toModelURL(String location) throws IOException { + try { + return new URI(location).toURL(); + } catch (URISyntaxException e) { + throw new IOException(e); + } } private static void downloadModel(URL url) throws IOException { diff --git a/opennlp-dl/pom.xml b/opennlp-dl/pom.xml index 41902ad..107bdce 100644 --- a/opennlp-dl/pom.xml +++ b/opennlp-dl/pom.xml @@ -22,13 +22,12 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-dl</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> <name>Apache OpenNLP DL4J</name> + <packaging>jar</packaging> <properties> <nd4j.version>1.0.0-M2.1</nd4j.version> @@ -40,8 +39,13 @@ <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> + <dependency> + <groupId>org.apache.opennlp</groupId> + <artifactId>opennlp-formats</artifactId> + </dependency> + <dependency> <groupId>org.deeplearning4j</groupId> diff --git a/opennlp-grpc/README.md b/opennlp-grpc/README.md index 05b391d..3eae2bd 100644 --- a/opennlp-grpc/README.md +++ b/opennlp-grpc/README.md @@ -43,7 +43,7 @@ mvn clean install Start the server: Use the following command to run the server with default settings: ```bash -java -jar target/opennlp-grpc-server-2.5.8-SNAPSHOT.jar +java -jar target/opennlp-grpc-server-3.0.0-SNAPSHOT.jar ``` Configure server options: diff --git a/opennlp-grpc/opennlp-grpc-api/pom.xml b/opennlp-grpc/opennlp-grpc-api/pom.xml index 839e78b..e0a0ba7 100644 --- a/opennlp-grpc/opennlp-grpc-api/pom.xml +++ b/opennlp-grpc/opennlp-grpc-api/pom.xml @@ -24,7 +24,7 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-grpc</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-grpc-api</artifactId> diff --git a/opennlp-grpc/opennlp-grpc-service/pom.xml b/opennlp-grpc/opennlp-grpc-service/pom.xml index c031068..3703308 100644 --- a/opennlp-grpc/opennlp-grpc-service/pom.xml +++ b/opennlp-grpc/opennlp-grpc-service/pom.xml @@ -24,7 +24,7 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-grpc</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-grpc-service</artifactId> @@ -38,12 +38,12 @@ </dependency> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> <version>${opennlp.tools.version}</version> </dependency> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools-models</artifactId> + <artifactId>opennlp-models</artifactId> <version>${opennlp.tools.version}</version> </dependency> <dependency> diff --git a/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/OpenNLPServer.java b/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/OpenNLPServer.java index 7f129f7..39f0332 100644 --- a/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/OpenNLPServer.java +++ b/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/OpenNLPServer.java @@ -65,7 +65,7 @@ import opennlp.service.TokenizerService; * The server includes graceful shutdown handling using a shutdown hook to ensure resources are released * when the server is stopped.</p> */ -@Command(name = "OpenNLP Server", mixinStandardHelpOptions = true, version = "2.5.8-SNAPSHOT") +@Command(name = "OpenNLP Server", mixinStandardHelpOptions = true, version = "3.0.0-SNAPSHOT") public class OpenNLPServer implements Callable<Integer> { private static final org.slf4j.Logger logger = LoggerFactory.getLogger(OpenNLPServer.class); diff --git a/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/classpath/DirectoryModelFinder.java b/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/classpath/DirectoryModelFinder.java index 773f81c..2941d41 100644 --- a/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/classpath/DirectoryModelFinder.java +++ b/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/classpath/DirectoryModelFinder.java @@ -163,18 +163,28 @@ public class DirectoryModelFinder extends AbstractClassPathModelFinder implement return pattern.matcher(url.getFile()).matches(); } + private static URL toURL(String location) throws IOException { + try { + return new URI(location).toURL(); + } catch (URISyntaxException e) { + throw new IOException(e); + } + } + private List<URI> getURIsFromJar(URL fileUrl, boolean isWindows) throws IOException { final List<URI> uris = new ArrayList<>(); - final URL jarUrl = new URL(JAR + ":" + (isWindows ? fileUrl.toString().replace("\\", "/") : fileUrl.toString()) + "!/"); + final String location = JAR + ":" + + (isWindows ? fileUrl.toString().replace("\\", "/") + : fileUrl.toString()) + "!/"; + final URL jarUrl = toURL(location); final JarURLConnection jarConnection = (JarURLConnection) jarUrl.openConnection(); try (JarFile jarFile = jarConnection.getJarFile()) { final Enumeration<JarEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { final JarEntry entry = entries.nextElement(); if (!entry.isDirectory()) { - final URL entryUrl = new URL(jarUrl + entry.getName()); try { - uris.add(entryUrl.toURI()); + uris.add(new URI(jarUrl + entry.getName())); } catch (URISyntaxException ignored) { //if we cannot convert to URI here, we ignore that entry. } diff --git a/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/exception/ServiceException.java b/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/exception/ServiceException.java index 0035fbe..3d6f363 100644 --- a/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/exception/ServiceException.java +++ b/opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/exception/ServiceException.java @@ -19,8 +19,13 @@ package opennlp.service.exception; +import java.io.Serial; + public class ServiceException extends RuntimeException { + @Serial + private static final long serialVersionUID = -3387516993124229948L; + public ServiceException(String message, Throwable cause) { super(message, cause); } diff --git a/opennlp-grpc/pom.xml b/opennlp-grpc/pom.xml index a1b29f5..3a6e385 100644 --- a/opennlp-grpc/pom.xml +++ b/opennlp-grpc/pom.xml @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-grpc</artifactId> diff --git a/opennlp-similarity/pom.xml b/opennlp-similarity/pom.xml index 403b778..5c3c7bb 100644 --- a/opennlp-similarity/pom.xml +++ b/opennlp-similarity/pom.xml @@ -17,14 +17,12 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-similarity</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> - <name>Apache OpenNLP Similarity distribution</name> + <packaging>jar</packaging> <properties> <jakarta.bind-api.version>4.0.5</jakarta.bind-api.version> @@ -76,11 +74,15 @@ <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> + </dependency> + <dependency> + <groupId>org.apache.opennlp</groupId> + <artifactId>opennlp-cli</artifactId> </dependency> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools-models</artifactId> + <artifactId>opennlp-models</artifactId> </dependency> <!-- Required English model resources at runtime --> diff --git a/opennlp-wsd/pom.xml b/opennlp-wsd/pom.xml index 34f8f98..36547c4 100644 --- a/opennlp-wsd/pom.xml +++ b/opennlp-wsd/pom.xml @@ -24,22 +24,25 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opennlp-wsd</artifactId> - <version>2.5.8-SNAPSHOT</version> - <packaging>jar</packaging> <name>Apache OpenNLP WSD</name> + <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> + </dependency> + <dependency> + <groupId>org.apache.opennlp</groupId> + <artifactId>opennlp-models</artifactId> </dependency> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools-models</artifactId> + <artifactId>opennlp-cli</artifactId> </dependency> <!-- Required English model resources at runtime --> diff --git a/pom.xml b/pom.xml index f234ea1..175f92d 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Apache OpenNLP Sandbox</name> @@ -116,13 +116,13 @@ <properties> <!-- Build Properties --> - <java.version>17</java.version> + <java.version>21</java.version> <maven.version>3.3.9</maven.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <opennlp.tools.version>2.5.7</opennlp.tools.version> + <opennlp.tools.version>3.0.0-M1</opennlp.tools.version> <opennlp.models.version>1.3.0</opennlp.models.version> <opennlp.forkCount>1.0C</opennlp.forkCount> @@ -160,23 +160,30 @@ <dependencyManagement> <dependencies> <dependency> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> <groupId>${project.groupId}</groupId> <version>${opennlp.tools.version}</version> </dependency> <dependency> - <artifactId>opennlp-tools-models</artifactId> + <artifactId>opennlp-formats</artifactId> + <groupId>${project.groupId}</groupId> + <version>${opennlp.tools.version}</version> + </dependency> + <dependency> + <artifactId>opennlp-models</artifactId> + <groupId>${project.groupId}</groupId> + <version>${opennlp.tools.version}</version> + </dependency> + <dependency> + <artifactId>opennlp-cli</artifactId> <groupId>${project.groupId}</groupId> <version>${opennlp.tools.version}</version> </dependency> - <dependency> <artifactId>opennlp-tools</artifactId> <groupId>${project.groupId}</groupId> - <version>${project.version}</version> - <type>test-jar</type> + <version>${opennlp.tools.version}</version> </dependency> - <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> diff --git a/summarizer/pom.xml b/summarizer/pom.xml index bb38771..f5b06f2 100644 --- a/summarizer/pom.xml +++ b/summarizer/pom.xml @@ -23,11 +23,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>summarizer</artifactId> - <version>2.5.8-SNAPSHOT</version> <name>Apache OpenNLP Summarizer</name> <properties> @@ -47,11 +46,11 @@ <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools-models</artifactId> + <artifactId>opennlp-models</artifactId> </dependency> <!-- Required English model resources at runtime --> diff --git a/tagging-server/pom.xml b/tagging-server/pom.xml index 26bb6c0..c3ea771 100644 --- a/tagging-server/pom.xml +++ b/tagging-server/pom.xml @@ -24,11 +24,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>tagging-server</artifactId> - <version>2.5.8-SNAPSHOT</version> <packaging>bundle</packaging> <name>Apache OpenNLP Tagging Server</name> @@ -36,7 +35,7 @@ <dependencies> <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> <dependency> diff --git a/tf-ner-poc/pom.xml b/tf-ner-poc/pom.xml index 430db73..72ad8b1 100644 --- a/tf-ner-poc/pom.xml +++ b/tf-ner-poc/pom.xml @@ -26,11 +26,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>tf-ner-poc</artifactId> - <version>2.5.8-SNAPSHOT</version> <name>Apache OpenNLP TF NER poc</name> <properties> @@ -46,7 +45,7 @@ <dependency> <groupId>org.apache.opennlp</groupId> - <artifactId>opennlp-tools</artifactId> + <artifactId>opennlp-runtime</artifactId> </dependency> <dependency> diff --git a/wikinews-importer/pom.xml b/wikinews-importer/pom.xml index ae1dcab..fff20d1 100644 --- a/wikinews-importer/pom.xml +++ b/wikinews-importer/pom.xml @@ -24,11 +24,10 @@ <parent> <groupId>org.apache.opennlp</groupId> <artifactId>opennlp-sandbox</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>wikinews-importer</artifactId> - <version>2.5.8-SNAPSHOT</version> <packaging>jar</packaging> <name>Apache OpenNLP Wikinews Importer</name>
