Skip to content

Instantly share code, notes, and snippets.

View gnodet's full-sized avatar

Guillaume Nodet gnodet

View GitHub Profile
@gnodet
gnodet / stacktrace-demo.svg
Last active November 10, 2026 15:57
Stack trace beautifier demo - before/after comparison
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@gnodet
gnodet / maven-classloading.md
Created October 16, 2026 14:03
Maven Classloading Architecture — current state (4.0) and planned improvements (4.1)

Maven Classloading

This document describes Maven's classloading architecture: the current state as of Maven 4.0 and the planned improvements for Maven 4.1.

For the original Maven 3.x classloading reference, see Takari's Maven Classloading.

Current Architecture (Maven 4.0)

JVM System ClassLoader
@gnodet
gnodet / maven-jar-plugin-4.0.0-beta-2-release-notes.md
Created October 13, 2026 19:30
Apache Maven JAR Plugin 4.0.0-beta-2 — Release Vote

Apache Maven JAR Plugin 4.0.0-beta-2

Warning

This plugin is a Maven 4 plugin and requires Maven 4.x to run. This release introduces several key improvements, including more robust change detection, a new "attach" configuration parameter, and the ability to add the Java version to the MANIFEST.MF. Users will benefit from enhanced stability through fixes for multi-release JAR detection on Windows, improved handling of invalid Automatic-Module-Name entries, and the decoupling of test-jar skipping from the standard maven.test.skip property. Additionally, the plugin now migrates from Maven Archiver to the standard jar tool and includes logic to skip JAR creation when no files match the specified includes.

  • Reformatting of #610 for reducing the amount of redundancies (#620) @desruisseaux
  • Remove redundant project.build.sourceEncoding from IT POMs (#605) @gnodet
  • Disable Jenkins build until Maven 4.0.0-rc-7 is installed on agents (#608) @gnodet
  • [[MNGSITE-529]](https://issues.apache.org/jira/browse/M
@gnodet
gnodet / maven-archiver-4.0.0-beta-6-release-notes.md
Created October 13, 2026 18:59
Apache Maven Archiver 4.0.0-beta-6 — Release Vote

Apache Maven Archiver 4.0.0-beta-6

This release introduces several important bug fixes, including improved handling of negative epoch timestamps and better sanitization of invalid Automatic-Module-Name and manifest entry values. We have addressed multiple NullPointerExceptions related to manifest configurations and plugin maps to improve overall stability. Additionally, this version includes performance optimizations, such as caching model results and reducing redundant pattern compilation, alongside updated documentation regarding null-value behavior in manifest methods.

🐛 Bug Fixes

  • fix: do not clamp negative epoch timestamps to DATE_MIN (#419) @gnodet
  • Remove duplicate LOGGER field in MavenArchiver (#417) @ascheman
  • [MJAR-595] - Clamp outputTimestamp to DATE_MIN when SOURCE_DATE_EPOCH=0 (#401) @gnodet
  • fix: report invalid archiver properties (#414) @efegokdemir
  • Sanitize invalid Automatic-Module-Name instead of failing (#402) @gnodet
@gnodet
gnodet / maven-release.py
Last active October 13, 2026 10:03
Generic Maven shared-component / plugin release script with ATR
#!/usr/bin/env python3
"""
Generic Maven shared-component / plugin release wizard.
Interactive (default):
python3 maven-release.py
Non-interactive (CI / scripting):
python3 maven-release.py --no-tty --project maven-archiver --version 4.0.0-beta-6 --all
python3 maven-release.py --no-tty --project maven-jar-plugin --version 4.0.0-beta-2 --step 0-prereqs
@gnodet
gnodet / maven-resources-plugin-4.0.0-beta-2-release-notes.md
Last active September 30, 2026 13:53
Apache Maven Resources Plugin 4.0.0-beta-2 — Release Vote

Apache Maven Resources Plugin 4.0.0-beta-2

Warning

This plugin is a Maven 4 plugin and requires Maven 4.x to run.

This release brings 7 new parameters to maven-resources-plugin 4.x, exposing capabilities from the companion maven-filtering 4.0.0-beta-2 release: per-resource nonFilteredFiles glob exclusions, graceful binary handling, per-resource ChangeDetection strategy for incremental builds, failOnMissingFilterValue to catch unresolved filter tokens, and outputEncoding for encoding conversion. It also adds 1 bug fix and extensive documentation improvements.

🚀 New features and improvements

  • feat: expose per-resource nonFilteredFiles glob patterns (MRESOURCES-521) (#534) @gnodet
  • feat: expose gracefulBinaryHandling parameter (#536) @gnodet
@gnodet
gnodet / maven-filtering-4.0.0-beta-2-release-notes.md
Last active September 30, 2026 13:52
Apache Maven Filtering 4.0.0-beta-2 — Release Vote

Apache Maven Filtering 4.0.0-beta-2

This release brings significant new capabilities to maven-filtering 4.x, including glob pattern support in filter file paths, a ChangeDetection strategy for incremental builds, per-resource encoding conversion, binary file protection via nonFilteredFiles exclusions and graceful binary handling, and a new failOnMissingFilterValue option to catch unresolved tokens at build time. It also ships 16 bug fixes — covering Windows path normalization, symlink handling, delimiter edge cases, and sensitive property masking in debug logs.

🚀 New features and improvements

  • feat: support glob patterns in filter file paths (#400) @gnodet
  • [MRESOURCES-162] - Add failOnMissingFilterValue option to fail build on unresolved filter tokens (#408) @gnodet
  • Add per-resource encoding support (MRESOURCES-281) ([#406](https://gith
@gnodet
gnodet / maven-filtering-4.0.0-beta-2-release-notes.md
Created September 30, 2026 13:49
Apache Maven Filtering 4.0.0-beta-2 — Release Vote

Apache Maven Filtering 4.0.0-beta-2

Staging repository: https://repository.apache.org/content/repositories/maven-XXXX/ Compare: https://github.com/apache/maven-filtering/compare/maven-filtering-4.0.0-beta-1...maven-filtering-4.0.0-beta-2

This release brings significant new capabilities to maven-filtering 4.x, including glob pattern support in filter file paths, a ChangeDetection strategy for incremental builds, per-resource encoding conversion, binary file protection via nonFilteredFiles exclusions and graceful binary handling, and a new failOnMissingFilterValue option to catch unresolved tokens at build time. It also ships 16 bug fixes — covering Windows path normalization, symlink handling, delimiter edge cases, and sensitive property masking in debug logs. Requires Maven 4.x.

🚀 New features and improvements

@gnodet
gnodet / REVIEW.md
Created September 30, 2026 13:22
ABI Incremental Strategy Review — maven-compiler-plugin PR #1144 + #1145

Architectural Review: ABI Incremental Compilation Strategy (PR #1144 + #1145)

Reviewed code: branch feature/abi-incremental, 3,321 LOC across 15 files in o.a.m.p.compiler.incremental + integration in ToolExecutor (~250 LOC) and AbstractCompilerMojo (~30 LOC).


1. Uncovered / Mishandled Use Cases

1.1 Test compilation bypasses addModuleOptions() — KNOWN, CONFIRMED (Severity: HIGH)