You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2023/01/21 06:12:42 UTC
[logging-log4j-tools] 01/01: #20 - Add Maven changelog plugins
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 <rg...@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.
Re: [logging-log4j-tools] 01/01: #20 - Add Maven changelog plugins
Posted by Matt Sicker <ma...@musigma.org>.
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 <ra...@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 <ma...@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, rgoers@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 <rg...@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.
>>>
>>
>
Re: [logging-log4j-tools] 01/01: #20 - Add Maven changelog plugins
Posted by Ralph Goers <ra...@dslextreme.com>.
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 <ma...@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, rgoers@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 <rg...@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.
>>
>
Re: [logging-log4j-tools] 01/01: #20 - Add Maven changelog plugins
Posted by Volkan Yazıcı <vo...@yazi.ci>.
It is a copy-paste mistake from Ralph.
Other files don't have this problem.
I am working on the PR20 branch, I will fix the copyrights too.
Nevertheless, thanks for pointing that out!
On Sun, Jan 22, 2023 at 11:29 PM Matt Sicker <ma...@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, rgoers@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 <rg...@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.
> >
>
>
Re: [logging-log4j-tools] 01/01: #20 - Add Maven changelog plugins
Posted by Matt Sicker <ma...@musigma.org>.
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, rgoers@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 <rg...@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.
>