This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch parent-10.1.1 in repository https://gitbox.apache.org/repos/asf/logging-log4j-transform.git
commit 69015fad627e06e8e7ded3b1e2a0edbb633ada1a Author: Volkan Yazıcı <[email protected]> AuthorDate: Mon Oct 2 20:24:07 2023 +0200 Create the project website --- .../src/doc/process-classes-mojo.adoc | 70 ---------- .../README.adoc | 77 ----------- .../src/site/markdown/index.md | 88 ------------- .../src/site/site.xml | 52 -------- src/site/_constants.adoc | 41 ++++++ src/site/_constants.tmpl.adoc | 41 ++++++ .../site/_log4j-transform-maven-plugin.adoc | 143 ++++++++++++++------- ...4j-transform-maven-shade-plugin-extensions.adoc | 74 +++++++++++ src/site/index.adoc | 90 +++++++++++++ 9 files changed, 344 insertions(+), 332 deletions(-) diff --git a/log4j-transform-maven-plugin/src/doc/process-classes-mojo.adoc b/log4j-transform-maven-plugin/src/doc/process-classes-mojo.adoc deleted file mode 100644 index b310e23..0000000 --- a/log4j-transform-maven-plugin/src/doc/process-classes-mojo.adoc +++ /dev/null @@ -1,70 +0,0 @@ -// -// 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. -// -= `log4j-transform:process-classes` - -Full name:: - -`org.apache.logging.log4j:log4j-transform-maven-plugin:0.1.0:process-classes` - -Description:: - -Generates static location information of Log4j 2.x API calls in the project classes. -The resulting bytecode will not rely on runtime resolution of the location information. - -Attributes:: - - * Requires a Maven project to be executed - * Requires dependency resolution of artifacts in scope: `<code>compile</code>` - * The goal is thread-safe and supports parallel builds - * Binds by default to the http://maven.apache.org/ref/current/maven-core/lifecycles.html[lifecycle phase]: `process-classes`. - -== Required Parameters - -[cols="3,3,10"] -|=== -|Name|Type|Description - -|`<sourceDirectory>` -|`File` -| The directory containing classes to be processed. -It defaults to `${project.build.outputDirectory}`. - -|`<sourceDirectory>` -|`File` -| The directory where woven classes will be written. -It defaults to `${project.build.outputDirectory}`. -|=== - -== Optional Parameters - -[cols="3,3,10"] -|=== -|Name|Type|Description - -|`<includes>` -|`List<String>` -| Files to include. If empty all class files will be processed. - -|`<excludes>` -|`List<String>` -| Files to exclude. - -|`<staleMillis>` -|`int` -| Sets the granularity in milliseconds of the last modification date for testing if a class file needs weaving. -It defaults to `0` and can be configured using the `lastModGranularityMs` property. -|=== diff --git a/log4j-transform-maven-shade-plugin-extensions/README.adoc b/log4j-transform-maven-shade-plugin-extensions/README.adoc deleted file mode 100644 index e5e3528..0000000 --- a/log4j-transform-maven-shade-plugin-extensions/README.adoc +++ /dev/null @@ -1,77 +0,0 @@ -// -// 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. -// -= Log4j Plugin Cache Transformer - -A -https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html[resource transformer] -for the -https://maven.apache.org/plugins/maven-shade-plugin/index.html[Apache Maven Shade Plugin] -that merges `Log4j2Plugins.dat` plugin caches from all the jars containing Log4j 2.x Core components. - -This transformer was formerly available at -https://github.com/edwgiz/maven-shaded-log4j-transformer[edwgiz/maven-shaded-log4j-transformer] -and was donated to the Apache Software Foundation by its author. - -== Usage - -This resource transformer is usually used together with the `ManifestResourceTrasnformer` and `ServicesResourceTransformer` to integrate Log4j 2.x libraries in a shaded jar. - -A typical configuration is: - -[source,xml] ----- -<project> - [...] - <build> - <plugins> - [...] - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>3.4.1</version> - <dependencies> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-transform-maven-shade-plugin-extensions</artifactId> - <version>0.1.0</version> - </dependency> - </dependencies> - <executions> - <execution> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <transformers> - <transformer implementation="org.apache.logging.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer"/> - <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Multi-Release>true</Multi-Release> - </manifestEntries> - </transformer> - </transformers> - </configuration> - </execution> - </executions> - </plugin> - [...] - </plugins> - </build> - [...] -</project> ----- diff --git a/log4j-transform-maven-shade-plugin-extensions/src/site/markdown/index.md b/log4j-transform-maven-shade-plugin-extensions/src/site/markdown/index.md deleted file mode 100644 index f9cba3c..0000000 --- a/log4j-transform-maven-shade-plugin-extensions/src/site/markdown/index.md +++ /dev/null @@ -1,88 +0,0 @@ -<!-- vim: set syn=markdown : --> -<!-- - 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. ---> - -# Log4j Maven Shaded Plugin Support - -This module provides support for [Apache Maven Shade Plugin](https://maven.apache.org/plugins/maven-shade-plugin/). - -## Introduction to the problem - -Log4j 2 is composed of plugins and they are loaded from Log4j2Plugins.dat file found in the classpath at runtime. -Shading overrides the cache files provided by each individual module. For instance, -web and -core, etc. ... -So if you happen to shade libraries providing Log4j 2 plugins, you need this thing. - - -## Overview - -This module includes the transformer for [Apache Maven Shade Plugin](https://maven.apache.org/plugins/maven-shade-plugin/), that concatenates `Log4j2Plugins.dat` files, -so it must be used when there are several Log4j2Plugins.dat files in the fat jar dependencies. - -For example a fat jar must be assembled with `org.apache.logging.log4j:log4j-web` that for sure requires also `org.apache.logging.log4j:log4j-core`. Still both includes `Log4j2Plugins.dat` resources the transformer must be configured. - -## Usage - -The transformer configuration must augment standard [Apache Maven Shade Plugin](https://maven.apache.org/plugins/maven-shade-plugin/) configuration in `pom.xml`. - -```xml - -<project> - ... - <build> - ... - <plugins> - ... - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>3.2.4</version> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <transformers> - ... - <transformer - implementation="org.apache.logging.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer"> - </transformer> - </transformers> - ... - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>org.apache.logging.maven</groupId> - <artifactId>log4j-maven-shade-plugin-extensions</artifactId> - <version>${log4jVersion}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - - </build> - -</project> -``` -In the above example `${log4jVersion}` placeholder should point to the same version of the fat jar dependencies of `org.apache.logging.log4j` group - -# Legacy - -Initially the transformer was developed in this repository https://github.com/edwgiz/maven-shaded-log4j-transformer diff --git a/log4j-transform-maven-shade-plugin-extensions/src/site/site.xml b/log4j-transform-maven-shade-plugin-extensions/src/site/site.xml deleted file mode 100644 index f77f23e..0000000 --- a/log4j-transform-maven-shade-plugin-extensions/src/site/site.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?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 - ~ - ~ 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. - --> -<project name="Log4j Maven Shade Plugin Transformer" - xmlns="http://maven.apache.org/DECORATION/1.4.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> - <body> - <links> - <item name="Apache" href="http://www.apache.org/" /> - <item name="Logging Services" href="http://logging.apache.org/"/> - <item name="Log4j" href="../index.html"/> - </links> - - <!-- Component-specific reports --> - <menu ref="reports"/> - - <!-- Overall Project Info --> - <menu name="Log4j Project Information" img="icon-info-sign"> - <item name="Dependencies" href="../dependencies.html" /> - <item name="Dependency Convergence" href="../dependency-convergence.html" /> - <item name="Dependency Management" href="../dependency-management.html" /> - <item name="Project Team" href="../team-list.html" /> - <item name="Mailing Lists" href="../mail-lists.html" /> - <item name="Issue Tracking" href="../issue-tracking.html" /> - <item name="Project License" href="../license.html" /> - <item name="Source Repository" href="../source-repository.html" /> - <item name="Project Summary" href="../project-summary.html" /> - </menu> - - <menu name="Log4j Project Reports" img="icon-cog"> - <item name="Changes Report" href="../changes-report.html" /> - <item name="JIRA Report" href="../jira-report.html" /> - <item name="Surefire Report" href="../surefire-report.html" /> - <item name="RAT Report" href="../rat-report.html" /> - </menu> - </body> -</project> diff --git a/src/site/_constants.adoc b/src/site/_constants.adoc new file mode 100644 index 0000000..b52ac71 --- /dev/null +++ b/src/site/_constants.adoc @@ -0,0 +1,41 @@ +//// + 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. +//// + +//// + ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██ + ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ + ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ + ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██ + + IF THIS FILE DOESN'T HAVE A `.tmpl.adoc` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT IT! + + `_constants.adoc` is auto-generated from `_constants.tmpl.adoc`. + Auto-generation happens during `process-sources` phase of Maven. + Hence, you must always + + 1. Edit `_constants.tmpl.adoc` + 2. Run `./mvnw process-sources` + 3. Commit both `_constants.tmpl.adoc` and the generated `_constants.adoc` +//// + +:project-github-url: https://github.com/apache/logging-log4j-transform +:project-version: 0.2.0-SNAPSHOT +:project-name: Log4j Transform +:project-id: log4j-transform +:java-target-version: 8 +:java-compiler-version: [17,18) diff --git a/src/site/_constants.tmpl.adoc b/src/site/_constants.tmpl.adoc new file mode 100644 index 0000000..5c4b881 --- /dev/null +++ b/src/site/_constants.tmpl.adoc @@ -0,0 +1,41 @@ +//// + 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. +//// + +//// + ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██ + ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ + ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ + ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██ + + IF THIS FILE DOESN'T HAVE A `.tmpl.adoc` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT IT! + + `_constants.adoc` is auto-generated from `_constants.tmpl.adoc`. + Auto-generation happens during `process-sources` phase of Maven. + Hence, you must always + + 1. Edit `_constants.tmpl.adoc` + 2. Run `./mvnw process-sources` + 3. Commit both `_constants.tmpl.adoc` and the generated `_constants.adoc` +//// + +:project-github-url: ${scm.url} +:project-version: ${project.version} +:project-name: Log4j Transform +:project-id: log4j-transform +:java-target-version: ${maven.compiler.target} +:java-compiler-version: ${minimalJavaBuildVersion} diff --git a/log4j-transform-maven-plugin/README.adoc b/src/site/_log4j-transform-maven-plugin.adoc similarity index 58% rename from log4j-transform-maven-plugin/README.adoc rename to src/site/_log4j-transform-maven-plugin.adoc index 907ce78..d2da48b 100644 --- a/log4j-transform-maven-plugin/README.adoc +++ b/src/site/_log4j-transform-maven-plugin.adoc @@ -1,25 +1,27 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to you under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -= Log4j Transform Maven Plugin +//// + 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. +//// +[#log4j-transform-maven-plugin] +== Log4j Transform Maven Plugin The Transform Plugin is used to postprocess the compiled classes of your project and replace all Log4j 2.x API calls with https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html[`LogBuilder`] calls with a statically precomputed location. This allows you to use location information in your logs without incurring in the *expensive* runtime calls usually used to acquire it. -== Why do we need it +[#log4j-transform-maven-plugin-why] +=== Why do we need it Finding the location of a logging call is a very expensive operation (a couple of microseconds). @@ -141,7 +143,8 @@ By comparison, *disabling* location information on the same machine gives: |=== -== How it works +[#log4j-transform-maven-plugin-how] +=== How it works The working principle is very simple: every call to the Log4j 2.x API like [source,java] @@ -167,41 +170,91 @@ public void helloLog() { In the current implementation locations are stored in classes whose name ends in `+++$$Log4j2$$Cache+++`, so they can not accidentally be used by XML/JSON serializers. -== Goals +[#log4j-transform-maven-plugin-goals] +=== Goals This plugin consists of a single goal: -xref:src/doc/process-classes-mojo.adoc[`log4j-transform:process-classes`]:: +xref:#log4j-transform-maven-plugin-process-classes[`log4j-transform:process-classes`]:: is bound to the process-classes phase and weaves your classes to include precomputed location information. -== Usage +[#log4j-transform-maven-plugin-process-classes] +==== `log4j-transform:process-classes` + +Full name:: + +`org.apache.logging.log4j:log4j-transform-maven-plugin:{project-version}:process-classes` + +Description:: + +Generates static location information of Log4j 2.x API calls in the project classes. +The resulting bytecode will not rely on runtime resolution of the location information. + +Attributes:: + +* Requires a Maven project to be executed +* Requires dependency resolution of artifacts in scope: `<code>compile</code>` +* The goal is thread-safe and supports parallel builds +* Binds by default to the http://maven.apache.org/ref/current/maven-core/lifecycles.html[lifecycle phase]: `process-classes`. + +[#log4j-transform-maven-plugin-process-classes-required-parameters] +===== Required Parameters + +[cols="3,3,10"] +|=== +|Name|Type|Description + +|`<sourceDirectory>` +|`File` +| The directory containing classes to be processed. +It defaults to `${project.build.outputDirectory}`. + +|`<sourceDirectory>` +|`File` +| The directory where woven classes will be written. +It defaults to `${project.build.outputDirectory}`. +|=== + +[#log4j-transform-maven-plugin-process-classes-optional-parameters] +===== Optional Parameters + +[cols="3,3,10"] +|=== +|Name|Type|Description + +|`<includes>` +|`List<String>` +| Files to include. If empty all class files will be processed. + +|`<excludes>` +|`List<String>` +| Files to exclude. + +|`<staleMillis>` +|`int` +| Sets the granularity in milliseconds of the last modification date for testing if a class file needs weaving. +It defaults to `0` and can be configured using the `lastModGranularityMs` property. +|=== + +[#log4j-transform-maven-plugin-usage] +=== Usage To use the plugin you need to declare a dependency on https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-api/2.20.0[`log4j-api`] version 2.20.0 or newer. Add the following configuration to your POM file: -[source,xml] +[source,xml,subs="+attributes"] ---- -<project> - [...] - <build> - [...] - <plugins> - <plugin> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-transform-maven-plugin</artifactId> - <version>0.1.0</version> - <executions> - <execution> - <goals> - <goal>process-classes</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - [...] - </build> - [...] -</project> +<plugin> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-transform-maven-plugin</artifactId> + <version>{project-version}</version> + <executions> + <execution> + <goals> + <goal>process-classes</goal> + </goals> + </execution> + </executions> +</plugin> ---- diff --git a/src/site/_log4j-transform-maven-shade-plugin-extensions.adoc b/src/site/_log4j-transform-maven-shade-plugin-extensions.adoc new file mode 100644 index 0000000..abad624 --- /dev/null +++ b/src/site/_log4j-transform-maven-shade-plugin-extensions.adoc @@ -0,0 +1,74 @@ +//// + 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. +//// +[#maven-shade-plugin-extensions] +== Maven Shade Plugin Extensions + +This project contains a collection of https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html[resource transformer]s for the Apache Maven Shade Plugin that allows you to use additional Log4j 2.x Core component modules. + +[#log4j-plugin-cache-transformer] +=== Log4j Plugin Cache Transformer + +A +https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html[resource transformer] +for the +https://maven.apache.org/plugins/maven-shade-plugin/index.html[Apache Maven Shade Plugin] +that merges `Log4j2Plugins.dat` plugin caches from all the jars containing Log4j 2.x Core components. + +This transformer was formerly available at +https://github.com/edwgiz/maven-shaded-log4j-transformer[edwgiz/maven-shaded-log4j-transformer] +and was donated to the Apache Software Foundation by its author. + +[#log4j-plugin-cache-transformer-usage] +==== Usage + +This resource transformer is usually used together with the `ManifestResourceTransformer` and `ServicesResourceTransformer` to integrate Log4j 2.x libraries in a shaded JAR. + +A typical configuration is: + +[source,xml,subs="+attributes"] +---- +<plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.4.1</version> + <dependencies> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-transform-maven-shade-plugin-extensions</artifactId> + <version>{project-version}</version> + </dependency> + </dependencies> + <executions> + <execution> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <transformers> + <transformer implementation="org.apache.logging.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer"/> + <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Multi-Release>true</Multi-Release> + </manifestEntries> + </transformer> + </transformers> + </configuration> + </execution> + </executions> +</plugin> +---- diff --git a/src/site/index.adoc b/src/site/index.adoc new file mode 100644 index 0000000..dedb768 --- /dev/null +++ b/src/site/index.adoc @@ -0,0 +1,90 @@ +//// +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. +//// + +include::_constants.adoc[] + += Log4j Transform + +{project-name} contains tools for binary postprocessing of projects that use https://logging.apache.org/log4j/2.x/[the Apache Log4j2 API]. + +include::_log4j-transform-maven-plugin.adoc[] + +include::_log4j-transform-maven-shade-plugin-extensions.adoc[] + +[#development] +== Development + +{project-name} uses {project-github-url}[GitHub] for source code management. + +The project requires a Java compiler matching the `{java-compiler-version}` range and targets Java `{java-target-version}`. + +You can build and verify sources using: + +[source,bash] +---- +./mvnw verify +---- + +You can build and view the website as follows: + +[source,bash] +---- +./mvnw -N site +python -m http.server -d target/site +---- + +[#distribution] +== Distribution + +In accordance with the Apache Software Foundation's release https://infra.apache.org/release-distribution.html[distribution policy] and https://infra.apache.org/release-publishing.html[creation process], project artifacts are _officially_ accessible from the following locations: + +* ASF https://repository.apache.org/content/repositories/releases[Release] and https://repository.apache.org/content/repositories/snapshots[snapshot] repositories (mirrored to https://central.sonatype.dev/[the Maven Central Repository]) +* ASF https://downloads.apache.org/logging/{project-id}[Distribution directory] + +See xref:#release-instructions[the release instructions] for details. + +[#support] +== Support + +Please keep in mind that this project is intended for internal usage only. +You can use GitHub Issues for feature requests and bug reports – not questions! +See https://logging.apache.org/log4j/2.x/support.html[the Log4j support policy] for details. + +[#security] +== Security + +If you have encountered an unlisted security vulnerability or other unexpected behaviour that has security impact, please report them privately to mailto:[email protected][the Log4j security mailing list]. +See https://logging.apache.org/log4j/2.x/security.html[the Log4j Security page] for further details. + +include::_release-notes.adoc[] + +[#release-instructions] +== Release instructions + +{project-name} employs the CI/CD foundation provided by the https://logging.apache.org/logging-parent[`logging-parent`]. +You can simply use its release instructions. + +[#license] +== License + +Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. +See `NOTICE.txt` 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.
