Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package maven-reporting-api for 
openSUSE:Factory checked in at 2026-11-03 17:58:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maven-reporting-api (Old)
 and      /work/SRC/openSUSE:Factory/.maven-reporting-api.new.1257 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "maven-reporting-api"

Tue Nov  3 17:58:42 2026 rev:7 rq:1394621 version:4.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/maven-reporting-api/maven-reporting-api.changes  
2024-10-16 23:47:42.431370586 +0200
+++ 
/work/SRC/openSUSE:Factory/.maven-reporting-api.new.1257/maven-reporting-api.changes
        2026-11-03 18:00:13.655035741 +0100
@@ -1,0 +2,37 @@
+Wed Oct 28 06:14:09 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to upstream version 4.1.0
+  * Deprecated
+    + Move the multi-page generate method into MavenReport
+  * New features and improvements
+    + Move the multi-page generate method into MavenReport
+  * Documentation updates
+    + Refresh the README and Javadoc, and add contributor, security
+      and agent guides
+    + Fix download links
+  * Maintenance
+    + Use push for PR Automation and add PR Check
+    + Add project metadata for ATR
+    + Simplify _extends in release-drafter.yml
+    + Let Dependabot update GitHub Actions
+    + Update site descriptor to 2.0
+    + Add tag-template to release-drafter.yml, fix _extends pth
+    + feat: enable prevent branch protection rules
+    + Enable Github Issue
+    + MSHARED-1325: Refresh download page
+  * Build
+    + Verify with Maven 4 too
+  * Dependency updates
+    + Bump org.apache.maven.doxia:doxia-sink-api from 2.0.0 to 2.2.0
+    + Bump org.apache.maven.shared:maven-shared-components from 43
+      to 50
+    + Bump apache/maven-gh-actions-shared/.github/workflows/
+      /release-drafter.yml from 4 to 5
+    + Bump apache/maven-gh-actions-shared/.github/workflows/
+      /pr-automation.yml from 4 to 5
+    + Bump apache/maven-gh-actions-shared/.github/workflows/
+      /maven-verify.yml from 4 to 5
+    + Bump apache/maven-gh-actions-shared/.github/workflows/
+      /stale.yml from 4 to 5
+
+-------------------------------------------------------------------

Old:
----
  maven-reporting-api-4.0.0.tar.xz

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  maven-reporting-api-4.1.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ maven-reporting-api.spec ++++++
--- /var/tmp/diff_new_pack.ROtkZY/_old  2026-11-03 18:00:15.230102369 +0100
+++ /var/tmp/diff_new_pack.ROtkZY/_new  2026-11-03 18:00:15.232102453 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           maven-reporting-api
-Version:        4.0.0
+Version:        4.1.0
 Release:        0
 Summary:        API to manage report generation
 License:        Apache-2.0

++++++ _scmsync.obsinfo ++++++
mtime: 1793168428
commit: da876a07c5eb3af83a64286acce455cbcf1ea47f684a65d8ab8cf672f0b45314
url: https://src.opensuse.org/java-packages/maven-reporting-api
revision: da876a07c5eb3af83a64286acce455cbcf1ea47f684a65d8ab8cf672f0b45314
projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ROtkZY/_old  2026-11-03 18:00:15.356107699 +0100
+++ /var/tmp/diff_new_pack.ROtkZY/_new  2026-11-03 18:00:15.360107868 +0100
@@ -2,7 +2,7 @@
        <service name="tar_scm" mode="disabled">
                <param name="scm">git</param>
                <param 
name="url">https://github.com/apache/maven-reporting-api.git</param>
-               <param name="revision">maven-reporting-api-4.0.0</param>
+               <param name="revision">maven-reporting-api-4.1.0</param>
                <param name="match-tag">maven-reporting-api-*</param>
                <param name="versionformat">@PARENT_TAG@</param>
                <param 
name="versionrewrite-pattern">maven-reporting-api-(.*)</param>

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-10-28 07:20:28.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ maven-reporting-api-4.0.0.tar.xz -> maven-reporting-api-4.1.0.tar.xz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/.asf.yaml 
new/maven-reporting-api-4.1.0/.asf.yaml
--- old/maven-reporting-api-4.0.0/.asf.yaml     2024-10-01 17:35:08.000000000 
+0200
+++ new/maven-reporting-api-4.1.0/.asf.yaml     2026-10-23 21:46:49.000000000 
+0200
@@ -23,14 +23,52 @@
     - build-management
     - maven-shared
     - maven
+  protected_branches:
+    master: { }
+  pull_requests:
+    del_branch_on_merge: true
   enabled_merge_buttons:
     squash: true
     merge: false
     rebase: true
   autolink_jira:
     - MSHARED
+  features:
+    issues: true
 notifications:
   commits: [email protected]
   issues: [email protected]
   pullrequests: [email protected]
-  jira_options: link label comment
+
+# https://releases.apache.org/projects/maven-reporting-api
+project:
+  metadata:
+    key: maven-reporting-api
+    committee: maven
+    name: Apache Maven Reporting API
+    description: API to manage report generation.
+    homepage: https://maven.apache.org/shared/maven-reporting-api/
+    download_page: 
https://maven.apache.org/shared/maven-reporting-api/download.cgi
+    bug_database: 
https://maven.apache.org/shared/maven-reporting-api/issue-management.html
+    mailing_lists: 
https://maven.apache.org/shared/maven-reporting-api/mailing-lists.html
+    repositories:
+      - https://github.com/apache/maven-reporting-api
+    categories:
+      - build-management
+    programming_languages:
+      - Java
+  policy:
+    announce_release_template_url: 
https://maven.apache.org/atr/templates/announce_release_template.txt
+    start_vote_template_url: 
https://maven.apache.org/atr/templates/start_vote_template.txt
+    finish_vote_template_url: 
https://maven.apache.org/atr/templates/finish_vote_template.txt
+    github_repository_name: maven-reporting-api
+    download_path_suffix: reporting
+    vote_recipients:
+      to: [email protected]
+    announce_recipients:
+      to: [email protected]
+      cc:
+        - [email protected]
+        - [email protected]
+  features:
+    atr_sync: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/ISSUE_TEMPLATE/BUG.yml 
new/maven-reporting-api-4.1.0/.github/ISSUE_TEMPLATE/BUG.yml
--- old/maven-reporting-api-4.0.0/.github/ISSUE_TEMPLATE/BUG.yml        
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/ISSUE_TEMPLATE/BUG.yml        
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,48 @@
+#
+#  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.
+#
+
+# 
https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
+
+name: Bug Report
+description: File a bug report
+labels: ["bug"]
+
+body:
+  - type: markdown
+    attributes:
+      value: |
+        Thanks for taking the time to fill out this bug report.     
+
+        Simple fixes in single PRs do not require issues. 
+  
+        **Do you use the latest project version?**
+
+  - type: input
+    id: version
+    attributes:
+      label: Affected version
+    validations:
+      required: true
+
+  - type: textarea
+    id: message
+    attributes:
+      label: Bug description
+    validations:
+      required: true
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/ISSUE_TEMPLATE/FEATURE.yml 
new/maven-reporting-api-4.1.0/.github/ISSUE_TEMPLATE/FEATURE.yml
--- old/maven-reporting-api-4.0.0/.github/ISSUE_TEMPLATE/FEATURE.yml    
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/ISSUE_TEMPLATE/FEATURE.yml    
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,35 @@
+#
+#  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.
+#
+
+# 
https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
+
+name: Feature request
+description: File a proposal for new feature, improvement
+labels: ["enhancement"]
+
+body:
+  - type: markdown
+    attributes:
+      value: |
+        Thanks for taking the time to fill out this new feature, improvement 
proposal.
+
+  - type: textarea
+    id: message
+    attributes:
+      label: New feature, improvement proposal
+    validations:
+      required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/ISSUE_TEMPLATE/config.yml 
new/maven-reporting-api-4.1.0/.github/ISSUE_TEMPLATE/config.yml
--- old/maven-reporting-api-4.0.0/.github/ISSUE_TEMPLATE/config.yml     
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/ISSUE_TEMPLATE/config.yml     
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+
+# 
https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
+
+blank_issues_enabled: false
+
+contact_links:
+
+  - name: Project Mailing Lists
+    url: https://maven.apache.org/mailing-lists.html
+    about: Please ask a question or discuss here
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/.github/dependabot.yml 
new/maven-reporting-api-4.1.0/.github/dependabot.yml
--- old/maven-reporting-api-4.0.0/.github/dependabot.yml        2024-10-01 
17:35:08.000000000 +0200
+++ new/maven-reporting-api-4.1.0/.github/dependabot.yml        2026-10-23 
21:46:49.000000000 +0200
@@ -20,3 +20,8 @@
   directory: "/"
   schedule:
     interval: daily
+
+- package-ecosystem: github-actions
+  directory: "/"
+  schedule:
+    interval: daily
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/pull_request_template.md 
new/maven-reporting-api-4.1.0/.github/pull_request_template.md
--- old/maven-reporting-api-4.0.0/.github/pull_request_template.md      
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/pull_request_template.md      
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,11 @@
+
+<!-- Add your description here... what, why and how you resolve the issue -->
+
+---
+
+To make clear that you license your contribution under
+the [Apache License Version 2.0, January 
2004](https://www.apache.org/licenses/LICENSE-2.0)
+check one of the following:
+
+- [ ] I hereby declare this contribution to be licensed under the [Apache 
License Version 2.0, January 2004](https://www.apache.org/licenses/LICENSE-2.0)
+- [ ] I hereby declare that I have filed an [Apache Individual Contributor 
License Agreement](https://www.apache.org/licenses/icla.pdf).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/release-drafter.yml 
new/maven-reporting-api-4.1.0/.github/release-drafter.yml
--- old/maven-reporting-api-4.0.0/.github/release-drafter.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/release-drafter.yml   2026-10-23 
21:46:49.000000000 +0200
@@ -0,0 +1,19 @@
+# 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.
+
+_extends: maven-gh-actions-shared
+tag-template: maven-reporting-api-$RESOLVED_VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/workflows/maven-verify.yml 
new/maven-reporting-api-4.1.0/.github/workflows/maven-verify.yml
--- old/maven-reporting-api-4.0.0/.github/workflows/maven-verify.yml    
2024-10-01 17:35:08.000000000 +0200
+++ new/maven-reporting-api-4.1.0/.github/workflows/maven-verify.yml    
2026-10-23 21:46:49.000000000 +0200
@@ -24,4 +24,9 @@
 jobs:
   build:
     name: Verify
-    uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v4
+    uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v5
+    with:
+      maven4-enabled: true
+      # no run-its profile here; Maven 4 refuses a profile that does not 
exist, Maven 3 only warned
+      ff-goal: verify
+      verify-goal: verify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/workflows/pr-automation.yml 
new/maven-reporting-api-4.1.0/.github/workflows/pr-automation.yml
--- old/maven-reporting-api-4.0.0/.github/workflows/pr-automation.yml   
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/workflows/pr-automation.yml   
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,27 @@
+# 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.
+
+name: PR Automation
+on:
+  push:
+    branches:
+      - master
+
+jobs:
+  pr-automation:
+    name: PR Automation
+    uses: apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml@v5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/workflows/pr-check.yml 
new/maven-reporting-api-4.1.0/.github/workflows/pr-check.yml
--- old/maven-reporting-api-4.0.0/.github/workflows/pr-check.yml        
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/workflows/pr-check.yml        
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,27 @@
+# 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.
+
+name: PR Check
+
+on:
+  workflow_run:
+    workflows: [PR Signal]
+    types: [completed]
+
+jobs:
+  pr-check:
+    uses: apache/maven-gh-actions-shared/.github/workflows/pr-check.yml@v5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/workflows/pr-signal.yml 
new/maven-reporting-api-4.1.0/.github/workflows/pr-signal.yml
--- old/maven-reporting-api-4.0.0/.github/workflows/pr-signal.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/workflows/pr-signal.yml       
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,33 @@
+# 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.
+
+# signal events on PR, will be used by other workflows to trigger actions on PR
+# by the workflow_run
+
+name: PR Signal
+
+on:
+  pull_request:
+    types:
+      - edited
+      - opened
+      - reopened
+      - synchronize
+
+jobs:
+  pr-signal:
+    uses: apache/maven-gh-actions-shared/.github/workflows/pr-signal.yml@v5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/workflows/release-drafter.yml 
new/maven-reporting-api-4.1.0/.github/workflows/release-drafter.yml
--- old/maven-reporting-api-4.0.0/.github/workflows/release-drafter.yml 
1970-01-01 01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/workflows/release-drafter.yml 
2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,27 @@
+# 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.
+   
+name: Release Drafter
+on:
+  push:
+    branches:
+      - master
+  workflow_dispatch:
+
+jobs:
+   update_release_draft:
+      uses: 
apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml@v5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/.github/workflows/stale.yml 
new/maven-reporting-api-4.1.0/.github/workflows/stale.yml
--- old/maven-reporting-api-4.0.0/.github/workflows/stale.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/.github/workflows/stale.yml   2026-10-23 
21:46:49.000000000 +0200
@@ -0,0 +1,28 @@
+# 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.
+
+name: Stale
+
+on:
+  schedule:
+    - cron: '16 1 * * *'
+  issue_comment:
+    types: [ 'created' ]
+
+jobs:
+  stale:
+    uses: 'apache/maven-gh-actions-shared/.github/workflows/stale.yml@v5'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/AGENTS.md 
new/maven-reporting-api-4.1.0/AGENTS.md
--- old/maven-reporting-api-4.0.0/AGENTS.md     1970-01-01 01:00:00.000000000 
+0100
+++ new/maven-reporting-api-4.1.0/AGENTS.md     2026-10-23 21:46:49.000000000 
+0200
@@ -0,0 +1,53 @@
+<!---
+ 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.
+-->
+
+# Agent guide for maven-reporting-api
+
+This file is read by automated agents (security scanners, code
+analyzers, AI assistants) operating on this repository.
+
+## Security
+
+Security model: [SECURITY.md](./SECURITY.md)
+
+Agents that scan this repository should consult `SECURITY.md` and the
+threat model it links before reporting issues.
+
+## Compatibility
+
+This artifact is an API that every Maven report plugin implements, and the
+Maven Site Plugin calls. Binary compatibility matters more than anything else:
+
+- Never add an abstract method to `MavenReport` or `MavenReportRenderer`. A new
+  method must be a `default` method that keeps existing implementations 
working;
+  `generate(Sink, SinkFactory, Locale)` delegating to `generate(Sink, Locale)` 
is
+  the pattern.
+- Never make two methods defaults that call each other. A report that overrides
+  neither compiles cleanly and fails with `StackOverflowError` at run time. 
This
+  is why `getOutputName()` and `generate(Sink, Locale)` stay abstract
+  (#91, #92, fixed by #95 and #96).
+- Check a change against the downstream modules: `AbstractMavenReport` in
+  maven-reporting-impl, `ReportDocumentRenderer` in maven-site-plugin, and
+  maven-reporting-exec.
+
+## Coding
+
+Use test-first programming. Before fixing a bug or implementing a feature,
+write a test that exposes the bug and verify the test fails.
+
+The bytecode floor is Java 8. Before submitting a PR, run `mvn spotless:apply`
+to format the files, then `mvn verify`. Run Spotless with JDK 17 or 21.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/CONTRIBUTING.md 
new/maven-reporting-api-4.1.0/CONTRIBUTING.md
--- old/maven-reporting-api-4.0.0/CONTRIBUTING.md       1970-01-01 
01:00:00.000000000 +0100
+++ new/maven-reporting-api-4.1.0/CONTRIBUTING.md       2026-10-23 
21:46:49.000000000 +0200
@@ -0,0 +1,26 @@
+<!---
+ 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.
+-->
+
+# Contributing
+
+Read the [Maven developer 
guide](https://maven.apache.org/guides/development/guide-maven-development.html)
+before your first pull request. For this repository:
+
+- Report bugs in [GitHub 
Issues](https://github.com/apache/maven-reporting-api/issues);
+  report security issues privately as [SECURITY.md](SECURITY.md) describes.
+- Discuss new features and API changes on the [dev mailing 
list](https://maven.apache.org/mailing-lists.html) first.
+- Run `mvn spotless:apply` and `mvn verify` before you push.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/LICENSE 
new/maven-reporting-api-4.1.0/LICENSE
--- old/maven-reporting-api-4.0.0/LICENSE       1970-01-01 01:00:00.000000000 
+0100
+++ new/maven-reporting-api-4.1.0/LICENSE       2026-10-23 21:46:49.000000000 
+0200
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/README.md 
new/maven-reporting-api-4.1.0/README.md
--- old/maven-reporting-api-4.0.0/README.md     2024-10-01 17:35:08.000000000 
+0200
+++ new/maven-reporting-api-4.1.0/README.md     2026-10-23 21:46:49.000000000 
+0200
@@ -14,87 +14,56 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-Contributing to [Apache Maven Reporting 
API](https://maven.apache.org.reporting/maven-reporting-api/)
-======================
 
-[![ASF 
Jira](https://img.shields.io/endpoint?url=https%3A%2F%2Fmaven.apache.org%2Fbadges%2Fasf_jira-MSHARED.json)][jira]
-[![Apache License, Version 2.0, January 
2004](https://img.shields.io/github/license/apache/maven.svg?label=License)][license]
-[![Maven 
Central](https://img.shields.io/maven-central/v/org.apache.maven.reporting/maven-reporting-api.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.apache.maven.reporting/maven-reporting-api)
-[![Reproducible 
Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/org/apache/maven/reporting/maven-reporting-api/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/maven/reporting/maven-reporting-api/README.md)
-[![Jenkins 
Status](https://img.shields.io/jenkins/s/https/ci-maven.apache.org/job/Maven/job/maven-box/job/maven-reporting-api/job/master.svg)][build]
-[![Jenkins 
tests](https://img.shields.io/jenkins/t/https/ci-maven.apache.org/job/Maven/job/maven-box/job/maven-reporting-api/job/master.svg)][test-results]
+# Apache Maven Reporting API
 
+[![Apache License, Version 2.0, January 
2004](https://img.shields.io/github/license/apache/maven.svg?label=License)](https://www.apache.org/licenses/LICENSE-2.0)
+[![Maven 
Central](https://img.shields.io/maven-central/v/org.apache.maven.reporting/maven-reporting-api.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/org.apache.maven.reporting/maven-reporting-api)
+[![Reproducible 
Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/org/apache/maven/reporting/maven-reporting-api/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/maven/reporting/maven-reporting-api/README.md)
+[![Verify](https://github.com/apache/maven-reporting-api/actions/workflows/maven-verify.yml/badge.svg)](https://github.com/apache/maven-reporting-api/actions/workflows/maven-verify.yml)
 
-You have found a bug or you have an idea for a cool new feature? Contributing
-code is a great way to give something back to the open source community. Before
-you dig right into the code, there are a few guidelines that we need
-contributors to follow so that we can have a chance of keeping on top of
-things.
-
-Getting Started
----------------
-
-+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
-+ Make sure you have a [GitHub account](https://github.com/signup/free).
-+ If you're planning to implement a new feature, it makes sense to discuss 
your changes 
-  on the [dev list][ml-list] first. 
-  This way you can make sure you're not wasting your time on something that 
isn't 
-  considered to be in Apache Maven's scope.
-+ Submit a ticket for your issue, assuming one does not already exist.
-  + Clearly describe the issue, including steps to reproduce when it is a bug.
-  + Make sure you fill in the earliest version that you know has the issue.
-+ Fork the repository on GitHub.
-
-Making and Submitting Changes
---------------
-
-We accept Pull Requests via GitHub. The [developer mailing list][ml-list] is 
the
-main channel of communication for contributors.  
-There are some guidelines which will make applying PRs easier for us:
-+ Create a topic branch from where you want to base your work (this is usually 
the master branch).
-  Push your changes to a topic branch in your fork of the repository.
-+ Make commits of logical units.
-+ Respect the original code style: by using the same [codestyle][code-style],
-  patches should only highlight the actual difference, not being disturbed by 
any formatting issues:
-  + Only use spaces for indentation.
-  + Create minimal diffs - disable on save actions like reformat source code 
or organize imports. 
-    If you feel the source code should be reformatted, create a separate PR 
for this change.
-  + Check for unnecessary whitespace with `git diff --check` before committing.
-+ Make sure your commit messages are in the proper format. Your commit message 
should contain the key of the JIRA issue.
+The contract between the [Maven Site 
Plugin](https://maven.apache.org/plugins/maven-site-plugin/)
+and every report plugin. A report implements `MavenReport` to declare its name,
+category and output path, and to render itself into a Doxia `Sink`; the site
+plugin calls it and decorates the result with the site skin.
+
+Report plugins usually extend `AbstractMavenReport` from
+[Maven Reporting 
Implementation](https://maven.apache.org/shared/maven-reporting-impl/)
+instead of implementing this API directly.
+
+- Documentation: <https://maven.apache.org/shared/maven-reporting-api/>
+- Issues: <https://github.com/apache/maven-reporting-api/issues>
+- Security reports: see [SECURITY.md](SECURITY.md); never a public issue
+- Contributing: see [CONTRIBUTING.md](CONTRIBUTING.md)
+
+## What this is
+
+The artifact holds four types and depends only on `doxia-sink-api`:
+
+| Type | Role |
+|---|---|
+| `MavenReport` | The report contract the site plugin calls |
+| `MavenReportRenderer` | Renders one report page |
+| `MavenReportException` | The checked exception a report throws |
+| `MavenMultiPageReport` | Deprecated since 4.1.0; use 
`MavenReport.generate(Sink, SinkFactory, Locale)` |
+
+Where it sits:
+
+```text
+doxia-sink-api
+  └─ maven-reporting-api         (this repository)
+       ├─ maven-reporting-impl   AbstractMavenReport, which report plugins 
extend
+       ├─ maven-reporting-exec   finds and configures report plugins for the 
site
+       └─ maven-site-plugin      calls MavenReport and renders the pages
 ```
-[MSHARED-XXX] - Subject of the JIRA Ticket
- Optional supplemental description.
+
+Every report plugin implements this API, so a new method must be a `default`
+method, never abstract. Releases follow Doxia and come before
+[Maven Reporting Exec](https://maven.apache.org/shared/maven-reporting-exec/),
+Maven Reporting Implementation and the Maven Site Plugin.
+
+## Build
+
+```shell
+mvn verify
 ```
-+ Make sure you have added the necessary tests (JUnit/IT) for your changes.
-+ Run all the tests with `mvn -Prun-its verify` to assure nothing else was 
accidentally broken.
-+ Submit a pull request to the repository in the Apache organization.
-+ Update your JIRA ticket and include a link to the pull request in the ticket.
-
-If you plan to contribute on a regular basis, please consider filing a 
[contributor license agreement][cla].
-
-Making Trivial Changes
-----------------------
-
-For changes of a trivial nature to comments and documentation, it is not always
-necessary to create a new ticket in JIRA.  In this case, it is appropriate to
-start the first line of a commit with '(doc)' instead of a ticket number.
-
-Additional Resources
---------------------
-
-+ [Contributing 
patches](https://maven.apache.org/guides/development/guide-maven-development.html#Creating_and_submitting_a_patch)
-+ [Apache Maven Shared Components project page][jira]
-+ [Contributor License Agreement][cla]
-+ [General GitHub documentation](https://help.github.com/)
-+ [GitHub pull request 
documentation](https://help.github.com/send-pull-requests/)
-+ [Apache Maven Twitter Account](https://twitter.com/ASFMavenProject)
-+ #Maven IRC channel on freenode.org
-
-[jira]: https://issues.apache.org/jira/projects/MSHARED/
-[license]: https://www.apache.org/licenses/LICENSE-2.0
-[ml-list]: https://maven.apache.org/mailing-lists.html
-[code-style]: https://maven.apache.org/developers/conventions/code.html
-[cla]: https://www.apache.org/licenses/#clas
-[maven-wiki]: https://cwiki.apache.org/confluence/display/MAVEN/Index
-[test-results]: 
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-reporting-api/job/master/lastCompletedBuild/testReport/
-[build]: 
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-reporting-api/job/master/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/SECURITY.md 
new/maven-reporting-api-4.1.0/SECURITY.md
--- old/maven-reporting-api-4.0.0/SECURITY.md   1970-01-01 01:00:00.000000000 
+0100
+++ new/maven-reporting-api-4.1.0/SECURITY.md   2026-10-23 21:46:49.000000000 
+0200
@@ -0,0 +1,30 @@
+<!---
+ 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.
+-->
+
+# Security policy
+
+## Report a vulnerability
+
+`apache/maven-reporting-api` follows the [Apache Software Foundation security 
process](https://www.apache.org/security/).
+Report suspected vulnerabilities privately to `[email protected]`; do not 
open public
+GitHub issues or pull requests for security reports.
+
+## Threat model
+
+What the project treats as in scope and out of scope, the security
+properties it provides and disclaims, the adversary model, and how
+findings are triaged are documented in 
<https://github.com/apache/maven/blob/master/THREAT_MODEL.md>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/pom.xml 
new/maven-reporting-api-4.1.0/pom.xml
--- old/maven-reporting-api-4.0.0/pom.xml       2024-10-01 17:35:08.000000000 
+0200
+++ new/maven-reporting-api-4.1.0/pom.xml       2026-10-23 21:46:49.000000000 
+0200
@@ -23,13 +23,13 @@
   <parent>
     <groupId>org.apache.maven.shared</groupId>
     <artifactId>maven-shared-components</artifactId>
-    <version>43</version>
+    <version>50</version>
     <relativePath />
   </parent>
 
   <groupId>org.apache.maven.reporting</groupId>
   <artifactId>maven-reporting-api</artifactId>
-  <version>4.0.0</version>
+  <version>4.1.0</version>
 
   <name>Apache Maven Reporting API</name>
   <description>API to manage report generation.</description>
@@ -37,12 +37,12 @@
   <scm>
     
<connection>scm:git:https://gitbox.apache.org/repos/asf/maven-reporting-api.git</connection>
     
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-reporting-api.git</developerConnection>
-    <tag>maven-reporting-api-4.0.0</tag>
+    <tag>maven-reporting-api-4.1.0</tag>
     
<url>https://github.com/apache/maven-reporting-api/tree/${project.scm.tag}</url>
   </scm>
   <issueManagement>
-    <system>jira</system>
-    
<url>https://issues.apache.org/jira/issues/?jql=project%20%3D%20MSHARED%20AND%20component%20%3D%20maven-reporting-api</url>
+    <system>GitHub Issues</system>
+    <url>https://github.com/apache/maven-reporting-api/issues</url>
   </issueManagement>
   <ciManagement>
     <system>Jenkins</system>
@@ -57,14 +57,19 @@
 
   <properties>
     <javaVersion>8</javaVersion>
-    
<project.build.outputTimestamp>2024-10-01T15:34:59Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2026-10-23T19:46:10Z</project.build.outputTimestamp>
   </properties>
 
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-sink-api</artifactId>
-      <version>2.0.0</version>
+      <version>2.2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
     </dependency>
   </dependencies>
 </project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenMultiPageReport.java
 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenMultiPageReport.java
--- 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenMultiPageReport.java
    2024-10-01 17:35:08.000000000 +0200
+++ 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenMultiPageReport.java
    2026-10-23 21:46:49.000000000 +0200
@@ -24,14 +24,18 @@
 import org.apache.maven.doxia.sink.SinkFactory;
 
 /**
- * Interface created separately for backwards compatibility. This method
- * would ideally have been added in the {@link MavenReport} interface, and the 
other 'generate'
- * method dropped. But that would have rendered all reporting mojo's 
uncompilable and binary incompatible.
+ * A report that renders several pages. Before 4.1.0 this interface was the 
only way for a report to
+ * receive a {@link SinkFactory}: adding an abstract method to {@link 
MavenReport} would have broken
+ * every existing report. Since 4.1.0, {@link MavenReport} declares
+ * {@link MavenReport#generate(Sink, SinkFactory, Locale)} as a default method.
  *
  * @author <a href="mailto:[email protected]";>Kenney Westerhof</a>
  * @see MavenReport#generate(Sink, Locale)
  * @since 3.0 (copied in maven-site-plugin 2.0-beta-6)
+ * @deprecated {@link MavenReport#generate(Sink, SinkFactory, Locale)} now 
exists as a default method,
+ * so implement {@link MavenReport} directly.
  */
+@Deprecated
 public interface MavenMultiPageReport extends MavenReport {
     /**
      * Generate multi page report.
@@ -41,5 +45,6 @@
      * @param sinkFactory the sink factory to create sub sinks.
      * @throws MavenReportException if an error occurs.
      */
+    @Override
     void generate(Sink sink, SinkFactory sinkFactory, Locale locale) throws 
MavenReportException;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenReport.java
 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenReport.java
--- 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenReport.java
     2024-10-01 17:35:08.000000000 +0200
+++ 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenReport.java
     2026-10-23 21:46:49.000000000 +0200
@@ -22,9 +22,12 @@
 import java.util.Locale;
 
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkFactory;
 
 /**
- * The basis for a Maven report.
+ * The basis for a Maven report: a report that the Maven Site Plugin renders 
into the project site.
+ * Report plugins usually extend {@code AbstractMavenReport} from Maven 
Reporting Implementation
+ * instead of implementing this interface directly.
  *
  * @author Brett Porter
  * @author <a href="[email protected]">Emmanuel Venisse</a>
@@ -42,9 +45,10 @@
     String CATEGORY_PROJECT_REPORTS = "Project Reports";
 
     /**
-     * Generate the report depending the wanted locale.
-     * <br>
-     * Mainly used for external reports like javadoc.
+     * Generate the report for the given locale.
+     * <p>
+     * A report that renders a single page implements only this method. A 
report that renders several
+     * pages also overrides {@link #generate(Sink, SinkFactory, Locale)}.
      *
      * @param sink the sink to use for the generation.
      * @param locale the wanted locale to generate the report.
@@ -53,9 +57,26 @@
     void generate(Sink sink, Locale locale) throws MavenReportException;
 
     /**
+     * Generate the report for the given locale, possibly as several pages.
+     * <p>
+     * A report that renders a single page ignores {@code sinkFactory}. A 
report that renders several
+     * pages uses {@code sinkFactory} to create the sinks for its sub-pages. 
By default, this method
+     * renders a single page with {@link #generate(Sink, Locale)}.
+     *
+     * @param sink the sink to use for the main page.
+     * @param sinkFactory the factory for sub-page sinks, or {@code null} when 
sub-pages cannot be created.
+     * @param locale the wanted locale to generate the report.
+     * @throws MavenReportException if any
+     * @since 4.1.0
+     */
+    default void generate(Sink sink, SinkFactory sinkFactory, Locale locale) 
throws MavenReportException {
+        generate(sink, locale);
+    }
+
+    /**
      * Get the path relative to {@link #getReportOutputDirectory()} where the 
report's main output
      * file will be written. The last component is the name of the file 
without any extension. The
-     * actual output extension will by added by the sink implementation.
+     * actual output extension is added by the sink implementation.
      * <p>
      * Note: This method won't be {@code default} anymore when {@link 
#getOutputName()} is removed.
      * You are advised to implement it as soon as possible.
@@ -68,6 +89,9 @@
     }
 
     /**
+     * Get the name of the report's main output file, without any extension.
+     *
+     * @return the output name of this report
      * @deprecated Method name does not properly reflect its purpose. 
Implement and use
      * {@link #getOutputPath()} instead.
      */
@@ -114,19 +138,20 @@
     File getReportOutputDirectory();
 
     /**
-     * An external report is a report which calls a third party program which 
generates some reports too.
-     * A good example is javadoc tool.
+     * Tell whether this report writes its own output files instead of 
rendering into the sink, as the
+     * Javadoc report does when it calls the javadoc tool. The Maven Site 
Plugin does not decorate an
+     * external report with the site skin.
      *
-     * @return {@code true} if this report is external, {@code false} 
otherwise.
-     * Default should be {@code false}.
+     * @return {@code true} if this report is external, {@code false} 
otherwise. Most reports return
+     * {@code false}.
      */
     boolean isExternalReport();
 
     /**
-     * Verify some conditions before generating the report.
+     * Verify some conditions before generating the report, for example that 
there is something to
+     * report on. The Maven Site Plugin skips a report that returns {@code 
false}.
      *
      * @return {@code true} if this report can be generated, {@code false} 
otherwise.
-     * Default should be {@code true}.
      * @throws MavenReportException if any
      */
     boolean canGenerateReport() throws MavenReportException;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenReportException.java
 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenReportException.java
--- 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenReportException.java
    2024-10-01 17:35:08.000000000 +0200
+++ 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenReportException.java
    2026-10-23 21:46:49.000000000 +0200
@@ -30,7 +30,7 @@
     public static final long serialVersionUID = -6200353563231163785L;
 
     /**
-     * Default constructor.
+     * Create an exception with a message.
      *
      * @param message the exception message.
      */
@@ -39,7 +39,7 @@
     }
 
     /**
-     * Other constructor.
+     * Create an exception with a message and a cause.
      *
      * @param message the exception message.
      * @param cause the cause.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
--- 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
     2024-10-01 17:35:08.000000000 +0200
+++ 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/MavenReportRenderer.java
     2026-10-23 21:46:49.000000000 +0200
@@ -19,7 +19,7 @@
 package org.apache.maven.reporting;
 
 /**
- * Basis for rendering report.
+ * Renders the content of a report.
  *
  * @author <a href="mailto:[email protected]";>Jason van Zyl</a>
  * @author <a href="[email protected]">Emmanuel Venisse</a>
@@ -27,12 +27,15 @@
  */
 public interface MavenReportRenderer {
     /**
+     * Get the report's title.
+     *
      * @return the wanted report's title.
      */
     String getTitle();
 
     /**
-     * Renderer a report.
+     * Render the report.
+     *
      * @throws MavenReportException if any
      */
     void render() throws MavenReportException;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/package-info.java
 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/package-info.java
--- 
old/maven-reporting-api-4.0.0/src/main/java/org/apache/maven/reporting/package-info.java
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-reporting-api-4.1.0/src/main/java/org/apache/maven/reporting/package-info.java
    2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+/**
+ * The API between the Maven Site Plugin and the reports it renders.
+ * <p>
+ * A report implements {@link org.apache.maven.reporting.MavenReport}. Report 
plugins usually extend
+ * {@code AbstractMavenReport} from Maven Reporting Implementation, which also 
lets the report run as
+ * a standalone goal. For each configured report, the Maven Site Plugin:
+ * <ol>
+ * <li>calls {@link 
org.apache.maven.reporting.MavenReport#setReportOutputDirectory(java.io.File)
+ * setReportOutputDirectory} with the site output directory;</li>
+ * <li>skips the report if {@link 
org.apache.maven.reporting.MavenReport#canGenerateReport()
+ * canGenerateReport} returns {@code false};</li>
+ * <li>calls {@link 
org.apache.maven.reporting.MavenReport#generate(org.apache.maven.doxia.sink.Sink,
+ * org.apache.maven.doxia.sink.SinkFactory, java.util.Locale) generate} with a 
sink for the main page
+ * and a factory for any sub-pages;</li>
+ * <li>decorates the pages with the site skin, unless
+ * {@link org.apache.maven.reporting.MavenReport#isExternalReport() 
isExternalReport} returns
+ * {@code true}.</li>
+ * </ol>
+ * <p>
+ * Every report plugin implements this API, so a method added to {@code 
MavenReport} must be a
+ * {@code default} method, and two default methods must never call each other.
+ */
+package org.apache.maven.reporting;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-reporting-api-4.0.0/src/site/site.xml 
new/maven-reporting-api-4.1.0/src/site/site.xml
--- old/maven-reporting-api-4.0.0/src/site/site.xml     2024-10-01 
17:35:08.000000000 +0200
+++ new/maven-reporting-api-4.1.0/src/site/site.xml     2026-10-23 
21:46:49.000000000 +0200
@@ -19,7 +19,8 @@
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/DECORATION/1.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 
http://maven.apache.org/xsd/decoration-1.0.0.xsd";>
+<site xmlns="http://maven.apache.org/SITE/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 
https://maven.apache.org/xsd/site-2.0.0.xsd";>
   <body>
     <menu name="Overview">
       <item name="Introduction" href="index.html"/>
@@ -34,4 +35,4 @@
     <menu ref="parent"/>
     <menu ref="reports"/>
   </body>
-</project>
+</site>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/site/xdoc/download.xml.vm 
new/maven-reporting-api-4.1.0/src/site/xdoc/download.xml.vm
--- old/maven-reporting-api-4.0.0/src/site/xdoc/download.xml.vm 2024-10-01 
17:35:08.000000000 +0200
+++ new/maven-reporting-api-4.1.0/src/site/xdoc/download.xml.vm 2026-10-23 
21:46:49.000000000 +0200
@@ -18,109 +18,56 @@
 specific language governing permissions and limitations
 under the License.
 -->
-
 <document>
   <properties>
     <title>Download ${project.name} Source</title>
   </properties>
+
   <body>
     <section name="Download ${project.name} ${project.version} Source">
 
-      <p>${project.name} ${project.version} is distributed in source format. 
Use a source archive if you intend to build
-      ${project.name} yourself. Otherwise, simply use the ready-made binary 
artifacts from central repository.</p>
+      <p><strong>${project.name} ${project.version}</strong> is distributed in 
source format.</p>
 
-      <p>You will be prompted for a mirror - if the file is not found on 
yours, please be patient, as it may take 24
-      hours to reach all mirrors.<p/>
+      <p>Use a source archive if you intend to build 
<strong>${project.name}</strong> yourself.</p>
 
-      <p>In order to guard against corrupted downloads/installations, it is 
highly recommended to
-      <a 
href="http://www.apache.org/dev/release-signing#verifying-signature";>verify the 
signature</a>
-      of the release bundles against the public <a 
href="https://www.apache.org/dist/maven/KEYS";>KEYS</a> used by the Apache Maven
-      developers.</p>
-
-      <p>${project.name} is distributed under the <a 
href="http://www.apache.org/licenses/";>Apache License, version 2.0</a>.</p>
-
-      <p></p>We <b>strongly</b> encourage our users to configure a Maven 
repository mirror closer to their location, please read <a 
href="/guides/mini/guide-mirror-settings.html">How to Use Mirrors for 
Repositories</a>.</p>
-
-      <a name="mirror"/>
-      <subsection name="Mirror">
-
-        <p>
-          [if-any logo]
-          <a href="[link]">
-            <img align="right" src="[logo]" border="0"
-                 alt="logo"/>
-          </a>
-          [end]
-          The currently selected mirror is
-          <b>[preferred]</b>.
-          If you encounter a problem with this mirror,
-          please select another mirror.
-          If all mirrors are failing, there are
-          <i>backup</i>
-          mirrors
-          (at the end of the mirrors list) that should be available.
-        </p>
+      <p>Otherwise, simply use the ready-made binary artifacts from 
<strong>central repository</strong>.</p>
+
+      <p><strong>${project.name}</strong> is distributed under the <a 
href="https://www.apache.org/licenses/";>Apache License, version 2.0</a>.</p>
 
-        <form action="[location]" method="get" id="SelectMirror">
-          Other mirrors:
-          <select name="Preferred">
-            [if-any http]
-            [for http]
-            <option value="[http]">[http]</option>
-            [end]
-            [end]
-            [if-any ftp]
-            [for ftp]
-            <option value="[ftp]">[ftp]</option>
-            [end]
-            [end]
-            [if-any backup]
-            [for backup]
-            <option value="[backup]">[backup] (backup)</option>
-            [end]
-            [end]
-          </select>
-          <input type="submit" value="Change"/>
-        </form>
-
-        <p>
-          You may also consult the
-          <a href="http://www.apache.org/mirrors/";>complete list of
-            mirrors.</a>
+      <subsection name="Files">
+
+        <p>This is the current stable version of 
<strong>${project.name}</strong>.</p>
+
+        <table>
+          <thead>
+            <tr>
+              <th></th>
+              <th>Link</th>
+              <th>Checksum</th>
+              <th>Signature</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr>
+              <td>${project.name} ${project.version} (Source zip)</td>
+              <td><a 
href="https://dlcdn.apache.org/maven/reporting/${project.artifactId}-${project.version}-source-release.zip";>${project.artifactId}-${project.version}-source-release.zip</a></td>
+              <td><a 
href="https://downloads.apache.org/maven/reporting/${project.artifactId}-${project.version}-source-release.zip.sha512";>${project.artifactId}-${project.version}-source-release.zip.sha512</a></td>
+              <td><a 
href="https://downloads.apache.org/maven/reporting/${project.artifactId}-${project.version}-source-release.zip.asc";>${project.artifactId}-${project.version}-source-release.zip.asc</a></td>
+            </tr>
+          </tbody>
+        </table>
+
+        <p>It is essential that you <a 
href="https://www.apache.org/info/verification.html";>verify the integrity</a> 
of the downloaded file
+          using the checksum (.sha512 file)
+          or using the signature (.asc file) against the public <a 
href="https://downloads.apache.org/maven/KEYS";>KEYS</a> used by the Apache 
Maven developers.
         </p>
 
       </subsection>
-      
-      <subsection name="${project.name} ${project.version}">
-        
-      <p>This is the current stable version of ${project.name}.</p>
-        
-      <table>
-        <thead>
-          <tr>
-            <th></th>
-            <th>Link</th>
-            <th>Checksum</th>
-            <th>Signature</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>${project.name} ${project.version} (Source zip)</td>
-            <td><a 
href="[preferred]maven/reporting/${project.artifactId}-${project.version}-source-release.zip">maven/reporting/${project.artifactId}-${project.version}-source-release.zip</a></td>
-            <td><a 
href="https://www.apache.org/dist/maven/reporting/${project.artifactId}-${project.version}-source-release.zip.sha512";>maven/reporting/${project.artifactId}-${project.version}-source-release.zip.sha512</a></td>
-            <td><a 
href="https://www.apache.org/dist/maven/reporting/${project.artifactId}-${project.version}-source-release.zip.asc";>maven/reporting/${project.artifactId}-${project.version}-source-release.zip.asc</a></td>
-          </tr>
-        </tbody>
-      </table>
-      </subsection>
 
       <subsection name="Previous Versions">
-        
-      <p>Older non-recommended releases can be found on our <a 
href="http://archive.apache.org/dist/maven/reporting/";>archive site</a>.</p>
-
+        <p>It is strongly recommended to use the latest release version of 
<strong>${project.name}</strong> to take advantage of the newest features and 
bug fixes.</p>
+        <p>Older non-recommended releases can be found on our <a 
href="https://archive.apache.org/dist/maven/reporting/";>archive site</a>.</p>
       </subsection>
     </section>
   </body>
-</document>
-
+</document>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-reporting-api-4.0.0/src/test/java/org/apache/maven/reporting/MavenReportTest.java
 
new/maven-reporting-api-4.1.0/src/test/java/org/apache/maven/reporting/MavenReportTest.java
--- 
old/maven-reporting-api-4.0.0/src/test/java/org/apache/maven/reporting/MavenReportTest.java
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-reporting-api-4.1.0/src/test/java/org/apache/maven/reporting/MavenReportTest.java
 2026-10-23 21:46:49.000000000 +0200
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ */
+package org.apache.maven.reporting;
+
+import java.io.File;
+import java.util.Locale;
+
+import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkFactory;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
+
+class MavenReportTest {
+
+    private static final Locale LOCALE = Locale.ENGLISH;
+
+    /** Records which generate method the implementation received. */
+    private abstract static class RecordingReport implements MavenReport {
+        String called;
+        Sink sink;
+        SinkFactory sinkFactory;
+        Locale locale;
+
+        @Override
+        public String getOutputPath() {
+            return "report";
+        }
+
+        @Override
+        @SuppressWarnings("deprecation")
+        public String getOutputName() {
+            return getOutputPath();
+        }
+
+        @Override
+        public String getCategoryName() {
+            return CATEGORY_PROJECT_REPORTS;
+        }
+
+        @Override
+        public String getName(Locale locale) {
+            return "report";
+        }
+
+        @Override
+        public String getDescription(Locale locale) {
+            return "report";
+        }
+
+        @Override
+        public void setReportOutputDirectory(File outputDirectory) {}
+
+        @Override
+        public File getReportOutputDirectory() {
+            return null;
+        }
+
+        @Override
+        public boolean isExternalReport() {
+            return false;
+        }
+
+        @Override
+        public boolean canGenerateReport() {
+            return true;
+        }
+    }
+
+    /** A report written before 4.1.0: implements only the single-page method. 
*/
+    private static class SinglePageReport extends RecordingReport {
+        @Override
+        public void generate(Sink sink, Locale locale) {
+            called = "single";
+            this.sink = sink;
+            this.locale = locale;
+        }
+    }
+
+    @Test
+    void multiPageCallReachesSinglePageImplementation() throws 
MavenReportException {
+        SinglePageReport report = new SinglePageReport();
+
+        report.generate(null, null, LOCALE);
+
+        assertEquals("single", report.called);
+        assertSame(LOCALE, report.locale);
+    }
+}

++++++ maven-reporting-api-build.xml ++++++
--- /var/tmp/diff_new_pack.ROtkZY/_old  2026-11-03 18:00:15.566116582 +0100
+++ /var/tmp/diff_new_pack.ROtkZY/_new  2026-11-03 18:00:15.572116836 +0100
@@ -10,9 +10,9 @@
 
   <property name="project.groupId" value="org.apache.maven.reporting"/>
   <property name="project.artifactId" value="maven-reporting-api"/>
-  <property name="project.version" value="4.0.0"/>
+  <property name="project.version" value="4.1.0"/>
 
-  <property name="spec.version" value="4.0"/>
+  <property name="spec.version" value="4.1"/>
 
   <property name="project.organization.name" value="The Apache Software 
Foundation"/>
   <property name="project.name" value="Apache Maven Reporting API"/>

Reply via email to