License headers are collapsed for me, too. I usually only notice them when looking at a diff or PR.
> On Jan 23, 2023, at 8:52 AM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > They were generated by the Maven Archetype. IntelliJ collapses them for me so > I didn’t notice. > > Ralph > >> On Jan 22, 2023, at 3:29 PM, Matt Sicker <m...@musigma.org> wrote: >> >> Are these copyrights really supposed to be so ancient? The copyright year >> goes in the NOTICE.txt file these days anyways, so those could be simplified. >> — >> Matt Sicker >> >>> On Jan 21, 2023, at 00:12, rgo...@apache.org wrote: >>> >>> This is an automated email from the ASF dual-hosted git repository. >>> >>> rgoers pushed a commit to branch PR20 >>> in repository https://gitbox.apache.org/repos/asf/logging-log4j-tools.git >>> >>> commit 1642bc8ee6210fc75dff3e9f319f853e76d65ee5 >>> Author: Ralph Goers <rgo...@apache.org> >>> AuthorDate: Fri Jan 20 23:08:37 2023 -0700 >>> >>> #20 - Add Maven changelog plugins >>> --- >>> .../changelog/exporter/ChangelogExporter.java | 7 +- >>> .../changelog/exporter/ChangelogExporterArgs.java | 6 +- >>> .../changelog/releaser/ChangelogReleaser.java | 6 +- >>> .../changelog/releaser/ChangelogReleaserArgs.java | 6 +- >>> log4j-maven-changelog-plugin/pom.xml | 142 >>> +++++++++++++++++++++ >>> .../java/org/apache/logging/log4j/ExportMojo.java | 68 ++++++++++ >>> .../java/org/apache/logging/log4j/ReleaseMojo.java | 71 +++++++++++ >>> pom.xml | 4 +- >>> 8 files changed, 299 insertions(+), 11 deletions(-) >>> >>> diff --git >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java >>> >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java >>> index 236dcea..82c0c17 100644 >>> --- >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java >>> +++ >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java >>> @@ -34,10 +34,10 @@ public final class ChangelogExporter { >>> private ChangelogExporter() {} >>> >>> public static void main(final String[] mainArgs) { >>> + performExport(ChangelogExporterArgs.fromSystemProperties()); >>> + } >>> >>> - // Read arguments >>> - final ChangelogExporterArgs args = >>> ChangelogExporterArgs.fromSystemProperties(); >>> - >>> + public static void performExport(final ChangelogExporterArgs args) { >>> // Find release directories >>> final List<Path> releaseDirectories = findReleaseDirectories(args); >>> final int releaseDirectoryCount = releaseDirectories.size(); >>> @@ -107,7 +107,6 @@ public final class ChangelogExporter { >>> // Export the release index >>> final Path changelogIndexTemplateFile = >>> ChangelogFiles.indexTemplateFile(args.changelogDirectory); >>> exportIndex(args.outputDirectory, changelogReleases, >>> changelogIndexTemplateFile); >>> - >>> } >>> >>> private static List<Path> findReleaseDirectories(ChangelogExporterArgs >>> args) { >>> diff --git >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporterArgs.java >>> >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporterArgs.java >>> index 8d79d9a..32a4878 100644 >>> --- >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporterArgs.java >>> +++ >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporterArgs.java >>> @@ -20,7 +20,7 @@ import java.nio.file.Path; >>> >>> import static >>> org.apache.logging.log4j.changelog.util.PropertyUtils.requireNonBlankPathProperty; >>> >>> -final class ChangelogExporterArgs { >>> +public final class ChangelogExporterArgs { >>> >>> final Path changelogDirectory; >>> >>> @@ -37,4 +37,8 @@ final class ChangelogExporterArgs { >>> return new ChangelogExporterArgs(changelogDirectory, outputDirectory); >>> } >>> >>> + public static ChangelogExporterArgs fromArgs(final Path >>> changelogDirectory, final Path outputDirectory) { >>> + return new ChangelogExporterArgs(changelogDirectory, >>> outputDirectory); >>> + } >>> + >>> } >>> diff --git >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaser.java >>> >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaser.java >>> index 55b4fca..02268b3 100644 >>> --- >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaser.java >>> +++ >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaser.java >>> @@ -35,9 +35,10 @@ public final class ChangelogReleaser { >>> >>> public static void main(final String[] mainArgs) throws Exception { >>> >>> - // Read arguments >>> - final ChangelogReleaserArgs args = >>> ChangelogReleaserArgs.fromSystemProperties(); >>> + performRelease(ChangelogReleaserArgs.fromSystemProperties()); >>> + } >>> >>> + public static void performRelease(final ChangelogReleaserArgs args) >>> throws Exception { >>> // Read the release date and version >>> final String releaseDate = ISO_DATE.format(LocalDate.now()); >>> final int releaseVersionMajor = >>> VersionUtils.versionMajor(args.releaseVersion); >>> @@ -53,7 +54,6 @@ public final class ChangelogReleaser { >>> >>> // Write the release changelog template >>> populateReleaseChangelogTemplateFile(unreleasedDirectory, >>> releaseDirectory); >>> - >>> } >>> >>> private static void populateChangelogEntryFiles( >>> diff --git >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaserArgs.java >>> >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaserArgs.java >>> index f6bf6cb..7a47c3c 100644 >>> --- >>> a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaserArgs.java >>> +++ >>> b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaserArgs.java >>> @@ -22,7 +22,7 @@ import static >>> org.apache.logging.log4j.changelog.util.PropertyUtils.requireNonBl >>> import static >>> org.apache.logging.log4j.changelog.util.PropertyUtils.requireNonBlankStringProperty; >>> import static >>> org.apache.logging.log4j.changelog.util.VersionUtils.requireSemanticVersioning; >>> >>> -final class ChangelogReleaserArgs { >>> +public final class ChangelogReleaserArgs { >>> >>> final Path changelogDirectory; >>> >>> @@ -41,4 +41,8 @@ final class ChangelogReleaserArgs { >>> return new ChangelogReleaserArgs(changelogDirectory, releaseVersion); >>> } >>> >>> + public static ChangelogReleaserArgs fromArgs(final Path >>> changelogDirectory, final String releaseVersion) { >>> + return new ChangelogReleaserArgs(changelogDirectory, >>> releaseVersion); >>> + } >>> + >>> } >>> diff --git a/log4j-maven-changelog-plugin/pom.xml >>> b/log4j-maven-changelog-plugin/pom.xml >>> new file mode 100644 >>> index 0000000..7dc4ea6 >>> --- /dev/null >>> +++ b/log4j-maven-changelog-plugin/pom.xml >>> @@ -0,0 +1,142 @@ >>> +<?xml version="1.0" encoding="UTF-8"?> >>> +<!-- >>> + 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 >>> + >>> + https://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. >>> +--> >>> +<project xmlns="http://maven.apache.org/POM/4.0.0" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >>> http://maven.apache.org/xsd/maven-4.0.0.xsd"> >>> + <modelVersion>4.0.0</modelVersion> >>> + <parent> >>> + <groupId>org.apache.logging.log4j</groupId> >>> + <artifactId>log4j-tools-parent</artifactId> >>> + <version>${revision}</version> >>> + <relativePath>../log4j-tools-parent/pom.xml</relativePath> >>> + </parent> >>> + <artifactId>log4j-maven-changelog-plugin</artifactId> >>> + <packaging>maven-plugin</packaging> >>> + >>> + <name>log4j-maven-changelog-plugin Maven Plugin</name> >>> + >>> + <!-- FIXME change it to the project's website --> >>> + <url>http://maven.apache.org</url> >>> + >>> + <properties> >>> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> >>> + </properties> >>> + >>> + <dependencyManagement> >>> + <dependencies> >>> + <dependency> >>> + <groupId>org.codehaus.plexus</groupId> >>> + <artifactId>plexus-utils</artifactId> >>> + <version>3.3.1</version> >>> + </dependency> >>> + </dependencies> >>> + </dependencyManagement> >>> + >>> + <dependencies> >>> + <dependency> >>> + <groupId>org.apache.maven</groupId> >>> + <artifactId>maven-plugin-api</artifactId> >>> + <version>3.8.7</version> >>> + </dependency> >>> + <dependency> >>> + <groupId>org.apache.maven.plugin-tools</groupId> >>> + <artifactId>maven-plugin-annotations</artifactId> >>> + <version>3.6.4</version> >>> + <scope>provided</scope> >>> + </dependency> >>> + <dependency> >>> + <groupId>org.codehaus.plexus</groupId> >>> + <artifactId>plexus-utils</artifactId> >>> + <version>3.3.1</version> >>> + </dependency> >>> + <dependency> >>> + <groupId>org.apache.logging.log4j</groupId> >>> + <artifactId>log4j-changelog</artifactId> >>> + <version>${project.version}</version> >>> + </dependency> >>> + <dependency> >>> + <groupId>junit</groupId> >>> + <artifactId>junit</artifactId> >>> + <version>4.8.2</version> >>> + <scope>test</scope> >>> + </dependency> >>> + </dependencies> >>> + >>> + <build> >>> + <plugins> >>> + <plugin> >>> + <groupId>org.apache.maven.plugins</groupId> >>> + <artifactId>maven-plugin-plugin</artifactId> >>> + <version>3.5</version> >>> + <configuration> >>> + <goalPrefix>log4j-changelog</goalPrefix> >>> + <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> >>> + <mojoDependencies> >>> + </mojoDependencies> >>> + </configuration> >>> + <executions> >>> + <execution> >>> + <id>mojo-descriptor</id> >>> + <goals> >>> + <goal>descriptor</goal> >>> + </goals> >>> + </execution> >>> + </executions> >>> + </plugin> >>> + </plugins> >>> + </build> >>> + <profiles> >>> + <profile> >>> + <id>run-its</id> >>> + <build> >>> + >>> + <plugins> >>> + <plugin> >>> + <groupId>org.apache.maven.plugins</groupId> >>> + <artifactId>maven-invoker-plugin</artifactId> >>> + <version>1.7</version> >>> + <configuration> >>> + <debug>true</debug> >>> + >>> <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo> >>> + <pomIncludes> >>> + <pomInclude>*/pom.xml</pomInclude> >>> + </pomIncludes> >>> + <postBuildHookScript>verify</postBuildHookScript> >>> + >>> <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath> >>> + <settingsFile>src/it/settings.xml</settingsFile> >>> + <goals> >>> + <goal>clean</goal> >>> + <goal>test-compile</goal> >>> + </goals> >>> + </configuration> >>> + <executions> >>> + <execution> >>> + <id>integration-test</id> >>> + <goals> >>> + <goal>install</goal> >>> + <goal>integration-test</goal> >>> + <goal>verify</goal> >>> + </goals> >>> + </execution> >>> + </executions> >>> + </plugin> >>> + </plugins> >>> + >>> + </build> >>> + </profile> >>> + </profiles> >>> +</project> >>> diff --git >>> a/log4j-maven-changelog-plugin/src/main/java/org/apache/logging/log4j/ExportMojo.java >>> >>> b/log4j-maven-changelog-plugin/src/main/java/org/apache/logging/log4j/ExportMojo.java >>> new file mode 100644 >>> index 0000000..99919a5 >>> --- /dev/null >>> +++ >>> b/log4j-maven-changelog-plugin/src/main/java/org/apache/logging/log4j/ExportMojo.java >>> @@ -0,0 +1,68 @@ >>> +/* >>> + * 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.logging.log4j; >>> + >>> +/* >>> + * Copyright 2001-2005 The Apache Software Foundation. >>> + * >>> + * 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. >>> + */ >>> + >>> +import java.io.File; >>> + >>> +import org.apache.logging.log4j.changelog.exporter.ChangelogExporter; >>> +import org.apache.logging.log4j.changelog.exporter.ChangelogExporterArgs; >>> + >>> +import org.apache.maven.plugin.AbstractMojo; >>> +import org.apache.maven.plugin.MojoExecutionException; >>> +import org.apache.maven.plugins.annotations.LifecyclePhase; >>> +import org.apache.maven.plugins.annotations.Mojo; >>> +import org.apache.maven.plugins.annotations.Parameter; >>> + >>> +/** >>> + * Goal which creates a changelog. >>> + */ >>> +@Mojo(name = "export", defaultPhase = LifecyclePhase.PRE_SITE) >>> +public class ExportMojo extends AbstractMojo { >>> + /** >>> + * Location of the file. >>> + */ >>> + @Parameter(defaultValue = >>> "${project.build.directory}/generated-sources/site/asciidoc/changelog", >>> + property = "outputDir", required = true) >>> + private File outputDirectory; >>> + >>> + /** >>> + * Location of the file. >>> + */ >>> + @Parameter(defaultValue = "${project.basedir}/src/changelog", property >>> = "changeLogDir", required = true) >>> + private File changeLogDirectory; >>> + >>> + public void execute() throws MojoExecutionException { >>> + >>> ChangelogExporter.performExport(ChangelogExporterArgs.fromArgs(changeLogDirectory.toPath(), >>> + outputDirectory.toPath())); >>> + } >>> +} >>> diff --git >>> a/log4j-maven-changelog-plugin/src/main/java/org/apache/logging/log4j/ReleaseMojo.java >>> >>> b/log4j-maven-changelog-plugin/src/main/java/org/apache/logging/log4j/ReleaseMojo.java >>> new file mode 100644 >>> index 0000000..001a692 >>> --- /dev/null >>> +++ >>> b/log4j-maven-changelog-plugin/src/main/java/org/apache/logging/log4j/ReleaseMojo.java >>> @@ -0,0 +1,71 @@ >>> +/* >>> + * 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.logging.log4j; >>> + >>> +/* >>> + * Copyright 2001-2005 The Apache Software Foundation. >>> + * >>> + * 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. >>> + */ >>> + >>> +import java.io.File; >>> + >>> +import org.apache.logging.log4j.changelog.releaser.ChangelogReleaser; >>> +import org.apache.logging.log4j.changelog.releaser.ChangelogReleaserArgs; >>> + >>> +import org.apache.maven.plugin.AbstractMojo; >>> +import org.apache.maven.plugin.MojoExecutionException; >>> +import org.apache.maven.plugins.annotations.LifecyclePhase; >>> +import org.apache.maven.plugins.annotations.Mojo; >>> +import org.apache.maven.plugins.annotations.Parameter; >>> + >>> +/** >>> + * Goal which creates a changelog. >>> + */ >>> +@Mojo(name = "release", defaultPhase = LifecyclePhase.PRE_SITE) >>> +public class ReleaseMojo extends AbstractMojo { >>> + /** >>> + * Location of the file. >>> + */ >>> + @Parameter(property = "version", required = true) >>> + private String releaseVersion; >>> + >>> + /** >>> + * Location of the file. >>> + */ >>> + @Parameter(defaultValue = "${project.basedir}/src/changelog", property >>> = "changeLogDir", required = true) >>> + private File changeLogDirectory; >>> + >>> + public void execute() throws MojoExecutionException { >>> + try { >>> + >>> ChangelogReleaser.performRelease(ChangelogReleaserArgs.fromArgs(changeLogDirectory.toPath(), >>> + releaseVersion)); >>> + } catch (Exception ex) { >>> + throw new MojoExecutionException("Error performing release", >>> ex); >>> + } >>> + } >>> +} >>> diff --git a/pom.xml b/pom.xml >>> index c7c76fa..5abb06e 100644 >>> --- a/pom.xml >>> +++ b/pom.xml >>> @@ -48,13 +48,13 @@ >>> >>> <!-- Modules here must have a corresponding entry in >>> `dependencyManagement > dependencies` block below! --> >>> <module>log4j-changelog</module> >>> - >>> + <module>log4j-maven-changelog-plugin</module> >>> </modules> >>> >>> <properties> >>> >>> <!-- project version --> >>> - <revision>0.1.0-SNAPSHOT</revision> >>> + <revision>0.2.0-SNAPSHOT</revision> >>> >>> <!-- `minimalJavaBuildVersion` is employed by `org.apache:apache`, which >>> is the parent of `org.apache.logging:logging-parent`, which is the parent >>> of us. >>> `minimalJavaBuildVersion` is used for enforcing the compiler version. >>> >> >