Huge Milestone & Call for Vote! Apache ManifoldCF 2.31 is leaping into Java 25 & Project Loom!

I’m thrilled to share some massive modernization changes coming in the upcoming Apache ManifoldCF 2.31 release! Even better the official call for vote is now open to release this brand new version!

For those who don't know, Apache ManifoldCF is an enterprise-grade framework designed to crawl, extract, and feed content from diverse repositories into search engines like Solr, Elasticsearch, and OpenSearch. Recently it can be also used to migrate contents from different content repositories.

With version 2.31, we’ve taken a huge architectural leap forward to make the framework faster, lighter, and ready for modern cloud environments:

The Java 25 Leap

We have officially upgraded the core runtime and Docker environment to OpenJDK 25 (the upcoming LTS release)! Skipping several versions from JDK 21 (our 2.30 baseline) lets us leverage the absolute latest runtime optimizations, language features, and garbage collector improvements.

Project Loom & Virtual Threads IntegratioN

This is the game-changer. Enterprise crawling is heavily I/O-bound. By integrating Java's Virtual Threads ( Executors.newVirtualThreadPerTaskExecutor() ) into the Solr output connector, our embedded Jetty runner, and internal crawling instances, ManifoldCF can now handle massive concurrency.

The result: Crawling, fetching, and indexing thousands of documents simultaneously with an incredibly low memory footprint and near-zero CPU overhead.

Native Spring Boot Support

We’ve introduced a new Spring Boot application module ( framework/spring-boot-app ). You can now spin up ManifoldCF natively in microservices or containerized setups.

It even includes a custom /status health endpoint checking if virtual threads are active under the hood!

Upgraded to Jetty 12.1

We upgraded our embedded servlet engine to Jetty 12.1. This aligns the project with the modern Jakarta EE namespace ( jakarta.* ) and integrates native virtual thread pool execution for incoming HTTP requests.

Streamlining & Technical Debt Cleanup

To focus our community’s efforts on what matters, we did some serious housekeeping by deprecating and removing legacy, unmaintained connectors (such as FileNet, Documentum, and Meridio).

A cleaner codebase means faster build times and easier maintenance!

Docker & CI/CD Modernization

We've rebuilt our containerization layers. A new JDK 25-based Dockerfile is ready to go, and our GitHub Workflows have been hardened for release candidate generation and branch protection.

Attention ManifoldCF Community & PMC Members!

The official call for vote on the release candidate is now live on the developer mailing list.

Please download, test, and cast your votes (+1 / 0 / -1) to help us ship this release!

👉 Check out the 2.31-RC0: https://github.com/apache/manifoldcf/tree/release-2.31-RC0

👉 Join the dev mailing list & vote: dev@manifoldcf.apache.org