apache / apache/maven-project-info-reports-plugin

Test harness depends on Jetty 6.1.26 from 2010, the last release of the org.mortbay.jetty coordinate

Open
#652 0 comments 0 reactions 0 assignees View on GitHub
dependencies maintenance
Dominant language
Java
Stars
29
Forks
41
Avg merge
4h 17m
Merged PRs (30d)
3

Description

Spun out of the estate-wide Jetty review in [apache/maven#12768](https://github.com/apache/maven/issues/12768), triggered by the Jetty 9/10/11 end-of-life announcement in [jetty/jetty.project#13918](https://github.com/jetty/jetty.project/issues/13918). This repository is not covered by that announcement — it is on something considerably older.

## Where we stand

`pom.xml` has a test-scope dependency on `org.mortbay.jetty:jetty:6.1.26`.

`org.mortbay.jetty` is the pre-Eclipse groupId, and 6.1.26 is the last release ever published under it: 10 November 2010. There is no newer version of this coordinate and there never will be, so unlike the Jetty 9 cases elsewhere in the estate there is not even an end-of-line bump available.

The only consumer is `ProjectInfoReportUtilsTest` — one test method, `testGetInputStreamURL`, which stands up a server and checks that `ProjectInfoReportUtils.getContent` reads a URL correctly. It uses `SelectChannelConnector` for plain HTTP, `SslSocketConnector` for HTTPS, and `HashUserRealm` with `Constraint`/`ConstraintMapping` for basic auth, across a few character encodings.

Test scope, so nothing ships and nothing breaks. This is hygiene, not exposure.

## Options

**1. Move to the end of the Jetty 9.4 line** (`9.4.58.v20250814`). Still Java 8, so it works with the current `javaVersion` 8 baseline and the inherited CI matrix that includes JDK 8. It is a rewrite of the fixture rather than a version bump — the whole connector and security API changed between Jetty 6 and 9 — and it lands us on a line that is itself end-of-life. Fifteen years newer, but still a dead end.

**2. Drop Jetty and use the JDK.** What this test needs is a local HTTP server, a local HTTPS server, and basic auth. `com.sun.net.httpserver.HttpServer`, `HttpsServer` and `BasicAuthenticator` have been in the JDK since 6 and cover all three. That removes a dependency instead of moving it, keeps the Java 8 baseline, and does not have to be revisited when the next Jetty line goes end of life.

For a 253-line test class with a single server-based method, option 2 looks like less work than option 1 and a better end state. Worth a look before anyone invests in the Jetty 9 port.

Jetty 12 is not on the table here regardless: it needs Java 17, and JDK 8 is still in this repository's CI matrix.

*This issue was created with AI assistance.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with pom.xml and ProjectInfoReportUtilsTest, especially testGetInputStreamURL, and run that test to understand its HTTP, HTTPS, basic-auth, and encoding checks. Replace the Jetty-based fixture with the JDK HTTP servers while preserving those checks, then confirm the test passes on the Java 8 baseline and the old test dependency is gone.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.