You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gi...@apache.org on 2024/04/22 08:26:46 UTC
(logging-log4j-transform) branch main-site-stg-out updated: Add website content generated from `e34d0762519f1e69b5f22a1b5ff8beb23e6eb8e5`
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch main-site-stg-out
in repository https://gitbox.apache.org/repos/asf/logging-log4j-transform.git
The following commit(s) were added to refs/heads/main-site-stg-out by this push:
new 423b1bb Add website content generated from `e34d0762519f1e69b5f22a1b5ff8beb23e6eb8e5`
423b1bb is described below
commit 423b1bb54415694c5b90192a85bf22993ed2679f
Author: ASF Logging Services RM <pr...@logging.apache.org>
AuthorDate: Mon Apr 22 08:26:30 2024 +0000
Add website content generated from `e34d0762519f1e69b5f22a1b5ff8beb23e6eb8e5`
---
404.html | 82 ++++
README.txt | 1 -
_/css/site.css | 3 +
_/css/vendor/tabs.css | 110 +++++
_/font/roboto-cyrillic-400-italic.woff2 | Bin 0 -> 10292 bytes
_/font/roboto-cyrillic-400-normal.woff2 | Bin 0 -> 9628 bytes
_/font/roboto-cyrillic-500-italic.woff2 | Bin 0 -> 10640 bytes
_/font/roboto-cyrillic-500-normal.woff2 | Bin 0 -> 9840 bytes
_/font/roboto-latin-400-italic.woff | Bin 0 -> 22048 bytes
_/font/roboto-latin-400-italic.woff2 | Bin 0 -> 17368 bytes
_/font/roboto-latin-400-normal.woff | Bin 0 -> 20344 bytes
_/font/roboto-latin-400-normal.woff2 | Bin 0 -> 15744 bytes
_/font/roboto-latin-500-italic.woff | Bin 0 -> 22092 bytes
_/font/roboto-latin-500-italic.woff2 | Bin 0 -> 17336 bytes
_/font/roboto-latin-500-normal.woff | Bin 0 -> 20544 bytes
_/font/roboto-latin-500-normal.woff2 | Bin 0 -> 15920 bytes
_/font/roboto-mono-latin-400-normal.woff | Bin 0 -> 15160 bytes
_/font/roboto-mono-latin-400-normal.woff2 | Bin 0 -> 12312 bytes
_/font/roboto-mono-latin-500-normal.woff | Bin 0 -> 15364 bytes
_/font/roboto-mono-latin-500-normal.woff2 | Bin 0 -> 12532 bytes
_/img/back.svg | 1 +
_/img/caret.svg | 1 +
_/img/chevron.svg | 1 +
_/img/home-o.svg | 1 +
_/img/home.svg | 1 +
_/img/menu.svg | 1 +
_/img/octicons-16.svg | 1 +
_/js/site.js | 6 +
_/js/vendor/highlight.js | 1 +
_/js/vendor/tabs.js | 127 ++++++
development.html | 160 +++++++
index.html | 159 +++++++
log4j-transform-maven-plugin.html | 487 +++++++++++++++++++++
log4j-transform-maven-shade-plugin-extensions.html | 192 ++++++++
release-notes.html | 247 +++++++++++
sitemap.xml | 23 +
36 files changed, 1604 insertions(+), 1 deletion(-)
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..4524a76
--- /dev/null
+++ b/404.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Page Not Found :: Apache Log4j Transform</title>
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="/log4j/transform/_/css/site.css">
+<link rel="icon" href="/log4j/transform/_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="/log4j/transform/_/css/vendor/tabs.css">
+<style>
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem
+ }
+ /* Replace the default highlight.js color for strings from red to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="status-404">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Transform</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container">
+ <aside class="nav">
+ <div class="panels">
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="/log4j/transform/index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-transform/edit/main/src/site/antora/modules//pages/">Edit this Page</a></div>
+</div>
+ <div class="content">
+<article class="doc">
+<h1 class="page">Page Not Found</h1>
+<div class="paragraph">
+<p>The page you’re looking for does not exist. It may have been moved. You can return to the <a href="/index.html">start page</a>, or follow one of the links in the navigation to the left.</p>
+</div>
+<div class="paragraph">
+<p>If you arrived on this page by clicking on a link, please notify the owner of the site that the link is broken.
+If you typed the URL of this page manually, please double check that you entered the address correctly.</p>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="/log4j/transform/_/js/site.js" data-ui-root-path="/log4j/transform/_"></script>
+<script async src="/log4j/transform/_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="/log4j/transform/_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/README.txt b/README.txt
deleted file mode 100644
index 26a61b1..0000000
--- a/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-Content for initializing an orphan branch for the website to be generated from `e34d0762519f1e69b5f22a1b5ff8beb23e6eb8e5`
diff --git a/_/css/site.css b/_/css/site.css
new file mode 100644
index 0000000..e7b43c5
--- /dev/null
+++ b/_/css/site.css
@@ -0,0 +1,3 @@
+@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../font/roboto-latin-400-normal.woff2) format("woff2"),url(../font/roboto-latin-400-normal.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../font/roboto-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-04 [...]
+
+/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:600}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:600}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
diff --git a/_/css/vendor/tabs.css b/_/css/vendor/tabs.css
new file mode 100644
index 0000000..00771c4
--- /dev/null
+++ b/_/css/vendor/tabs.css
@@ -0,0 +1,110 @@
+/*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+.tabs {
+ margin-bottom: 1.25em;
+}
+
+.tablist > ul {
+ display: flex;
+ flex-wrap: wrap;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.tablist > ul li {
+ align-items: center;
+ background-color: #fff;
+ cursor: pointer;
+ display: flex;
+ font-weight: bold;
+ line-height: 1.5;
+ padding: 0.25em 1em;
+ position: relative;
+}
+
+.tablist > ul li:focus-visible {
+ outline: none;
+}
+
+.tablist.ulist,
+.tablist.ulist > ul li {
+ margin: 0;
+}
+
+.tablist.ulist > ul li + li {
+ margin-left: 0.25em;
+}
+
+.tabs .tablist li::after {
+ content: "";
+ display: block;
+ height: 1px;
+ position: absolute;
+ bottom: -1px;
+ left: 0;
+ right: 0;
+}
+
+.tabs.is-loading .tablist li:not(:first-child),
+.tabs:not(.is-loading) .tablist li:not(.is-selected) {
+ background-color: #f5f5f5;
+}
+
+.tabs.is-loading .tablist li:first-child::after,
+.tabs:not(.is-loading) .tablist li.is-selected::after {
+ background-color: #fff;
+}
+
+/*
+.tabs:not(.is-loading) .tablist li,
+.tabs:not(.is-loading) .tablist li::after {
+ transition: background-color 200ms ease-in-out;
+}
+*/
+
+.tablist > ul p {
+ line-height: inherit;
+ margin: 0;
+}
+
+.tabpanel {
+ background-color: #fff;
+ padding: 1.25em;
+}
+
+.tablist > ul li,
+.tabpanel {
+ border: 1px solid #dcdcdc;
+}
+
+.tablist > ul li {
+ border-bottom: 0;
+}
+
+.tabs.is-loading .tabpanel + .tabpanel,
+.tabs:not(.is-loading) .tabpanel.is-hidden {
+ display: none;
+}
+
+.tabpanel > :first-child {
+ margin-top: 0;
+}
+
+/* #content is a signature of the Asciidoctor standalone HTML output */
+#content .tabpanel > :last-child,
+#content .tabpanel > :last-child > :last-child,
+#content .tabpanel > :last-child > :last-child > li:last-child > :last-child {
+ margin-bottom: 0;
+}
+
+.tablecontainer {
+ overflow-x: auto;
+}
+
+#content .tablecontainer {
+ margin-bottom: 1.25em;
+}
+
+#content .tablecontainer > table.tableblock {
+ margin-bottom: 0;
+}
diff --git a/_/font/roboto-cyrillic-400-italic.woff2 b/_/font/roboto-cyrillic-400-italic.woff2
new file mode 100644
index 0000000..dd587a2
Binary files /dev/null and b/_/font/roboto-cyrillic-400-italic.woff2 differ
diff --git a/_/font/roboto-cyrillic-400-normal.woff2 b/_/font/roboto-cyrillic-400-normal.woff2
new file mode 100644
index 0000000..47da362
Binary files /dev/null and b/_/font/roboto-cyrillic-400-normal.woff2 differ
diff --git a/_/font/roboto-cyrillic-500-italic.woff2 b/_/font/roboto-cyrillic-500-italic.woff2
new file mode 100644
index 0000000..cbe564b
Binary files /dev/null and b/_/font/roboto-cyrillic-500-italic.woff2 differ
diff --git a/_/font/roboto-cyrillic-500-normal.woff2 b/_/font/roboto-cyrillic-500-normal.woff2
new file mode 100644
index 0000000..cb5834f
Binary files /dev/null and b/_/font/roboto-cyrillic-500-normal.woff2 differ
diff --git a/_/font/roboto-latin-400-italic.woff b/_/font/roboto-latin-400-italic.woff
new file mode 100644
index 0000000..ebee16b
Binary files /dev/null and b/_/font/roboto-latin-400-italic.woff differ
diff --git a/_/font/roboto-latin-400-italic.woff2 b/_/font/roboto-latin-400-italic.woff2
new file mode 100644
index 0000000..e1b7a79
Binary files /dev/null and b/_/font/roboto-latin-400-italic.woff2 differ
diff --git a/_/font/roboto-latin-400-normal.woff b/_/font/roboto-latin-400-normal.woff
new file mode 100644
index 0000000..9eaa94f
Binary files /dev/null and b/_/font/roboto-latin-400-normal.woff differ
diff --git a/_/font/roboto-latin-400-normal.woff2 b/_/font/roboto-latin-400-normal.woff2
new file mode 100644
index 0000000..020729e
Binary files /dev/null and b/_/font/roboto-latin-400-normal.woff2 differ
diff --git a/_/font/roboto-latin-500-italic.woff b/_/font/roboto-latin-500-italic.woff
new file mode 100644
index 0000000..b6ad1c5
Binary files /dev/null and b/_/font/roboto-latin-500-italic.woff differ
diff --git a/_/font/roboto-latin-500-italic.woff2 b/_/font/roboto-latin-500-italic.woff2
new file mode 100644
index 0000000..ae1933f
Binary files /dev/null and b/_/font/roboto-latin-500-italic.woff2 differ
diff --git a/_/font/roboto-latin-500-normal.woff b/_/font/roboto-latin-500-normal.woff
new file mode 100644
index 0000000..d39bb52
Binary files /dev/null and b/_/font/roboto-latin-500-normal.woff differ
diff --git a/_/font/roboto-latin-500-normal.woff2 b/_/font/roboto-latin-500-normal.woff2
new file mode 100644
index 0000000..29342a8
Binary files /dev/null and b/_/font/roboto-latin-500-normal.woff2 differ
diff --git a/_/font/roboto-mono-latin-400-normal.woff b/_/font/roboto-mono-latin-400-normal.woff
new file mode 100644
index 0000000..be3eb4c
Binary files /dev/null and b/_/font/roboto-mono-latin-400-normal.woff differ
diff --git a/_/font/roboto-mono-latin-400-normal.woff2 b/_/font/roboto-mono-latin-400-normal.woff2
new file mode 100644
index 0000000..f8894ba
Binary files /dev/null and b/_/font/roboto-mono-latin-400-normal.woff2 differ
diff --git a/_/font/roboto-mono-latin-500-normal.woff b/_/font/roboto-mono-latin-500-normal.woff
new file mode 100644
index 0000000..43ca6a1
Binary files /dev/null and b/_/font/roboto-mono-latin-500-normal.woff differ
diff --git a/_/font/roboto-mono-latin-500-normal.woff2 b/_/font/roboto-mono-latin-500-normal.woff2
new file mode 100644
index 0000000..b4f2bf8
Binary files /dev/null and b/_/font/roboto-mono-latin-500-normal.woff2 differ
diff --git a/_/img/back.svg b/_/img/back.svg
new file mode 100644
index 0000000..bf7d30e
--- /dev/null
+++ b/_/img/back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M50.001 9.9L9.9 50 50 90.1l5.656-5.655-30.435-30.442H90.1v-8.006H25.222l30.435-30.44z"/></svg>
\ No newline at end of file
diff --git a/_/img/caret.svg b/_/img/caret.svg
new file mode 100644
index 0000000..1af41bc
--- /dev/null
+++ b/_/img/caret.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30"><path d="M10.187 3l14 12-14 12z" fill="#c1c1c1" stroke="#c1c1c1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/_/img/chevron.svg b/_/img/chevron.svg
new file mode 100644
index 0000000..40e962a
--- /dev/null
+++ b/_/img/chevron.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30"><path d="M3.67 6.59L1.455 8.615 15 23.375l13.545-14.76L26.33 6.59 15 18.76z" fill="#5d5d5d"/></svg>
\ No newline at end of file
diff --git a/_/img/home-o.svg b/_/img/home-o.svg
new file mode 100644
index 0000000..95d193b
--- /dev/null
+++ b/_/img/home-o.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g fill="none" stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02 47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z"/><path d="M63.815 25.904v-9.217h8.657V33.64zM21.439 39.116l-9.982 8.92m77.125 0l-9.943-8.885"/></g></svg>
\ No newline at end of file
diff --git a/_/img/home.svg b/_/img/home.svg
new file mode 100644
index 0000000..4e96b35
--- /dev/null
+++ b/_/img/home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02 47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z" fill="#222" fill-rule="evenodd"/><path d="M63.815 25.904v-9.217h8.657V33.64z" fill="#222" fill-rule="evenodd"/><path d="M21.439 39.116l-9.982 8.92m77.125 0l-9.943-8.885" fill="none"/></g></svg>
\ No newline at end of file
diff --git a/_/img/menu.svg b/_/img/menu.svg
new file mode 100644
index 0000000..8b43b2e
--- /dev/null
+++ b/_/img/menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M35 19.772h55" fill="none" stroke="#222" stroke-width="8" stroke-opacity=".941"/><path fill="#222" d="M10 12.272h15v15H10z"/><path d="M43 63.678h45" fill="none" stroke="#222" stroke-width="5" stroke-opacity=".941"/><path fill="#222" d="M23 58.677h10v10H23z"/><path d="M43 82.727h45" fill="none" stroke="#222" stroke-width="5" stroke-opacity=".941"/><path fill="#222" d="M23 77.727h10v10H23z"/><path d="M43 44.628h45" fill [...]
\ No newline at end of file
diff --git a/_/img/octicons-16.svg b/_/img/octicons-16.svg
new file mode 100644
index 0000000..c221510
--- /dev/null
+++ b/_/img/octicons-16.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><desc>Octicons v11.2.0 by GitHub - https://primer.style/octicons/ - License: MIT</desc><symbol id="icon-clippy" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 [...]
\ No newline at end of file
diff --git a/_/js/site.js b/_/js/site.js
new file mode 100644
index 0000000..f02ada9
--- /dev/null
+++ b/_/js/site.js
@@ -0,0 +1,6 @@
+!function(){"use strict";var i,c,e,o,t,s,r,l=/^sect(\d)$/,a=document.querySelector(".nav-container");function n(){var e,t,n=window.location.hash;if(n&&(n.indexOf("%")&&(n=decodeURIComponent(n)),!(e=o.querySelector('.nav-link[href="'+n+'"]')))){n=document.getElementById(n.slice(1));if(n)for(var i=n,a=document.querySelector("article.doc");(i=i.parentNode)&&i!==a;){var c=i.id;if((c=c||(c=l.test(i.className))&&(i.firstElementChild||{}).id)&&(e=o.querySelector('.nav-link[href="#'+c+'"]')))bre [...]
+!function(){"use strict";var e=document.querySelector("aside.toc.sidebar");if(e){if(document.querySelector("body.-toc"))return e.parentNode.removeChild(e);var t=parseInt(e.dataset.levels||2,10);if(!(t<0)){var o="article.doc",d=document.querySelector(o);if(d){for(var n=[],i=0;i<=t;i++){var r=[o];if(i){for(var c=1;c<=i;c++)r.push((2===c?".sectionbody>":"")+".sect"+c);r.push("h"+(i+1)+"[id]"+(1<i?":not(.discrete)":""))}else r.push("h1[id].sect0");n.push(r.join(">"))}m=n.join(","),f=d.parent [...]
+!function(){"use strict";var n,o,i=document.querySelector("article.doc");function c(e){return e&&(~e.indexOf("%")?decodeURIComponent(e):e).slice(1)}function r(e){if(e){if(e.altKey||e.ctrlKey)return;window.location.hash="#"+this.id,e.preventDefault()}var t=function e(t,n){return i.contains(t)?e(t.offsetParent,t.offsetTop+n):n}(this,0)-n.getBoundingClientRect().bottom;!1===e&&o?window.scrollTo({left:0,top:t,behavior:"instant"}):window.scrollTo(0,t)}i&&(n=document.querySelector(".toolbar"), [...]
+!function(){"use strict";var t,e=document.querySelector(".page-versions .version-menu-toggle");e&&(t=document.querySelector(".page-versions"),e.addEventListener("click",function(e){t.classList.toggle("is-active"),e.stopPropagation()}),document.documentElement.addEventListener("click",function(){t.classList.remove("is-active")}))}();
+!function(){"use strict";var i=document.querySelector(".navbar-burger");i&&i.addEventListener("click",function(t){t.stopPropagation(),document.documentElement.classList.toggle("is-clipped--navbar"),i.setAttribute("aria-expanded",this.classList.toggle("is-active"));t=document.getElementById(this.getAttribute("aria-controls")||this.dataset.target);{var e;t.classList.toggle("is-active")&&(t.style.maxHeight="",e=window.innerHeight-Math.round(t.getBoundingClientRect().top),parseInt(window.get [...]
+!function(){"use strict";var o=/^\$ (\S[^\\\n]*(\\\n(?!\$ )[^\\\n]*)*)(?=\n|$)/gm,s=/( ) *\\\n *|\\\n( ?) */g,l=/ +$/gm,e=(document.getElementById("site-script")||{dataset:{}}).dataset,d=window.navigator.clipboard,r=e.svgAs,p=(null==e.uiRootPath?window:e).uiRootPath||".";[].slice.call(document.querySelectorAll(".doc pre.highlight, .doc .literalblock pre")).forEach(function(e){var t,n,a,c;if(e.classList.contains("highlight"))(i=(t=e.querySelector("code")).dataset.lang)&&"console"!==i&&((a [...]
\ No newline at end of file
diff --git a/_/js/vendor/highlight.js b/_/js/vendor/highlight.js
new file mode 100644
index 0000000..c617244
--- /dev/null
+++ b/_/js/vendor/highlight.js
@@ -0,0 +1 @@
+!function(){function e(e){return{aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,5}) .+?( \\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{ [...]
\ No newline at end of file
diff --git a/_/js/vendor/tabs.js b/_/js/vendor/tabs.js
new file mode 100644
index 0000000..f8966c0
--- /dev/null
+++ b/_/js/vendor/tabs.js
@@ -0,0 +1,127 @@
+;(function () { /*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+ 'use strict'
+
+ var config = (document.currentScript || {}).dataset || {}
+ var forEach = Array.prototype.forEach
+
+ init(document.querySelectorAll('.tabs'))
+
+ function init (tabsBlocks) {
+ if (!tabsBlocks.length) return
+ forEach.call(tabsBlocks, function (tabs) {
+ var syncIds = tabs.classList.contains('is-sync') ? {} : undefined
+ var tablist = tabs.querySelector('.tablist ul')
+ tablist.setAttribute('role', 'tablist')
+ var start
+ forEach.call(tablist.querySelectorAll('li'), function (tab, idx) {
+ tab.tabIndex = -1
+ tab.setAttribute('role', tab.classList.add('tab') || 'tab')
+ var id, anchor, syncId
+ if (!(id = tab.id) && (anchor = tab.querySelector('a[id]'))) {
+ id = tab.id = anchor.parentNode.removeChild(anchor).id
+ }
+ var panel = id && tabs.querySelector('.tabpanel[aria-labelledby~="' + id + '"]')
+ if (!panel) return idx ? undefined : toggleSelected(tab, true) // invalid state
+ syncIds && (((syncId = tab.textContent.trim()) in syncIds) ? (syncId = undefined) : true) &&
+ (syncIds[(tab.dataset.syncId = syncId)] = tab)
+ idx || (syncIds && (start = { tab: tab, panel: panel })) ? toggleHidden(panel, true) : toggleSelected(tab, true)
+ tab.setAttribute('aria-controls', panel.id)
+ panel.setAttribute('role', 'tabpanel')
+ var onClick = syncId === undefined ? activateTab : activateTabSync
+ tab.addEventListener('click', onClick.bind({ tabs: tabs, tab: tab, panel: panel }))
+ })
+ if (!tabs.closest('.tabpanel')) {
+ forEach.call(tabs.querySelectorAll('.tabpanel table.tableblock'), function (table) {
+ var container = Object.assign(document.createElement('div'), { className: 'tablecontainer' })
+ table.parentNode.insertBefore(container, table).appendChild(table)
+ })
+ }
+ if (start) {
+ var syncGroupId
+ for (var i = 0, lst = tabs.classList, len = lst.length, className; i !== len; i++) {
+ if (!(className = lst.item(i)).startsWith('data-sync-group-id=')) continue
+ tabs.dataset.syncGroupId = syncGroupId = lst.remove(className) || className.slice(19).replace(/\u00a0/g, ' ')
+ break
+ }
+ if (syncGroupId === undefined) tabs.dataset.syncGroupId = syncGroupId = Object.keys(syncIds).sort().join('|')
+ var preferredSyncId = 'syncStorageKey' in config &&
+ window[(config.syncStorageScope || 'local') + 'Storage'].getItem(config.syncStorageKey + '-' + syncGroupId)
+ var tab = preferredSyncId && syncIds[preferredSyncId]
+ tab && Object.assign(start, { tab: tab, panel: document.getElementById(tab.getAttribute('aria-controls')) })
+ toggleSelected(start.tab, true) || toggleHidden(start.panel, false)
+ }
+ })
+ onHashChange()
+ toggleClassOnEach(tabsBlocks, 'is-loading', 'remove')
+ window.setTimeout(toggleClassOnEach.bind(null, tabsBlocks, 'is-loaded', 'add'), 0)
+ window.addEventListener('hashchange', onHashChange)
+ }
+
+ function activateTab (e) {
+ var tab = this.tab
+ var tabs = this.tabs || (this.tabs = tab.closest('.tabs'))
+ var panel = this.panel || (this.panel = document.getElementById(tab.getAttribute('aria-controls')))
+ querySelectorWithSiblings(tabs, '.tablist .tab', 'tab').forEach(function (el) {
+ toggleSelected(el, el === tab)
+ })
+ querySelectorWithSiblings(tabs, '.tabpanel', 'tabpanel').forEach(function (el) {
+ toggleHidden(el, el !== panel)
+ })
+ if (!this.isSync && 'syncStorageKey' in config && 'syncGroupId' in tabs.dataset) {
+ var storageKey = config.syncStorageKey + '-' + tabs.dataset.syncGroupId
+ window[(config.syncStorageScope || 'local') + 'Storage'].setItem(storageKey, tab.dataset.syncId)
+ }
+ if (!e) return
+ var loc = window.location
+ var hashIdx = loc.hash ? loc.href.indexOf('#') : -1
+ if (~hashIdx) window.history.replaceState(null, '', loc.href.slice(0, hashIdx))
+ e.preventDefault()
+ }
+
+ function activateTabSync (e) {
+ activateTab.call(this, e)
+ var thisTabs = this.tabs
+ var thisTab = this.tab
+ var initialY = thisTabs.getBoundingClientRect().y
+ forEach.call(document.querySelectorAll('.tabs'), function (tabs) {
+ if (tabs === thisTabs || tabs.dataset.syncGroupId !== thisTabs.dataset.syncGroupId) return
+ querySelectorWithSiblings(tabs, '.tablist .tab', 'tab').forEach(function (tab) {
+ if (tab.dataset.syncId === thisTab.dataset.syncId) activateTab.call({ tabs: tabs, tab: tab, isSync: true })
+ })
+ })
+ var shiftedBy = thisTabs.getBoundingClientRect().y - initialY
+ if (shiftedBy && (shiftedBy = Math.round(shiftedBy))) window.scrollBy({ top: shiftedBy, behavior: 'instant' })
+ }
+
+ function querySelectorWithSiblings (scope, selector, siblingClass) {
+ var el = scope.querySelector(selector)
+ if (!el) return []
+ var result = [el]
+ while ((el = el.nextElementSibling) && el.classList.contains(siblingClass)) result.push(el)
+ return result
+ }
+
+ function toggleClassOnEach (elements, className, method) {
+ forEach.call(elements, function (el) {
+ el.classList[method](className)
+ })
+ }
+
+ function toggleHidden (el, state) {
+ el.classList[(el.hidden = state) ? 'add' : 'remove']('is-hidden')
+ }
+
+ function toggleSelected (el, state) {
+ el.setAttribute('aria-selected', '' + state)
+ el.classList[state ? 'add' : 'remove']('is-selected')
+ el.tabIndex = state ? 0 : -1
+ }
+
+ function onHashChange () {
+ var id = window.location.hash.slice(1)
+ if (!id) return
+ var tab = document.getElementById(~id.indexOf('%') ? decodeURIComponent(id) : id)
+ if (!(tab && tab.classList.contains('tab'))) return
+ 'syncId' in tab.dataset ? activateTabSync.call({ tab: tab }) : activateTab.call({ tab: tab })
+ }
+})()
diff --git a/development.html b/development.html
new file mode 100644
index 0000000..8181b1e
--- /dev/null
+++ b/development.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Development :: Apache Log4j Transform</title>
+ <link rel="canonical" href="https://logging.apache.org/log4j/transform/development.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem
+ }
+ /* Replace the default highlight.js color for strings from red to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Transform</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <span class="nav-text">Components</span>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-plugin.html">Log4j Transform Maven Plugin</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-shade-plugin-extensions.html">Maven Shade Plugin Extensions</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item is-current-page" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="development.html">Development</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-transform/edit/main/src/site/antora/modules/ROOT/pages/development.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Development</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j Transform uses <a href="https://github.com/apache/logging-log4j-transform">GitHub</a> for source code management.</p>
+</div>
+<div class="paragraph">
+<p>The project requires a Java compiler matching the <code>[17,18)</code> range and targets Java <code>8</code>.</p>
+</div>
+<div class="paragraph">
+<p>You can build and verify sources using:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">./mvnw verify</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can build and view the website as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">./mvnw -N site</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can view the generated website with a browser by pointing it to <code>target/site</code> directory.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-instructions"><a class="anchor" href="#release-instructions"></a>Release instructions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j Transform employs the CI/CD foundation provided by the <a href="https://logging.apache.org/logging-parent"><code>logging-parent</code></a>.
+You can simply use its release instructions.</p>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0845abb
--- /dev/null
+++ b/index.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Log4j Transform :: Apache Log4j Transform</title>
+ <link rel="canonical" href="https://logging.apache.org/log4j/transform/index.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem
+ }
+ /* Replace the default highlight.js color for strings from red to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Transform</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <span class="nav-text">Components</span>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-plugin.html">Log4j Transform Maven Plugin</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-shade-plugin-extensions.html">Maven Shade Plugin Extensions</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link is-current"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="index.html">Log4j Transform</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-transform/edit/main/src/site/antora/modules/ROOT/pages/index.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Log4j Transform</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j Transform contains tools for binary postprocessing of projects that use <a href="https://logging.apache.org/log4j/2.x/">the Apache Log4j2 API</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="maven-bom"><a class="anchor" href="#maven-bom"></a>Maven Bill of Materials (BOM)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>To keep your Log4j Transform module versions aligned, a <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms">Maven Bill of Materials (BOM) POM</a> is provided for your convenience.</p>
+</div>
+<div class="paragraph">
+<p>To use this with Maven, add the dependency listed below to your <code>pom.xml</code> file.
+Note that the <code><dependencyManagement></code> nesting and the <code><scope>import</scope></code> instruction.
+This will <em>import</em> all modules bundled with the associated Log4j release to your <code>dependencyManagement</code>.
+As a result, you don’t have to specify versions of the imported modules (<code>log4j-weaver</code>, etc.) while using them as a <code><dependency></code>.</p>
+</div>
+<div class="listingblock">
+<div class="title"><code>pom.xml</code> snippet importing <code>log4j-transform-bom</code></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none hljs"><dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-transform-bom</artifactId>
+ <version>0.2.0-SNAPSHOT</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+</dependencyManagement></code></pre>
+</div>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4j-transform-maven-plugin.html b/log4j-transform-maven-plugin.html
new file mode 100644
index 0000000..11bf4ec
--- /dev/null
+++ b/log4j-transform-maven-plugin.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Log4j Transform Maven Plugin :: Apache Log4j Transform</title>
+ <link rel="canonical" href="https://logging.apache.org/log4j/transform/log4j-transform-maven-plugin.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem
+ }
+ /* Replace the default highlight.js color for strings from red to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Transform</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <span class="nav-text">Components</span>
+<ul class="nav-list">
+ <li class="nav-item is-current-page" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-plugin.html">Log4j Transform Maven Plugin</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-shade-plugin-extensions.html">Maven Shade Plugin Extensions</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li>Components</li>
+ <li><a href="log4j-transform-maven-plugin.html">Log4j Transform Maven Plugin</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-transform/edit/main/src/site/antora/modules/ROOT/pages/log4j-transform-maven-plugin.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Log4j Transform Maven Plugin</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Transform Plugin is used to postprocess the compiled classes of your project and replace all Log4j 2.x API calls with <a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html"><code>LogBuilder</code></a> calls with a statically precomputed location.
+This allows you to use location information in your logs without incurring in the <strong>expensive</strong> runtime calls usually used to acquire it.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="why"><a class="anchor" href="#why"></a>Why do we need it</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Finding the location of a logging call is a very expensive operation (a couple of microseconds).</p>
+</div>
+<div class="paragraph">
+<p>Running <a href="#../log4j-transform-perf/src/main/java/org/apache/logging/log4j/transform/perf/LocationBenchmark.java" class="xref unresolved"><code>LocationBenchmark</code></a> on a Ryzen 7 2700U laptop with Java 17 gives the following results:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2858%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Logging interface</th>
+<th class="tableblock halign-left valign-top">Sync/async logger</th>
+<th class="tableblock halign-left valign-top">No. threads</th>
+<th class="tableblock halign-left valign-top">Precomputed location</th>
+<th class="tableblock halign-left valign-top">Score</th>
+<th class="tableblock halign-left valign-top">Error</th>
+<th class="tableblock halign-left valign-top">Units</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html"><code>LogBuilder</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">202343,624</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±719,875</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html"><code>LogBuilder</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">68449,813</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±5086,148</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">202579,793</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±547,961</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">100105,246</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±13748,554</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">async</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">726877,012</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±38214,575</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">async</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">440245,135</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±4849,946</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The figures show a performance bump of around 5 µs per logging statement when
+<a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a>
+is used and a bump of around 9 µs per logging statement when
+<a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html"><code>LogBuilder</code></a>
+is used.</p>
+</div>
+<div class="paragraph">
+<p>By comparison, <strong>disabling</strong> location information on the same machine gives:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2857%;">
+<col style="width: 14.2858%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Logging interface</th>
+<th class="tableblock halign-left valign-top">Sync/async logger</th>
+<th class="tableblock halign-left valign-top">No. threads</th>
+<th class="tableblock halign-left valign-top">Precomputed location</th>
+<th class="tableblock halign-left valign-top">Score</th>
+<th class="tableblock halign-left valign-top">Error</th>
+<th class="tableblock halign-left valign-top">Units</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html"><code>LogBuilder</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">234666,556</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±19759,779</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogBuilder.html"><code>LogBuilder</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">212562,315</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±3631,670</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">210751,730</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±1508,148</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">220837,404</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±13248,184</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">async</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">743467,533</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±38046,044</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html"><code>Logger</code></a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">async</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">776778,635</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">±38878,794</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ops/s</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="how"><a class="anchor" href="#how"></a>How it works</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The working principle is very simple: every call to the Log4j 2.x API like</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void helloLog() {
+ logger.info(MarkerManager.getMarker("NET"), "Sending {} bytes of data.", 1000);
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>is rewritten at a bytecode level into an equivalent <code>LogBuilder</code> call:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">private static final StackTraceElement[] locations = {
+ new StackTraceElement("org.apache.logging.log4j.HelloWorld", "HelloWorld.java", "helloLog", 1234)
+};
+
+public void helloLog() {
+ logger.atInfo()
+ .withLocation(locations[0])
+ .withMarker(MarkerManager.getMarker("NET"))
+ .log("Sending {} bytes of data.", 1000);
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>In the current implementation locations are stored in classes whose name ends in <code>$$Log4j2$$Cache</code>, so they can not accidentally be used by XML/JSON serializers.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="goals"><a class="anchor" href="#goals"></a>Goals</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This plugin consists of a single goal:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><a href="#process-classes"><code>log4j-transform:process-classes</code></a></dt>
+<dd>
+<p>is bound to the process-classes phase and weaves your classes to include precomputed location information.</p>
+</dd>
+</dl>
+</div>
+<div class="sect2">
+<h3 id="process-classes"><a class="anchor" href="#process-classes"></a><code>log4j-transform:process-classes</code></h3>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Full name</dt>
+<dd>
+<p><code>org.apache.logging.log4j:log4j-transform-maven-plugin:0.2.0-SNAPSHOT:process-classes</code></p>
+</dd>
+<dt class="hdlist1">Description</dt>
+<dd>
+<p>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.</p>
+</dd>
+<dt class="hdlist1">Attributes</dt>
+<dd>
+<div class="ulist">
+<ul>
+<li>
+<p>Requires a Maven project to be executed</p>
+</li>
+<li>
+<p>Requires dependency resolution of artifacts in scope: <code><code>compile</code></code></p>
+</li>
+<li>
+<p>The goal is thread-safe and supports parallel builds</p>
+</li>
+<li>
+<p>Binds by default to the <a href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <code>process-classes</code>.</p>
+</li>
+</ul>
+</div>
+</dd>
+</dl>
+</div>
+<div class="sect3">
+<h4 id="process-classes-required-parameters"><a class="anchor" href="#process-classes-required-parameters"></a>Required Parameters</h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 18.75%;">
+<col style="width: 18.75%;">
+<col style="width: 62.5%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><sourceDirectory></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>File</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The directory containing classes to be processed.
+It defaults to <code>${project.build.outputDirectory}</code>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><sourceDirectory></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>File</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The directory where woven classes will be written.
+It defaults to <code>${project.build.outputDirectory}</code>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="process-classes-optional-parameters"><a class="anchor" href="#process-classes-optional-parameters"></a>Optional Parameters</h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 18.75%;">
+<col style="width: 18.75%;">
+<col style="width: 62.5%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><includes></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>List<String></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Files to include. If empty all class files will be processed.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><excludes></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>List<String></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Files to exclude.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><staleMillis></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the granularity in milliseconds of the last modification date for testing if a class file needs weaving.
+It defaults to <code>0</code> and can be configured using the <code>lastModGranularityMs</code> property.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="usage"><a class="anchor" href="#usage"></a>Usage</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>To use the plugin you need to declare a dependency on <a href="https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-api/2.20.0"><code>log4j-api</code></a> version 2.20.0 or newer.</p>
+</div>
+<div class="paragraph">
+<p>Add the following configuration to your POM file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><plugin>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-transform-maven-plugin</artifactId>
+ <version>0.2.0-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>process-classes</goal>
+ </goals>
+ </execution>
+ </executions>
+</plugin></code></pre>
+</div>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4j-transform-maven-shade-plugin-extensions.html b/log4j-transform-maven-shade-plugin-extensions.html
new file mode 100644
index 0000000..b6c958a
--- /dev/null
+++ b/log4j-transform-maven-shade-plugin-extensions.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Maven Shade Plugin Extensions :: Apache Log4j Transform</title>
+ <link rel="canonical" href="https://logging.apache.org/log4j/transform/log4j-transform-maven-shade-plugin-extensions.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem
+ }
+ /* Replace the default highlight.js color for strings from red to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Transform</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <span class="nav-text">Components</span>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-plugin.html">Log4j Transform Maven Plugin</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-shade-plugin-extensions.html">Maven Shade Plugin Extensions</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li>Components</li>
+ <li><a href="log4j-transform-maven-shade-plugin-extensions.html">Maven Shade Plugin Extensions</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-transform/edit/main/src/site/antora/modules/ROOT/pages/log4j-transform-maven-shade-plugin-extensions.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Maven Shade Plugin Extensions</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>This project contains a collection of <a href="https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html">resource transformer</a>s for the Apache Maven Shade Plugin that allows you to use additional Log4j 2.x Core component modules.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-plugin-cache-transformer"><a class="anchor" href="#log4j-plugin-cache-transformer"></a>Log4j Plugin Cache Transformer</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A
+<a href="https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html">resource transformer</a>
+for the
+<a href="https://maven.apache.org/plugins/maven-shade-plugin/index.html">Apache Maven Shade Plugin</a>
+that merges <code>Log4j2Plugins.dat</code> plugin caches from all the jars containing Log4j 2.x Core components.</p>
+</div>
+<div class="paragraph">
+<p>This transformer was formerly available at
+<a href="https://github.com/edwgiz/maven-shaded-log4j-transformer">edwgiz/maven-shaded-log4j-transformer</a>
+and was donated to the Apache Software Foundation by its author.</p>
+</div>
+<div class="sect2">
+<h3 id="log4j-plugin-cache-transformer-usage"><a class="anchor" href="#log4j-plugin-cache-transformer-usage"></a>Usage</h3>
+<div class="paragraph">
+<p>This resource transformer is usually used together with the <code>ManifestResourceTransformer</code> and <code>ServicesResourceTransformer</code> to integrate Log4j 2.x libraries in a shaded JAR.</p>
+</div>
+<div class="paragraph">
+<p>A typical configuration is:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><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.2.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>shade-jar-with-dependencies</id>
+ <phase>package</phase>
+ <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></code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/release-notes.html b/release-notes.html
new file mode 100644
index 0000000..0a6b57f
--- /dev/null
+++ b/release-notes.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Release notes :: Apache Log4j Transform</title>
+ <link rel="canonical" href="https://logging.apache.org/log4j/transform/release-notes.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem
+ }
+ /* Replace the default highlight.js color for strings from red to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Transform</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <span class="nav-text">Components</span>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-plugin.html">Log4j Transform Maven Plugin</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="log4j-transform-maven-shade-plugin-extensions.html">Maven Shade Plugin Extensions</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="release-notes.html">Release notes</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-transform/edit/main/src/site/antora/modules/ROOT/pages/release-notes.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="1">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Release notes</h1>
+<div class="sect1">
+<h2 id="release-notes-0-x-x"><a class="anchor" href="#release-notes-0-x-x"></a>0.x.x</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This is the second release of the project.</p>
+</div>
+<div class="sect2">
+<h3 id="release-notes-0-x-x-added"><a class="anchor" href="#release-notes-0-x-x-added"></a>Added</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Started generating CycloneDX SBOM with the recent update of <code>logging-parent</code> to version <code>10.2.0</code></p>
+</li>
+<li>
+<p>Started publishing <a href="https://logging.apache.org/log4j/transform">the project website</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-0-x-x-changed"><a class="anchor" href="#release-notes-0-x-x-changed"></a>Changed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Website is migrated to Antora (<a href="https://github.com/apache/logging-log4j2/pull/2443">apache/logging-log4j2#2443</a>)</p>
+</li>
+<li>
+<p>Adopted the CI and <code>pom.xml</code> infrastructure from <code>logging-parent</code></p>
+</li>
+<li>
+<p>Update <code>org.apache.commons:commons-lang3</code> to version <code>3.14.0</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/69">69</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.maven:maven-core</code> to version <code>3.9.6</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/65">65</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-0-x-x-fixed"><a class="anchor" href="#release-notes-0-x-x-fixed"></a>Fixed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Fixed transformation of a single <code>Log4j2Plugins.dat</code> plugin. (<a href="https://github.com/apache/logging-log4j-transform/pull/87">87</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-0-x-x-updated"><a class="anchor" href="#release-notes-0-x-x-updated"></a>Updated</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Update <code>apache/logging-parent</code> to version `` (<a href="https://github.com/apache/logging-log4j-transform/pull/80">80</a>)</p>
+</li>
+<li>
+<p>Update <code>commons-io:commons-io</code> to version <code>2.16.1</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/96">96</a>)</p>
+</li>
+<li>
+<p>Update <code>commons-logging:commons-logging</code> to version <code>1.3.1</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/90">90</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.logging.log4j:log4j-bom</code> to version <code>2.23.1</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/88">88</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.logging:logging-parent</code> to version <code>10.5.0</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/72">72</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.maven.plugins:maven-invoker-plugin</code> to version <code>3.6.1</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/94">94</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.maven.plugins:maven-shade-plugin</code> to version <code>3.5.2</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/85">85</a>)</p>
+</li>
+<li>
+<p>Update <code>org.assertj:assertj-core</code> to version <code>3.25.3</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/83">83</a>)</p>
+</li>
+<li>
+<p>Update <code>org.codehaus.plexus:plexus-utils</code> to version <code>4.0.1</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/98">98</a>)</p>
+</li>
+<li>
+<p>Update <code>org.jacoco:jacoco-maven-plugin</code> to version <code>0.8.12</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/95">95</a>)</p>
+</li>
+<li>
+<p>Update <code>org.junit:junit-bom</code> to version <code>5.10.2</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/82">82</a>)</p>
+</li>
+<li>
+<p>Update <code>org.ow2.asm:asm-bom</code> to version <code>9.7</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/89">89</a>)</p>
+</li>
+<li>
+<p>Update <code>org.slf4j:slf4j-api</code> to version <code>2.0.13</code> (<a href="https://github.com/apache/logging-log4j-transform/pull/97">97</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-notes-0-1-0"><a class="anchor" href="#release-notes-0-1-0"></a>0.1.0</h2>
+<div class="sectionbody">
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Release date</dt>
+<dd>
+<p>2023-05-05</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>This is the first release of the project.</p>
+</div>
+<div class="sect2">
+<h3 id="release-notes-0-1-0-added"><a class="anchor" href="#release-notes-0-1-0-added"></a>Added</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Added <code>log4j-transform-maven-plugin</code> bytecode transformation tool to provide location information without reflection (<a href="https://issues.apache.org/jira/browse/LOG4J2-3638">LOG4J2-3638</a>)</p>
+</li>
+<li>
+<p>Added <code>log4j-transform-maven-shade-plugin-extensions</code> resource transformer for the Maven Shade Plugin to merge <code>Log4j2Plugins.dat</code> plugin caches (<a href="https://issues.apache.org/jira/browse/LOG4J2-673">LOG4J2-673</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..fc75af4
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+<url>
+<loc>https://logging.apache.org/log4j/transform/development.html</loc>
+<lastmod>2024-04-22T08:26:26.237Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/transform/index.html</loc>
+<lastmod>2024-04-22T08:26:26.237Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/transform/log4j-transform-maven-plugin.html</loc>
+<lastmod>2024-04-22T08:26:26.237Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/transform/log4j-transform-maven-shade-plugin-extensions.html</loc>
+<lastmod>2024-04-22T08:26:26.237Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/transform/release-notes.html</loc>
+<lastmod>2024-04-22T08:26:26.237Z</lastmod>
+</url>
+</urlset>