Compare commits
13 Commits
Author | SHA256 | Date | |
---|---|---|---|
72670980ac | |||
2faf59ff75 | |||
f125c3d4c2 | |||
aca051d3cb | |||
a7a7f3ba5f | |||
db6efdb020 | |||
30c2b5789a | |||
74ec0e37b7 | |||
449ee971c5 | |||
8a19e5fd0a | |||
01702e7d0e | |||
00bc2930c6 | |||
2e72ce1928 |
@@ -0,0 +1,67 @@
|
||||
From 33c9f01af9a3d4d28decbabd0bc02c4b3a875c2d Mon Sep 17 00:00:00 2001
|
||||
From: Fridrich Strba <fridrich@users.noreply.github.com>
|
||||
Date: Tue, 15 Jul 2025 02:23:18 +0200
|
||||
Subject: [PATCH 1/3] Be consistent about data encoding when copying files
|
||||
(#1215)
|
||||
|
||||
---
|
||||
.../maven/plugins/javadoc/StaleHelper.java | 26 ++++++++++++-------
|
||||
1 file changed, 16 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/StaleHelper.java b/src/main/java/org/apache/maven/plugins/javadoc/StaleHelper.java
|
||||
index aabe9840..7517d0fb 100644
|
||||
--- a/src/main/java/org/apache/maven/plugins/javadoc/StaleHelper.java
|
||||
+++ b/src/main/java/org/apache/maven/plugins/javadoc/StaleHelper.java
|
||||
@@ -40,6 +40,20 @@ import org.codehaus.plexus.util.cli.Commandline;
|
||||
*/
|
||||
public class StaleHelper {
|
||||
|
||||
+ /**
|
||||
+ * Compute the encoding of the stale javadoc
|
||||
+ *
|
||||
+ * @return the the encoding of the stale data
|
||||
+ */
|
||||
+ private static Charset getDataCharset() {
|
||||
+ if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("9")
|
||||
+ && JavaVersion.JAVA_SPECIFICATION_VERSION.isBefore("12")) {
|
||||
+ return StandardCharsets.UTF_8;
|
||||
+ } else {
|
||||
+ return Charset.defaultCharset();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Compute the data used to detect a stale javadoc
|
||||
*
|
||||
@@ -55,18 +69,10 @@ public class StaleHelper {
|
||||
String[] args = cmd.getArguments();
|
||||
Collections.addAll(options, args);
|
||||
|
||||
- final Charset cs;
|
||||
- if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("9")
|
||||
- && JavaVersion.JAVA_SPECIFICATION_VERSION.isBefore("12")) {
|
||||
- cs = StandardCharsets.UTF_8;
|
||||
- } else {
|
||||
- cs = Charset.defaultCharset();
|
||||
- }
|
||||
-
|
||||
for (String arg : args) {
|
||||
if (arg.startsWith("@")) {
|
||||
String name = arg.substring(1);
|
||||
- options.addAll(Files.readAllLines(dir.resolve(name), cs));
|
||||
+ options.addAll(Files.readAllLines(dir.resolve(name), getDataCharset()));
|
||||
ignored.add(name);
|
||||
}
|
||||
}
|
||||
@@ -117,7 +123,7 @@ public class StaleHelper {
|
||||
try {
|
||||
List<String> curdata = getStaleData(cmd);
|
||||
Files.createDirectories(path.getParent());
|
||||
- Files.write(path, curdata, StandardCharsets.UTF_8);
|
||||
+ Files.write(path, curdata, getDataCharset());
|
||||
} catch (IOException e) {
|
||||
throw new MavenReportException("Error checking stale data", e);
|
||||
}
|
||||
--
|
||||
2.50.1
|
||||
|
@@ -0,0 +1,78 @@
|
||||
From 6535af41fdb17f29df87194c12f7dc725990f647 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
|
||||
Date: Sat, 12 Jul 2025 09:48:17 +0200
|
||||
Subject: [PATCH 2/3] Make the legacyMode consistent and actually useful
|
||||
|
||||
* Filter out all of the module-info.java files in legacy mode
|
||||
* Do not use --source-path in legacy mode as not to suck any
|
||||
of those module-info.java files back
|
||||
* Generate the javadoc from list of files and not list of
|
||||
packages, which is not working if --source-path is not
|
||||
specified
|
||||
---
|
||||
.../plugins/javadoc/AbstractJavadocMojo.java | 29 ++++++++++---------
|
||||
1 file changed, 16 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
|
||||
index 42a20b9d..2c258c7e 100644
|
||||
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
|
||||
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
|
||||
@@ -2022,7 +2022,7 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
|
||||
getLog().warn("sourceFileIncludes and sourceFileExcludes have no effect when subpackages are specified!");
|
||||
includesExcludesActive = false;
|
||||
}
|
||||
- if (!packageNames.isEmpty() && !includesExcludesActive) {
|
||||
+ if (!packageNames.isEmpty() && !includesExcludesActive && !legacyMode) {
|
||||
addCommandLinePackages(cmd, javadocOutputDirectory, packageNames);
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
@@ -2093,23 +2093,26 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
|
||||
if (subpackages == null || subpackages.isEmpty()) {
|
||||
Collection<String> excludedPackages = getExcludedPackages();
|
||||
|
||||
- final boolean autoExclude;
|
||||
- if (release != null) {
|
||||
- autoExclude = JavaVersion.parse(release).isBefore("9");
|
||||
- } else if (source != null) {
|
||||
- autoExclude = JavaVersion.parse(source).isBefore("9");
|
||||
- } else {
|
||||
- // if legacy mode is active, treat it like pre-Java 9 (exclude module-info),
|
||||
- // otherwise don't auto-exclude anything.
|
||||
- autoExclude = legacyMode;
|
||||
+ // if legacy mode is active, treat it like pre-Java 9 (exclude module-info),
|
||||
+ // otherwise don't auto-exclude anything. Do this regardless of the release
|
||||
+ // or source values specified
|
||||
+ boolean autoExclude = legacyMode;
|
||||
+ if (!autoExclude) {
|
||||
+ if (release != null) {
|
||||
+ autoExclude = JavaVersion.parse(release).isBefore("9");
|
||||
+ } else if (source != null) {
|
||||
+ autoExclude = JavaVersion.parse(source).isBefore("9");
|
||||
+ }
|
||||
}
|
||||
|
||||
for (Path sourcePath : sourcePaths) {
|
||||
File sourceDirectory = sourcePath.toFile();
|
||||
- List<String> files = new ArrayList<>(JavadocUtil.getFilesFromSource(
|
||||
+ ArrayList<String> files = new ArrayList<>(JavadocUtil.getFilesFromSource(
|
||||
sourceDirectory, sourceFileIncludes, sourceFileExcludes, excludedPackages));
|
||||
|
||||
- if (autoExclude && files.remove("module-info.java")) {
|
||||
+ // in the aggregate goal (and theoretically in others too), there can be
|
||||
+ // more then one module-info.java. Filter out all of them.
|
||||
+ if (autoExclude && files.removeIf(s -> s.endsWith("module-info.java"))) {
|
||||
getLog().debug("Auto exclude module-info.java due to source value");
|
||||
}
|
||||
mappedFiles.put(sourcePath, files);
|
||||
@@ -4603,7 +4606,7 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
|
||||
}
|
||||
|
||||
if (moduleSourceDir == null) {
|
||||
- if (!disableSourcepathUsage) {
|
||||
+ if (!disableSourcepathUsage && !legacyMode) {
|
||||
addArgIfNotEmpty(
|
||||
arguments,
|
||||
"-sourcepath",
|
||||
--
|
||||
2.50.0
|
||||
|
@@ -1,3 +1,42 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 17 05:40:16 UTC 2025 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
- Removed patch:
|
||||
* 0003-reproducible-from-environment.patch
|
||||
+ We made the modification more central in maven-archiver
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 15 11:40:44 UTC 2025 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
- Modified patches:
|
||||
* 0001-Be-consistent-about-data-encoding.patch ->
|
||||
0001-Be-consistent-about-data-encoding-when-copying-files.patch
|
||||
+ Take the version of our PR that was integrated upstream
|
||||
* 0003-reproducible-from-environment.patch
|
||||
+ Make the situation exactly the same as before if the
|
||||
SOURCE_DATE_EPOCH is not set
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jul 12 08:03:13 UTC 2025 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
- Added patch:
|
||||
* 0002-Make-the-legacyMode-consistent-and-actually-useful.patch
|
||||
+ fix the legacy mode so that is behaves really as javadoc 8
|
||||
generation
|
||||
- Modified patches:
|
||||
* stale-data-encoding.patch
|
||||
--> 0001-Be-consistent-about-data-encoding.patch
|
||||
+ rebase and fix the coding style so that it corresponds to
|
||||
our PR to the upstream project
|
||||
* reproducible-from-environment.patch
|
||||
--> 0003-reproducible-from-environment.patch
|
||||
+ rebase and make consistent with upstream coding style
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 3 08:26:53 UTC 2025 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
- Add dependency on objectweb-asm to build with sisu 0.9.0.M4
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Dec 8 19:49:03 UTC 2024 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package maven-javadoc-plugin
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -32,8 +32,8 @@ URL: https://maven.apache.org/plugins/maven-javadoc-plugin
|
||||
Source0: %{base_name}-%{version}.tar.xz
|
||||
Source1: %{base_name}-build.xml
|
||||
Patch0: %{base_name}-bootstrap-resources.patch
|
||||
Patch1: stale-data-encoding.patch
|
||||
Patch2: reproducible-from-environment.patch
|
||||
Patch1: 0001-Be-consistent-about-data-encoding-when-copying-files.patch
|
||||
Patch2: 0002-Make-the-legacyMode-consistent-and-actually-useful.patch
|
||||
BuildRequires: apache-commons-io
|
||||
BuildRequires: apache-commons-lang3
|
||||
BuildRequires: apache-commons-text
|
||||
@@ -56,6 +56,7 @@ BuildRequires: maven-resolver-impl
|
||||
BuildRequires: maven-resolver-util
|
||||
BuildRequires: maven-shared-utils
|
||||
BuildRequires: maven-wagon-provider-api
|
||||
BuildRequires: objectweb-asm
|
||||
BuildRequires: plexus-archiver
|
||||
BuildRequires: plexus-interactivity-api
|
||||
BuildRequires: plexus-io
|
||||
@@ -148,6 +149,7 @@ build-jar-repository -s lib \
|
||||
maven-reporting-api/maven-reporting-api \
|
||||
maven-shared-utils/maven-shared-utils \
|
||||
maven-wagon/provider-api \
|
||||
objectweb-asm/asm \
|
||||
org.eclipse.sisu.inject \
|
||||
org.eclipse.sisu.plexus \
|
||||
plexus/archiver \
|
||||
|
@@ -1,17 +0,0 @@
|
||||
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
|
||||
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
|
||||
@@ -2692,6 +2692,14 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
|
||||
private String getBottomText() {
|
||||
final String inceptionYear = project.getInceptionYear();
|
||||
|
||||
+ if ( outputTimestamp == null ||
|
||||
+ outputTimestamp.length() < 1 ||
|
||||
+ ( ( outputTimestamp.length() == 1 )
|
||||
+ && !Character.isDigit( outputTimestamp.charAt(0) ) ) )
|
||||
+ {
|
||||
+ outputTimestamp = System.getenv("SOURCE_DATE_EPOCH");
|
||||
+ }
|
||||
+
|
||||
// get Reproducible Builds outputTimestamp date value or the current local date.
|
||||
final LocalDate localDate = MavenArchiver.parseBuildOutputTimestamp(outputTimestamp)
|
||||
.map(instant -> instant.atZone(ZoneOffset.UTC).toLocalDate())
|
@@ -1,50 +0,0 @@
|
||||
--- a/src/main/java/org/apache/maven/plugins/javadoc/StaleHelper.java
|
||||
+++ b/src/main/java/org/apache/maven/plugins/javadoc/StaleHelper.java
|
||||
@@ -40,6 +40,19 @@ import org.codehaus.plexus.util.cli.Commandline;
|
||||
*/
|
||||
public class StaleHelper {
|
||||
|
||||
+ private static Charset getDataCharset()
|
||||
+ {
|
||||
+ if ( JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast( "9" )
|
||||
+ && JavaVersion.JAVA_SPECIFICATION_VERSION.isBefore( "12" ) )
|
||||
+ {
|
||||
+ return StandardCharsets.UTF_8;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ return Charset.defaultCharset();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Compute the data used to detect a stale javadoc
|
||||
*
|
||||
@@ -55,13 +68,7 @@ public class StaleHelper {
|
||||
String[] args = cmd.getArguments();
|
||||
Collections.addAll(options, args);
|
||||
|
||||
- final Charset cs;
|
||||
- if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("9")
|
||||
- && JavaVersion.JAVA_SPECIFICATION_VERSION.isBefore("12")) {
|
||||
- cs = StandardCharsets.UTF_8;
|
||||
- } else {
|
||||
- cs = Charset.defaultCharset();
|
||||
- }
|
||||
+ final Charset cs = getDataCharset();
|
||||
|
||||
for (String arg : args) {
|
||||
if (arg.startsWith("@")) {
|
||||
@@ -115,9 +122,11 @@ public class StaleHelper {
|
||||
*/
|
||||
public static void writeStaleData(Commandline cmd, Path path) throws MavenReportException {
|
||||
try {
|
||||
+ final Charset cs = getDataCharset();
|
||||
+
|
||||
List<String> curdata = getStaleData(cmd);
|
||||
Files.createDirectories(path.getParent());
|
||||
- Files.write(path, curdata, StandardCharsets.UTF_8);
|
||||
+ Files.write(path, curdata, cs);
|
||||
} catch (IOException e) {
|
||||
throw new MavenReportException("Error checking stale data", e);
|
||||
}
|
Reference in New Issue
Block a user