This is an automated email from the ASF dual-hosted git repository.
mawiesne pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opennlp-site.git
The following commit(s) were added to refs/heads/main by this push:
new 3f70e00dc Adjusts website to include OpenNLP 3.0.0-M4
3f70e00dc is described below
commit 3f70e00dc03e74ba94681246d0e161e2d7a7fe59
Author: Martin Wiesner <[email protected]>
AuthorDate: Tue Jun 30 08:55:03 2026 +0200
Adjusts website to include OpenNLP 3.0.0-M4
---
.github/workflows/main.yml | 3 +-
README.md | 8 ++-
pom.xml | 10 +++
src/main/jbake/content/docs/index.ad | 2 +
src/main/jbake/content/docs/legacy.ad | 18 ++++++
src/main/jbake/content/news/index.html | 2 +-
src/main/jbake/content/news/release-300-M4.ad | 89 +++++++++++++++++++++++++++
src/main/jbake/jbake.properties | 2 +-
8 files changed, 128 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 06053f007..16df9397a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -84,4 +84,5 @@ jobs:
[ -d target/opennlp-site/docs/2.5.10 ] && echo 'docs for 2.5.10
exist'
[ -d target/opennlp-site/docs/3.0.0-M1 ] && echo 'docs for 3.0.0-M1
exist'
[ -d target/opennlp-site/docs/3.0.0-M2 ] && echo 'docs for 3.0.0-M2
exist'
- [ -d target/opennlp-site/docs/3.0.0-M3 ] && echo 'docs for 3.0.0-M3
exist'
\ No newline at end of file
+ [ -d target/opennlp-site/docs/3.0.0-M3 ] && echo 'docs for 3.0.0-M3
exist'
+ [ -d target/opennlp-site/docs/3.0.0-M4 ] && echo 'docs for 3.0.0-M3
exist'
\ No newline at end of file
diff --git a/README.md b/README.md
index a0a890a2a..c54fd7d1a 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Welcome to OpenNLP Site Source Code
#### Build
```bash
-mvn clean install
+mvn clean verify
```
The output is rendered to `target/opennlp-site/`. Open
`target/opennlp-site/index.html` in a browser to preview.
@@ -40,8 +40,10 @@ The output is rendered to `target/opennlp-site/`. Open
`target/opennlp-site/inde
#### Live Dev Mode
```bash
-mvn compile -Pserve # http://localhost:8080/
-mvn compile -Pserve -Djbake.port=9000 # custom port
+# http://localhost:8080/
+mvn compile -Pserve
+# custom port
+mvn compile -Pserve -Djbake.port=9000
```
Bakes the site once, then serves `target/opennlp-site/` over HTTP and watches
`src/main/jbake/` recursively. Any change to a content file, template, asset or
`jbake.properties` triggers a re-bake (debounced ~400 ms); reload the browser
to see it. Press Ctrl-C to stop.
diff --git a/pom.xml b/pom.xml
index c84400402..e9d2991d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -690,6 +690,16 @@
<outputDirectory>${project.build.directory}/distr/3.0.0-M3</outputDirectory>
<excludes>**/lib/**/*</excludes>
</artifactItem>
+ <artifactItem>
+ <groupId>org.apache.opennlp</groupId>
+ <artifactId>opennlp-distr</artifactId>
+ <version>3.0.0-M4</version>
+ <overWrite>false</overWrite>
+ <type>zip</type>
+ <classifier>bin</classifier>
+
<outputDirectory>${project.build.directory}/distr/3.0.0-M4</outputDirectory>
+ <excludes>**/lib/**/*</excludes>
+ </artifactItem>
</artifactItems>
</configuration>
</execution>
diff --git a/src/main/jbake/content/docs/index.ad
b/src/main/jbake/content/docs/index.ad
index 061bd1681..b00b851b1 100755
--- a/src/main/jbake/content/docs/index.ad
+++ b/src/main/jbake/content/docs/index.ad
@@ -44,10 +44,12 @@ NOTE: All the documentation is also included in the binary
distribution.
* link:/docs/{opennlp_3x_version}/apidocs/opennlp-ml-commons/index.html[Apache
OpenNLP ML Commons]
* link:/docs/{opennlp_3x_version}/apidocs/opennlp-ml-maxent/index.html[Apache
OpenNLP ML Maxent]
*
link:/docs/{opennlp_3x_version}/apidocs/opennlp-ml-perceptron/index.html[Apache
OpenNLP ML Perceptron]
+* link:/docs/{opennlp_3x_version}/apidocs/opennlp-ml-libsvm/index.html[Apache
OpenNLP ML LibSVM Javadoc]
*
link:/docs/{opennlp_3x_version}/apidocs/opennlp-model-resolver/index.html[Apache
OpenNLP Model resolver]
* link:/docs/{opennlp_3x_version}/apidocs/opennlp-morfologik/index.html[Apache
OpenNLP Morfologik]
* link:/docs/{opennlp_3x_version}/apidocs/opennlp-runtime/index.html[Apache
OpenNLP Runtime]
* link:/docs/{opennlp_3x_version}/apidocs/opennlp-tools/index.html[Apache
OpenNLP Tools]
+* link:/docs/{opennlp_3x_version}/apidocs/opennlp-spellcheck/index.html[Apache
OpenNLP Spellchecker Javadoc]
* link:/docs/{opennlp_3x_version}/apidocs/opennlp-uima/index.html[Apache
OpenNLP UIMA]
== Apache OpenNLP {opennlp_version}
diff --git a/src/main/jbake/content/docs/legacy.ad
b/src/main/jbake/content/docs/legacy.ad
index 747b5b989..6acd88067 100755
--- a/src/main/jbake/content/docs/legacy.ad
+++ b/src/main/jbake/content/docs/legacy.ad
@@ -27,6 +27,24 @@ WARNING: This page contains the archived documentation.
Please refer to link:/do
There exists a manual and Javadoc API documentation for Apache OpenNLP. The
manual
explains how the various OpenNLP components can be used and trained.
+== Apache OpenNLP 3.0.0-M3 documentation
+* link:/docs/3.0.0-M3/manual/opennlp.html[Apache OpenNLP Manual]
+* link:/docs/3.0.0-M3/opennlp.pdf[Apache OpenNLP PDF Manual]
+* link:/docs/3.0.0-M3/apidocs/opennlp-api/index.html[Apache OpenNLP API
Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-cli/index.html[Apache OpenNLP CLI
Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-dl/index.html[Apache OpenNLP DL Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-formats/index.html[Apache OpenNLP
Formats Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-ml-bayes/index.html[Apache OpenNLP ML
Bayes Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-ml-commons/index.html[Apache OpenNLP ML
Commons Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-ml-maxent/index.html[Apache OpenNLP ML
Maxent Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-ml-perceptron/index.html[Apache OpenNLP
ML Perceptron Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-ml-libsvm/index.html[Apache OpenNLP ML
LibSVM Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-model-resolver/index.html[Apache OpenNLP
Model resolver Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-morfologik/index.html[Apache OpenNLP
Morfologik Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-runtime/index.html[Apache OpenNLP
Runtime Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-tools/index.html[Apache OpenNLP Tools
Javadoc]
+* link:/docs/3.0.0-M3/apidocs/opennlp-uima/index.html[Apache OpenNLP UIMA
Javadoc]
+
== Apache OpenNLP 3.0.0-M2 documentation
* link:/docs/3.0.0-M2/manual/opennlp.html[Apache OpenNLP Manual]
* link:/docs/3.0.0-M2/opennlp.pdf[Apache OpenNLP PDF Manual]
diff --git a/src/main/jbake/content/news/index.html
b/src/main/jbake/content/news/index.html
index 6e5c7e1b3..e0c1cb038 100644
--- a/src/main/jbake/content/news/index.html
+++ b/src/main/jbake/content/news/index.html
@@ -1,5 +1,5 @@
title=News
-date=2026-06-24
+date=2026-06-30
type=news
status=published
~~~~~~
diff --git a/src/main/jbake/content/news/release-300-M4.ad
b/src/main/jbake/content/news/release-300-M4.ad
new file mode 100644
index 000000000..e3d798569
--- /dev/null
+++ b/src/main/jbake/content/news/release-300-M4.ad
@@ -0,0 +1,89 @@
+////
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+////
+= Apache OpenNLP 3.0.0-M4 released
+Apache OpenNLP
+2026-06-30
+:jbake-type: post
+:jbake-tags: community
+:jbake-status: published
+:category: news
+:idprefix:
+
+The Apache OpenNLP team is pleased to announce the release of Apache OpenNLP
3.0.0-M4.
+
+The Apache OpenNLP library is a machine learning based toolkit for the
processing of natural language text.
+
+It supports the most common NLP tasks, such as tokenization, sentence
segmentation, part-of-speech tagging, named entity extraction, chunking,
parsing, and coreference resolution.
+
+Apache OpenNLP 3.0.0-M4 binary and source distributions are available for
download from our link:/download.html[download page].
+
+The OpenNLP library is distributed by Maven Central as well. See the
link:/maven-dependency.html[Maven dependency] page for more details.
+
+== What's new in Apache OpenNLP 3.0.0-M4
+
+This release focuses on *security hardening*, *new NLP capabilities*, and
*dependency maintenance*.
+
+=== Security Fixes
+
+One security issue is addressed in this release.
+
+==== CWE-502 Deserialization of Untrusted Data (OPENNLP-1823, CVE-2026-43825)
+
+Fixed unsafe Java deserialization in `SvmDoccatModel.deserialize()` (libsvm
doccat module, 3.x before 3.0.0-M4) that
+could allow remote code execution via a crafted stream when a gadget chain is
present on the classpath;
+an `ObjectInputFilter` is now applied.
+
+=== New Features and Improvements
+
+* Include list of stop words for various languages (OPENNLP-660)
+* Add SymSpell-based spell correction component (OPENNLP-1832)
+* Add BertTokenizer with BERT basic tokenization (OPENNLP-1837)
+* Harden SvmDoccatModel.deserialize() with ObjectInputFilter and resource
limits (OPENNLP-1823)
+* Tolerate unsupported XML parser security options (OPENNLP-1835)
+* Fix NameFinderDL only worked with Person, expand to all types (OPENNLP-1846)
+* Several updates of dependencies were conducted, see Jira release notes
listing - URL down below
+* Some minor tasks have been completed
+
+=== Bug fixes
+* This release ships four bug fixes for: OPENNLP-1826, OPENNLP-1836,
OPENNLP-1839, and OPENNLP-1840
+
+=== IMPORTANT CHANGES
+* The ONNX input encoding in SentenceVectorsDL was fixed, which changes the
produced sentence vectors.
+Any embeddings persisted with the old encoding are not comparable to the new
output and must be re-generated. (OPENNLP-1836 - PR #1072)
+* WordpieceTokenizer (public API, used by opennlp-dl) now splits punctuation
runs into single tokens, collapses
+partially-matched words to a single [UNK], and throws from tokenizePos instead
of returning null.
+These change tokenization output for existing callers. (OPENNLP-1837 - PR
#1073)
+* NameFinderDL now decodes all BIO entity types (PER/ORG/LOC/…) instead of
only persons. Span.getType() now returns
+the entity label rather than the covered text, which is a contract change for
existing callers. (OPENNLP-1846 - PR #1086)
+* The opennlp-dl components are now thread-safe; as part of this, loadVocab
became public static (source- and binary-incompatible)
+and AbstractDL's implicit no-arg constructor was removed.
+Both affect downstream code that calls loadVocab or extends AbstractDL.
(OPENNLP-1844 - PR #1084)
+
+=== Dependency Updates
+
+* Update ONNX runtime to 1.26.0 (OPENNLP-1824)
+* Update gRPC to 1.81.0 (OPENNLP-1825)
+* Update log4j2 to 2.26.0 (OPENNLP-1827)
+* Update Slf4j to 2.0.18 (OPENNLP-1831)
+* Update gRPC to 1.82.0 (OPENNLP-1847)
+* Update Morfologik to 2.2.0 (OPENNLP-1848)
+
+For further details, check the full list of
link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311215&version=12356941[changes,role=external,window=_blank]
via the project's issue tracker.
+
+--The Apache OpenNLP Team
diff --git a/src/main/jbake/jbake.properties b/src/main/jbake/jbake.properties
index 8e0602143..fd3c92270 100755
--- a/src/main/jbake/jbake.properties
+++ b/src/main/jbake/jbake.properties
@@ -33,7 +33,7 @@ template.news.file=news.ftl
asciidoctor.attributes.export=true
asciidoctor.attributes.export.prefix=
opennlp.version=2.5.10
-opennlp.3x.version=3.0.0-M3
+opennlp.3x.version=3.0.0-M4
opennlp.next.version=3.0.0-SNAPSHOT
opennlp.models=ud-models-1.3
opennlp.downloads=https://downloads.apache.org/opennlp/models