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-tools.git
The following commit(s) were added to refs/heads/main-site-stg-out by this push: new 5992c29 Add website content generated from `cce5e3e25b252f87c2d705ec00419251bff7b163` 5992c29 is described below commit 5992c297a542144a170112729b8dc2386701b1c2 Author: ASF Logging Services RM <priv...@logging.apache.org> AuthorDate: Fri Apr 19 10:31:26 2024 +0000 Add website content generated from `cce5e3e25b252f87c2d705ec00419251bff7b163` --- 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 | 169 +++++++++ index.html | 187 ++++++++++ log4j-changelog-maven-plugin.html | 314 ++++++++++++++++ log4j-changelog.html | 557 ++++++++++++++++++++++++++++ log4j-docgen-asciidoctor-extension.html | 190 ++++++++++ log4j-docgen-maven-plugin.html | 226 ++++++++++++ log4j-docgen.html | 266 ++++++++++++++ release-notes.html | 577 ++++++++++++++++++++++++++++++ sitemap.xml | 35 ++ 39 files changed, 2857 insertions(+), 1 deletion(-) diff --git a/404.html b/404.html new file mode 100644 index 0000000..1e215ad --- /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 Tools</title> + <meta name="generator" content="Antora 3.2.0-alpha.4"> +<link rel="stylesheet" href="/log4j/kotlin/_/css/site.css"> +<link rel="icon" href="/log4j/kotlin/_/../_images/favicon.ico" type="image/x-icon"> +<!-- `@asciidoctor/tabs` extension styles --> +<link rel="stylesheet" href="/log4j/kotlin/_/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 Tools</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/kotlin/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-kotlin/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/kotlin/_/js/site.js" data-ui-root-path="/log4j/kotlin/_"></script> +<script async src="/log4j/kotlin/_/js/vendor/highlight.js"></script> +<!-- `@asciidoctor/tabs` extension scripts --> +<script async src="/log4j/kotlin/_/js/vendor/tabs.js"></script> + </body> +</html> diff --git a/README.txt b/README.txt deleted file mode 100644 index 6e8fd8c..0000000 --- a/README.txt +++ /dev/null @@ -1 +0,0 @@ -Content for initializing an orphan branch for the website to be generated from `cce5e3e25b252f87c2d705ec00419251bff7b163` 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 <v...@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..ff96d18 --- /dev/null +++ b/development.html @@ -0,0 +1,169 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Development :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-kotlin/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 Tools uses <a href="https://github.com/apache/logging-log4j-tools">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 Tools 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..64bf309 --- /dev/null +++ b/index.html @@ -0,0 +1,187 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Log4j Tools :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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 Tools</a></li> + </ul> +</nav> +<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-kotlin/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 Tools</h1> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>Tooling <strong>internally</strong> used by <a href="https://logging.apache.org/log4j/2.x/">the Apache Log4j project</a> infrastructure:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><a href="log4j-changelog.html" class="xref page">Log4j Changelog</a></p> +</li> +<li> +<p><a href="log4j-changelog-maven-plugin.html" class="xref page">Log4j Changelog Maven Plugin</a></p> +</li> +<li> +<p><a href="log4j-docgen.html" class="xref page">Log4j Docgen</a></p> +</li> +<li> +<p><a href="log4j-docgen-maven-plugin.html" class="xref page">Log4j Docgen Maven Plugin</a></p> +</li> +<li> +<p><a href="log4j-docgen-asciidoctor-extension.html" class="xref page">Log4j Docgen AsciiDoctor extension</a></p> +</li> +</ul> +</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 Tools 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-changelog</code>, <code>log4j-docgen</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-tools-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-tools-bom</artifactId> + <version>0.9.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-changelog-maven-plugin.html b/log4j-changelog-maven-plugin.html new file mode 100644 index 0000000..6bc55a0 --- /dev/null +++ b/log4j-changelog-maven-plugin.html @@ -0,0 +1,314 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Log4j Changelog Maven Plugin :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/log4j-changelog-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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item is-current-page" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a></li> + </ul> +</nav> +<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-kotlin/edit/main/src/site/antora/modules/ROOT/pages/log4j-changelog-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 Changelog Maven Plugin</h1> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>This project ships a Maven plugin providing access to the <code>ChangelogExporter</code> and <code>ChangelogReleaser</code> of <a href="log4j-changelog.html" class="xref page">Log4j Changelog</a>.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="dependencies"><a class="anchor" href="#dependencies"></a>Dependencies</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>You need to have the <code>org.apache.logging.log4j:log4j-changelog-maven-plugin</code> dependency in your classpath:</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-changelog-maven-plugin</artifactId> + <version>0.9.0-SNAPSHOT</version> +</plugin></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="export"><a class="anchor" href="#export"></a>Exporting changelogs</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p><em>Exporting</em> changelogs is the act of feeding provided changelog and release information into <a href="https://freemarker.apache.org">FreeMarker</a> templates to generate certain files; e.g., release notes for the website. +There are two types template files supported:</p> +</div> +<div class="dlist"> +<dl> +<dt class="hdlist1"><a href="log4j-changelog.html#changelog-template" class="xref page">Changelog templates</a></dt> +<dd> +<p>These templates are rendered with the release and changelog information of a particular release. +These are generally used to generate release notes for a particular release.</p> +</dd> +<dt class="hdlist1"><a href="log4j-changelog.html#index-template" class="xref page">Index templates</a></dt> +<dd> +<p>These templates are rendered with the release information of all releases. +These are generally used to generate the index page referencing to release notes of each release.</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>See <a href="#export">the Log4j Changelog documentation</a> for further details.</p> +</div> +<div class="paragraph"> +<p>You can use the <code>export</code> goal as follows:</p> +</div> +<div class="listingblock"> +<div class="title"><code>build > plugins</code> block entry of <code>pom.xml</code></div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><!-- Export AsciiDoc-formatted release notes --> +<plugin> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-changelog-maven-plugin</artifactId> + <version>0.9.0-SNAPSHOT</version> + <inherited>false</inherited> + <configuration> + <indexTemplates> + <template> + <source>.index.adoc.ftl</source> + </template> + </indexTemplates> + <changelogTemplates> + <template> + <source>.release-notes.adoc.ftl</source> + <target>%v.adoc</target> + </template> + </changelogTemplates> + </configuration> + <executions> + <execution> + <id>generate-changelog</id> + <goals> + <goal>export</goal> + </goals> + </execution> + </executions> +</plugin></code></pre> +</div> +</div> +<div class="paragraph"> +<p><code>export</code> goal by default runs during the <code>pre-site</code> phase and accepts the following configuration:</p> +</div> +<div class="dlist"> +<dl> +<dt class="hdlist1"><code>changelogDirectory</code> (parameter)</dt> +<dd> +<p>Directory containing release folders composed of changelog entry XML files. +It defaults to <code>${project.basedir}/src/changelog</code> and can be set using the <code>log4j.changelog.directory</code> property.</p> +</dd> +<dt class="hdlist1"><code>outputDirectory</code> (parameter)</dt> +<dd> +<p>Directory to write rendered templates. +It defaults to <code>${project.build.directory}/generated-sources/site/changelog</code> and can be set using the <code>log4j.changelog.exporter.outputDirectory</code> property.</p> +</dd> +<dt class="hdlist1"><code>indexTemplates</code> (parameter)</dt> +<dd> +<p>List of <a href="#export-template-type">template</a>s that will be rendered with release information of all releases. +See <a href="log4j-changelog.html#index-template" class="xref page">the index template file documentation</a> for details.</p> +</dd> +<dt class="hdlist1"><code>changelogTemplates</code> (parameter)</dt> +<dd> +<p>List of <a href="#export-template-type">template</a>s that will be rendered with release and changelog information of a particular release. +See <a href="log4j-changelog.html#changelog-template" class="xref page">the changelog template file documentation</a> for details.</p> +</dd> +</dl> +</div> +<div id="export-template-type" class="dlist"> +<dl> +<dt class="hdlist1"><code>Template</code> (type)</dt> +<dd> +<p>An object composed of following fields:</p> +<div class="dlist"> +<dl> +<dt class="hdlist1"><code>source</code> (parameter)</dt> +<dd> +<p>the <a href="https://freemarker.apache.org">FreeMarker</a> template file</p> +</dd> +<dt class="hdlist1"><code>target</code> (parameter)</dt> +<dd> +<p>The output file. +If not provided, it will be derived from the <code>source</code>: if the <code>source</code> is <code>.index.adoc.ftl</code>, the <code>target</code> will be set to <code>index.adoc</code>. +If the value contains a <code>%v</code> (e.g., <code>%v.adoc</code>), it will be replaced with the associated release version. +<code>%v</code> substitution is only allowed for changelog templates and will not work for index templates.</p> +</dd> +<dt class="hdlist1"><code>failIfNotFound</code> (parameter)</dt> +<dd> +<p>Indicates if export should fail when the source cannot be found. +Defaults to <code>false</code>.</p> +</dd> +</dl> +</div> +</dd> +</dl> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release"><a class="anchor" href="#release"></a>Populating a release changelog directory</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>You can use the <code>release</code> goal wrapping <a href="log4j-changelog.html#qa-deploy-release" class="xref page"><code>ChangelogReleaser</code> to populate a release changelog directory</a>. +An example usage is shared below.</p> +</div> +<div class="listingblock"> +<div class="title">Populate <code>src/changelog/2.19.0</code> from <code>src/changelog/.2.x.x</code></div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">./mvnw -N log4j-changelog:release -Dlog4j.changelog.releaseVersion=2.19.0</code></pre> +</div> +</div> +<div class="paragraph"> +<p>Note that above we are using <code>-N</code> (<code>--non-recursive</code>) to avoid visiting submodules, which also makes the run faster.</p> +</div> +<div class="paragraph"> +<p><code>release</code> goal does not have default phase and accepts the following configuration parameters:</p> +</div> +<div class="dlist"> +<dl> +<dt class="hdlist1"><code>changelogDirectory</code> (parameter)</dt> +<dd> +<p>Directory containing release folders composed of changelog entry XML files. +It defaults to <code>${project.basedir}/src/changelog</code> and can be set using the <code>log4j.changelog.directory</code> property.</p> +</dd> +<dt class="hdlist1"><code>releaseVersion</code> (parameter)</dt> +<dd> +<p>The version to be released. +It can be set using the <code>log4j.changelog.releaseVersion</code> property.</p> +</dd> +<dt class="hdlist1"><code>versionPattern</code> (parameter)</dt> +<dd> +<p>The regular expression pattern for parsing versions. +The pattern must provide the following named groups: <code>major</code>, <code>minor</code>, and <code>patch</code>. +It defaults to <code>^(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*(-[a-zA-Z][0-9a-zA-Z-]*)?)$</code> and can be set using the <code>log4j.changelog.versionPattern</code> property.</p> +</dd> +</dl> +</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-changelog.html b/log4j-changelog.html new file mode 100644 index 0000000..4b87e7c --- /dev/null +++ b/log4j-changelog.html @@ -0,0 +1,557 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Log4j Changelog :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/log4j-changelog.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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-changelog.html">Log4j Changelog</a></li> + </ul> +</nav> +<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-kotlin/edit/main/src/site/antora/modules/ROOT/pages/log4j-changelog.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 Changelog</h1> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>This project contains tools to maintain changelogs. +It is designed for Apache Log4j, but can be used for any Java project.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="dependencies"><a class="anchor" href="#dependencies"></a>Dependencies</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>You need to have the <code>org.apache.logging.log4j:log4j-changelog</code> dependency in your classpath:</p> +</div> +<div class="listingblock"> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-changelog</artifactId> + <version>0.9.0-SNAPSHOT</version> +</dependency></code></pre> +</div> +</div> +<div class="paragraph"> +<p>Java module name and OSGi <code>Bundle-SymbolicName</code> are set to <code>org.apache.logging.log4j.changelog</code>.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="what-is-a-changelog"><a class="anchor" href="#what-is-a-changelog"></a>What is a changelog?</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>A changelog is a log of all notable changes made to a project.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="why-different"><a class="anchor" href="#why-different"></a>Why yet another changelog tool?</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>Existing changelog practices (e.g., <a href="https://keepachangelog.com">Keep a changelog</a>, <a href="https://maven.apache.org/plugins/maven-changes-plugin/">maven-changes-plugin</a>) store changelog entries in the same file. +This creates merge conflicts between different branches. +Imagine multiple people working on multiple branches each containing a change to <code>CHANGELOG.md</code>. +Whoever succeeds in merging their branch to <code>main</code> first will cause a merge-conflict for the others, even though their work might be totally unrelated from each other.</p> +</div> +<div class="paragraph"> +<p>This project embraces a model where changelog entries are kept in separate files and hence are not prone to merge conflicts. +Similar to <code>maven-changes-plugin</code>, changelog sources and their exports (e.g., AsciiDoc-formatted) are split by design.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="look"><a class="anchor" href="#look"></a>What does it look like?</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>All changelog <em>sources</em> and templates used to <em>export</em> them are stored in folders under <em>the changelog directory</em> (e.g., <code>/src/changelog</code>):</p> +</div> +<div class="listingblock"> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-none hljs">$ tree -a src/changelog +├── 2.18.0 <i class="conum" data-value="1"></i><b>(1)</b> +│ ├── LOG4J2-3424_Properties_defined_in_configuration_using_a_value_attribute.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── LOG4J2-3425_Syslog_appender_lacks_the_SocketOptions_setting.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── LOG4J2-3426_Log4j_1_2_bridge_should_not_wrap_components_unnecessarily.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── LOG4J2-3427_Improves_ServiceLoader_support_on_servlet_containers.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── .release-notes.adoc.ftl <i class="conum" data-value="5"></i><b>(5)</b> +│ └── .release.xml <i class="conum" data-value="3"></i><b>(3)</b> +├── 2.19.0 <i class="conum" data-value="1"></i><b>(1)</b> +│ ├── LOG4J2-3588_Allow_PropertySources_to_be_added.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── LOG4J2-3590_Remove_SLF4J_1_8_x_binding.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── LOG4J2-3614_Harden_InstantFormatter_against_delegate_failures.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── LOG4J2-3556_JsonTemplateLayout_stack_trace_truncation_fix.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ ├── .release-notes.adoc.ftl <i class="conum" data-value="5"></i><b>(5)</b> +│ └── .release.xml <i class="conum" data-value="3"></i><b>(3)</b> +├── .2.x.x <i class="conum" data-value="2"></i><b>(2)</b> +│ ├── LOG4J2-1284_redirect_old_javadoc_urls.xml <i class="conum" data-value="4"></i><b>(4)</b> +│ └── .release-notes.adoc.ftl <i class="conum" data-value="5"></i><b>(5)</b> +├── .changelog.adoc.ftl <i class="conum" data-value="5"></i><b>(5)</b> +└── .index.adoc.ftl <i class="conum" data-value="5"></i><b>(5)</b></code></pre> +</div> +</div> +<div class="colist arabic"> +<table> +<tr> +<td><i class="conum" data-value="1"></i><b>1</b></td> +<td>Changelog sources of <em>released versions</em> are stored in <code><changelogDirectory>/<releaseVersion></code> folders (e.g., <code>src/changelog/2.19.0</code>)</td> +</tr> +<tr> +<td><i class="conum" data-value="2"></i><b>2</b></td> +<td>Changelog sources of <em>upcoming releases</em> are stored in <code><changelogDirectory>/.<releaseVersionMajor>.x.x</code> folders (e.g., <code>/src/changelog/.2.x.x</code>)</td> +</tr> +<tr> +<td><i class="conum" data-value="3"></i><b>3</b></td> +<td><code>.release.xml</code> contains the information about the associated release. +Note that upcoming release folders (e.g., <code>src/changelog/.2.x.x</code>) don’t contain a <code>.release.xml</code>, since these releases are by definition not done yet.</td> +</tr> +<tr> +<td><i class="conum" data-value="4"></i><b>4</b></td> +<td>All XML files not prefixed with a <code>.</code> (e.g., <code>src/changelog/.2.x.x/LOG4J2-3628_new_changelog_infra.xml</code>) constitute changelog entries</td> +</tr> +<tr> +<td><i class="conum" data-value="5"></i><b>5</b></td> +<td><a href="https://freemarker.apache.org">FreeMarker</a> templates are used to <em>export</em> this information to various forms; AsciiDoc-formatted pages for the website, Markdown-formatted files for GitHub Releases, etc.</td> +</tr> +</table> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-entry-file"><a class="anchor" href="#release-entry-file"></a>Release entry file</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>A release entry file, <code>.release.xml</code>, consists of meta information regarding a particular release. +A sample <em>release entry</em> file is shared below.</p> +</div> +<div class="listingblock"> +<div class="title"><code>src/changelog/2.19.0/release.xml</code> file contents</div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><?xml version="1.0" encoding="UTF-8"?> +<release xmlns="https://logging.apache.org/xml/ns" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + https://logging.apache.org/xml/ns + https://logging.apache.org/xml/ns/log4j-changelog-0.xsd" + date="2022-09-09" + version="2.19.0"/></code></pre> +</div> +</div> +<div class="paragraph"> +<p>Note that upcoming release folders (e.g., <code>src/changelog/.2.x.x</code>) don’t contain a <code>.release.xml</code>, since these releases are by definition not done yet.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="changelog-entry-file"><a class="anchor" href="#changelog-entry-file"></a>Changelog entry file</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>A changelog entry file consists of short meta information regarding a particular change. +They are named following the <code>[<issueId>_]<shortSummary>.xml</code> pattern. +Consider the following examples:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><code>LOG4J2-3556_JsonTemplateLayout_stack_trace_truncation_fix.xml</code></p> +</li> +<li> +<p><code>LOG4J2-3578_Generate_new_SSL_certs_for_testing.xml</code></p> +</li> +<li> +<p><code>Update_jackson_2_11_0_2_11_2.xml</code></p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>A sample <em>changelog entry</em> file is shared below.</p> +</div> +<div class="listingblock"> +<div class="title"><code>src/changelog/2.19.0/LOG4J2-3556_JsonTemplateLayout_stack_trace_truncation_fix.xml</code> file contents</div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><?xml version="1.0" encoding="UTF-8"?> +<entry xmlns="https://logging.apache.org/xml/ns" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + https://logging.apache.org/xml/ns + https://logging.apache.org/xml/ns/log4j-changelog-0.xsd" + type="fixed"> + <issue id="2443" link="https://github.com/apache/logging-log4j2/pull/2443"/> + <description format="asciidoc"> + Make `JsonTemplateLayout` stack trace truncation operate for each label block + </description> +</entry></code></pre> +</div> +</div> +<div class="paragraph"> +<p>Some remarks about the structure of changelog entry files:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p>The root element must be named <code>entry</code></p> +</li> +<li> +<p><code>entry.type</code> attribute is required and must be one of the change types:</p> +<div class="ulist"> +<ul> +<li> +<p><code>added</code> – for new features</p> +</li> +<li> +<p><code>changed</code> – for changes in existing functionality</p> +</li> +<li> +<p><code>deprecated</code> – for soon-to-be removed features</p> +</li> +<li> +<p><code>fixed</code> – for any bug fixes</p> +</li> +<li> +<p><code>removed</code> – for now removed features</p> +</li> +<li> +<p><code>updated</code> – for dependency updates</p> +</li> +</ul> +</div> +</li> +<li> +<p><code>issue</code> element is optional, can occur multiple times, and, if present, must contain <code>id</code> and <code>link</code> attributes</p> +</li> +<li> +<p>There must be a single <code>description</code> element with non-blank content and <code>format</code> attribute</p> +</li> +</ul> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="export"><a class="anchor" href="#export"></a>Exporting changelogs</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p><em>Exporting</em> changelogs is the act of feeding provided changelog and release information into <a href="https://freemarker.apache.org">FreeMarker</a> templates to generate certain files; e.g., release notes for the website. +There are two types template files supported:</p> +</div> +<div class="dlist"> +<dl> +<dt class="hdlist1"><a href="#changelog-template">Changelog templates</a></dt> +<dd> +<p>These templates are rendered with the release and changelog information of a particular release. +These are generally used to generate release notes for a particular release.</p> +</dd> +<dt class="hdlist1"><a href="#index-template">Index templates</a></dt> +<dd> +<p>These templates are rendered with the release information of all releases. +These are generally used to generate the index page referencing to release notes of each release.</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p><code>ChangelogExporter</code> is responsible for performing the export operation.</p> +</div> +<div class="sect2"> +<h3 id="changelog-template"><a class="anchor" href="#changelog-template"></a>Changelog templates</h3> +<div class="paragraph"> +<p>Changelog template files (e.g., <code>src/changelog/2.19.0/.release-notes.adoc.ftl</code> ) are rendered with the release and changelog information of a particular release using the following input data hash:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><code>release</code> → <code>ChangelogRelease</code></p> +</li> +<li> +<p><code>entriesByType</code> → <code>Map<ChangelogEntry.Type, List<ChangelogEntry>></code></p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>See <code>ChangelogRelease</code> and <code>ChangelogEntry</code> for details.</p> +</div> +<div class="paragraph"> +<p>These templates are generally used to generate release notes for a particular release. +A sample changelog template file is shared below.</p> +</div> +<div class="listingblock"> +<div class="title"><code>src/changelog/2.19.0/.release-notes.adoc.ftl</code> file contents</div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-asciidoc hljs" data-lang="asciidoc">= ${release.version}<#if release.date?has_content> (${release.date})</#if> + +This release primarily contains bug fixes and minor enhancements. + +<#if entriesByType?size gt 0>== Changes +<#list entriesByType as entryType, entries> + +=== ${entryType?capitalize} + +<#list entries as entry> +* ${entry.description.text?replace("\\s+", " ", "r")} +(<#list entry.issues as issue>${issue.link}[${issue.id}]<#if issue?has_next>, </#if></#list>) +</#list> +</#list> +</#if></code></pre> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="index-template"><a class="anchor" href="#index-template"></a>Index templates</h3> +<div class="paragraph"> +<p>Index template files (e.g., <code>src/changelog/.index.adoc.ftl</code>) are rendered with the release information of all releases using the following input data hash:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><code>releases</code> → list of hashes containing following keys:</p> +<div class="ulist"> +<ul> +<li> +<p><code>version</code></p> +</li> +<li> +<p><code>date</code></p> +</li> +</ul> +</div> +</li> +</ul> +</div> +<div class="paragraph"> +<p>These template files are generally used to generate the index page referencing to release notes of each release. +A sample index template file is shared below.</p> +</div> +<div class="listingblock"> +<div class="title"><code>src/changelog/.index.adoc.ftl</code> file contents</div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-asciidoc hljs" data-lang="asciidoc">= Release changelogs + +<#list releases as release> +* xref:${release.version}.adoc[${release.version}]<#if release.date?has_content> (${release.date})</#if> +</#list></code></pre> +</div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="qa"><a class="anchor" href="#qa"></a>Q&A</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="qa-entry"><a class="anchor" href="#qa-entry"></a>How can I add an entry for a change I am about to commit?</h3> +<div class="paragraph"> +<p>You have just committed, or better, about to commit a great feature you have been working on. +Simply create a <a href="#changelog-entry-file">Changelog entry file</a> and commit it along with your change!</p> +</div> +</div> +<div class="sect2"> +<h3 id="qa-generate"><a class="anchor" href="#qa-generate"></a>How can I export changelogs to AsciiDoc, Markdown, etc. files?</h3> +<div class="paragraph"> +<p>You need to use <a href="log4j-changelog-maven-plugin.html#export" class="xref page">the <code>export</code> goal the Maven plugin</a>.</p> +</div> +</div> +<div class="sect2"> +<h3 id="qa-deploy-release"><a class="anchor" href="#qa-deploy-release"></a>I am about to deploy a new release. What shall I do?</h3> +<div class="paragraph"> +<p>Just before a release, three things need to happen in the changelog sources:</p> +</div> +<div class="olist arabic"> +<ol class="arabic"> +<li> +<p><strong>Changelog entry files needs to be moved</strong> from the <em>upcoming</em> release changelog directory <code><changelogDirectory>/.<releaseVersionMajor>.x.x</code> to the <em>new</em> release changelog directory <code><changelogDirectory>/<releaseVersion></code></p> +</li> +<li> +<p><strong>Templates need to be copied</strong> from the <em>upcoming</em> release changelog directory to the <em>new</em> release changelog directory, unless it already exists in the target</p> +</li> +<li> +<p><strong><code>.release.xml</code> needs to be created</strong> in the <em>new</em> release changelog directory</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>Due to the nature of release candidates, above steps might need to be repeated multiple times.</p> +</div> +<div class="admonitionblock tip"> +<table> +<tr> +<td class="icon"> +<i class="fa icon-tip" title="Tip"></i> +</td> +<td class="content"> +<div class="paragraph"> +<p>Log4j <em>releases</em> and <em>release candidates</em> all get deployed to the same <a href="https://repository.apache.org/#stagingRepositories"><em>staging repository</em></a>. +Their <code>pom.xml</code> files all contain the same release version, e.g., <code>2.19.0</code>. +There are no <code>-rc1</code>, <code>-rc2</code>, etc. suffixes in the version of a release candidate. +Once a release candidate voting reaches to a consensus for release, associated artifacts simply get promoted from the <em>staging</em> to the <em>public</em> repository. +Hence, there are no differences between releases and release candidates from the point of view of changelogs.</p> +</div> +</td> +</tr> +</table> +</div> +<div class="paragraph"> +<p>How to carry out aforementioned changes are explained below in steps:</p> +</div> +<div class="olist arabic"> +<ol class="arabic"> +<li> +<p>Populate the <code><changelogDirectory>/<releaseVersion></code> directory (e.g., <code>/src/changelog/2.19.0</code>) from the upcoming release changelog directory (e.g., <code><changelogDirectory>/.2.x.x</code>) using the <a href="log4j-changelog-maven-plugin.html#release" class="xref page"><code>release</code> Maven goal</a>:</p> +<div class="listingblock"> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">./mvnw log4j-changelog:release \ + -Dlog4j.changelog.directory=/path/to/changelog/directory \ + -Dlog4j.changelog.releaseVersion=X.Y.Z</code></pre> +</div> +</div> +</li> +<li> +<p>Verify that all changelog entry files are moved from <code><changelogDirectory>/.<releaseVersionMajor>.x.x</code> directory (e.g., <code>/src/changelog/.2.x.x</code>)</p> +</li> +<li> +<p>Verify that <code><changelogDirectory>/<releaseVersion></code> directory (e.g., <code>/src/changelog/2.19.0</code>) is created, and it contains templates, changelog entry files, and a <code>.release.xml</code></p> +<div class="admonitionblock important"> +<table> +<tr> +<td class="icon"> +<i class="fa icon-important" title="Important"></i> +</td> +<td class="content"> +<div class="paragraph"> +<p>If <code><changelogDirectory>/<releaseVersion></code> directory (e.g., <code>/src/changelog/2.19.0</code>) already exists with certain content, <code>ChangelogReleaser</code> will only move new changelog entry files and override <code>.release.xml</code>; templates will not be overridden. +This allows one to run <code>ChangelogReleaser</code> multiple times, e.g., to incorporate changes added to a release candidate.</p> +</div> +</td> +</tr> +</table> +</div> +</li> +<li> +<p>Edit the populated templates (e.g., update the release notes with a short summary paragraph)</p> +</li> +<li> +<p><code>git add</code> the changes in the changelog directory (e.g., <code>/src/changelog</code>) and commit them</p> +</li> +</ol> +</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-docgen-asciidoctor-extension.html b/log4j-docgen-asciidoctor-extension.html new file mode 100644 index 0000000..9d1d88d --- /dev/null +++ b/log4j-docgen-asciidoctor-extension.html @@ -0,0 +1,190 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Log4j Docgen AsciiDoctor extension :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/log4j-docgen-asciidoctor-extension.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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item is-current-page" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</a></li> + </ul> +</nav> +<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-kotlin/edit/main/src/site/antora/modules/ROOT/pages/log4j-docgen-asciidoctor-extension.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 Docgen AsciiDoctor extension</h1> +<div class="paragraph"> +<p>While <a href="log4j-docgen.html#descriptor-generator" class="xref page">the descriptor generator</a> converts Javadoc to AsciiDoc, it cannot resolve links. +That is, it cannot blindly replace a <code>{@link example.MyAppender foo}</code> Javadoc snippet with a <code>xref:MyAppender.adoc[foo]</code> AsciiDoc snippet instead. +This is because, the mapping of types to AsciiDoc files are not available to the descriptor generator, but <a href="log4j-docgen.html#documentation-generator" class="xref page">the documentation generator</a>. +That is, the descriptor generator doesn’t know if the type will be mapped to <code><className>.adoc</code> or <code><artifactId>/<className>.adoc</code>. +As a matter of fact, it should not need to know this either: descriptors capture immutable metadata, whereas documentation file structure can always change. +To work around this, we convert <code>{@link example.MyAppender foo}</code> to <code>apiref:example.MyAppender[foo]</code> and provide an <code>apiref</code> inline AsciiDoc macro to resolve these while generating the documentation.</p> +</div> +<div class="paragraph"> +<p><code>DocgenExtension</code> AsciiDoctor extension provides the <code>apiref</code> inline macro which can be configured using the below shared AsciiDoctor document attributes:</p> +</div> +<div class="dlist"> +<dl> +<dt class="hdlist1"><code>log4j-docgen-descriptor-dot-files-included</code></dt> +<dd> +<p>Indicates if dot files (i.e., <code>.</code>-prefix file names) will be accepted in <a href="#log4j-docgen-asciidoctor-extension-attribute-descriptor-path-matcher">[log4j-docgen-asciidoctor-extension-attribute-descriptor-path-matcher]</a>. +This attribute defaults to <code>false</code>.</p> +</dd> +</dl> +</div> +<div id="log4j-docgen-asciidoctor-extension-attribute-descriptor-path-matcher" class="dlist"> +<dl> +<dt class="hdlist1"><code>log4j-docgen-descriptor-path-matcher</code></dt> +<dd> +<p>The <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/FileSystem.html#getPathMatcher(java.lang.String)">path pattern</a> (e.g., <code>glob:*<strong>/</strong>.xml</code>) to locate files produced by <a href="log4j-docgen.html#descriptor-generator" class="xref page">the descriptor generator</a>. +This attribute is <strong>required</strong>.</p> +</dd> +<dt class="hdlist1"><code>log4j-docgen-type-filter-exclude-pattern</code></dt> +<dd> +<p>The regular expression to match against the types loaded from descriptors and determine if a type will be <em>excluded</em> to generate links. +This argument defaults to not exclude anything.</p> +</dd> +<dt class="hdlist1"><code>log4j-docgen-type-filter-include-pattern</code></dt> +<dd> +<p>The regular expression to match against the types loaded from descriptors and determine if a type will be <em>included</em> to generate links. +This argument defaults to <code>.*</code>, that is, all loaded types will be used to generate links.</p> +</dd> +<dt class="hdlist1"><code>log4j-docgen-package-name-stripped</code></dt> +<dd> +<p>Indicates if the package name will be stripped for unknown types. +That is, if <code>true</code>, <code>apiref:some.unknown.Class[]</code> will be converted to <code><code>Class</code></code>; <code><code>some.unknown.Class</code></code>, otherwise. +Note that this only applies to types where the label is not provided. +This flag is disabled by default.</p> +</dd> +<dt class="hdlist1"><code>log4j-docgen-type-target-template</code></dt> +<dd> +<p>The FreeMarker template to produce the link target for individual types documented, for instance:</p> +<div class="listingblock"> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-none hljs">#${sourcedType.groupId?replace('.', '-')}_${sourcedType.artifactId?replace('.', '-')}_${sourcedType.type.className?replace('.', '-')</code></pre> +</div> +</div> +<div class="paragraph"> +<p>This attribute is <strong>required</strong>.</p> +</div> +</dd> +</dl> +</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-docgen-maven-plugin.html b/log4j-docgen-maven-plugin.html new file mode 100644 index 0000000..bc8cef7 --- /dev/null +++ b/log4j-docgen-maven-plugin.html @@ -0,0 +1,226 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Log4j Docgen Maven Plugin :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/log4j-docgen-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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item is-current-page" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a></li> + </ul> +</nav> +<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-kotlin/edit/main/src/site/antora/modules/ROOT/pages/log4j-docgen-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 Docgen Maven Plugin</h1> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>Log4j Docgen Maven Plugin allows you to easily run Log4j Docgen <a href="log4j-docgen.html#documentation-generator" class="xref page">documentation generator</a> and <a href="log4j-docgen.html#schema-generator" class="xref page">schema generator</a> from your <code>pom.xml</code>.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="dependencies"><a class="anchor" href="#dependencies"></a>Dependencies</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>You need to have the <code>org.apache.logging.log4j:log4j-docgen-maven-plugin</code> dependency in your classpath:</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-docgen-maven-plugin</artifactId> + <version>0.9.0-SNAPSHOT</version> +</plugin></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="generate-documentation"><a class="anchor" href="#generate-documentation"></a>Generate documentation</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>The <code>generate-documentation</code> goal generates an AsciiDoc-formatted documentation using FreeMarker templates that are fed with the types loaded from given descriptors:</p> +</div> +<div class="listingblock"> +<div class="title">An example <code>log4j-docgen:generate-documentation</code> configuration</div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><configuration> + + <descriptorFileMatchers> + <descriptorFileMatcher> + <baseDirectory>${project.build.directory}/plugin-descriptors</baseDirectory> + </descriptorFileMatcher> + </descriptorFileMatchers> + + <typeFilter> + <excludes> + <exclude>^java\..+</exclude> + </excludes> + </typeFilter> + + <templateDirectory>${project.basedir}/src/docgen-templates</templateDirectory> + <indexTemplate> + <source>index.adoc.ftl</source> + <target>${project.build.directory}/generated-site/asciidoc/plugin-reference/index.adoc</target> + </indexTemplate> + <typeTemplate> + <source>type.adoc.ftl</source> + <!-- `target` must be in sync. with the `log4j-docgen-type-template-target` configuration of `log4j-docgen-asciidoctor-extension`! --> + <target>${project.build.directory}/generated-site/asciidoc/plugin-reference/%g/%a/%c.adoc</target> + </typeTemplate> + +</configuration></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="generate-schema"><a class="anchor" href="#generate-schema"></a>Generate schema</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>The <code>generate-schema</code> goal generates an XSD derived from the types loaded using given descriptors:</p> +</div> +<div class="listingblock"> +<div class="title">An example <code>log4j-docgen:generate-schema</code> configuration</div> +<div class="content"> +<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><configuration> + + <descriptorFileMatchers> + <descriptorFileMatcher> + <baseDirectory>${project.build.directory}/plugin-descriptors</baseDirectory> + </descriptorFileMatcher> + </descriptorFileMatchers> + + <typeFilter> + <excludes> + <exclude>^java\..+</exclude> + </excludes> + </typeFilter> + + <schemaVersion>${project.version}</schemaVersion> + <schemaFile>${project.build.directory}/generated-site/resources/config.xsd</schemaFile> + +</configuration></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-docgen.html b/log4j-docgen.html new file mode 100644 index 0000000..ee910ef --- /dev/null +++ b/log4j-docgen.html @@ -0,0 +1,266 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Log4j Docgen :: Apache Log4j Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/log4j-docgen.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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item is-current-page" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-docgen.html">Log4j Docgen</a></li> + </ul> +</nav> +<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j-kotlin/edit/main/src/site/antora/modules/ROOT/pages/log4j-docgen.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 Docgen</h1> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>Log4j Docgen (Documentation Generation) bundles utility classes to generate documentation from Log4j plugins. +Given almost all Log4j functionality (layouts, appenders, etc.) is implemented in the form of plugins, this project aims the following goals:</p> +</div> +<div class="dlist"> +<dl> +<dt class="hdlist1">Avoid the need to maintain documentation in multiple places</dt> +<dd> +<p>For instance, Log4j JSON Template Layout is composed of several plugins with sufficient Javadoc explaining their behaviour. +Next to this we also maintain a big <code>json-template-layout.adoc</code> page for the website, again, documenting each component. +By generating documentation from the source code, developers can precisely capture the behaviour of their components only in the very code itself that they change.</p> +</dd> +<dt class="hdlist1">Accurately capture the component configuration</dt> +<dd> +<p>It is pretty common that source code changes are not reflected to documentation. +By generating the documentation from the source code, this discrepancy gets removed.</p> +</dd> +</dl> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="dependencies"><a class="anchor" href="#dependencies"></a>Dependencies</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>You need to have the <code>org.apache.logging.log4j:log4j-docgen</code> dependency in your classpath:</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-docgen</artifactId> + <version>0.9.0-SNAPSHOT</version> +</plugin></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="descriptor-generator"><a class="anchor" href="#descriptor-generator"></a>Descriptor generator</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p><code>DescriptorGenerator</code> is an annotation processor that generates an XML file capturing all the metadata needed to document a plugin:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><strong>types</strong> – types it extends from, types it uses in its configuration, etc.</p> +</li> +<li> +<p><strong>configuration</strong> – extracts the necessary set of elements, attributes, etc. from builder classes, <code>@PluginFactory</code>-annotated methods, etc.</p> +</li> +<li> +<p><strong>documentation</strong> – extracts the Javadoc of each field and type, and converts it to AsciiDoc</p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>Users are recommended to integrate this annotation processor into their build:</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-compiler-plugin</artifactId> + <configuration> + <annotationProcessorPaths combine.children="append"> + <!-- Include `org.apache.logging.log4j.docgen.processor.DescriptorGenerator` that generates `log4j-plugins.xml`. + `DescriptorGenerator` must precede `PluginProcessor`, since the latter *claims* the `@Plugin`. + Once claimed, `javac` doesn't pass those sources to other processors. --> + <path> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-docgen</artifactId> + <version>0.9.0-SNAPSHOT</version> + </path> + <!-- `org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor` for generating `META-INF/org/apache/.../Log4j2Plugins.dat`: --> + <path> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${project.version}</version> + </path> + </annotationProcessorPaths> + <compilerArgs combine.children="append"> + <!-- Provide `org.apache.logging.log4j.docgen.processor.DescriptorGenerator` arguments: --> + <arg>-Alog4j.docgen.descriptorFilePath=${project.build.directory}/${project.artifactId}-plugins.xml</arg> + <arg>-Alog4j.docgen.groupId=${project.groupId}</arg> + <arg>-Alog4j.docgen.artifactId=${project.artifactId}</arg> + <arg>-Alog4j.docgen.version=${project.version}</arg> + <arg>-Alog4j.docgen.description=${project.description}</arg> + <arg>-Alog4j.docgen.typeFilter.excludePattern=^java\..+</arg> + </compilerArgs> + </configuration> +</plugin></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="documentation-generator"><a class="anchor" href="#documentation-generator"></a>Documentation generator</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p><code>DocumentationGenerator</code> receives</p> +</div> +<div class="olist arabic"> +<ol class="arabic"> +<li> +<p>plugin descriptors (generated by the <code>DescriptorGenerator</code>)</p> +</li> +<li> +<p>FreeMarker templates (to render the type hierarchy and each individual type)</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>as input arguments, and produces an AsciiDoc-formatted documentation that one can integrate into the website of a project.</p> +</div> +<div class="paragraph"> +<p>Users are recommended to use <a href="log4j-docgen-maven-plugin.html#generate-documentation" class="xref page">the <code>generate-documentation</code> goal of the <code>log4j-docgen-maven-plugin</code></a> instead.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="schema-generator"><a class="anchor" href="#schema-generator"></a>Schema generator</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p><code>SchemaGenerator</code> receives plugin descriptors (generated by the <code>DescriptorGenerator</code>) as input, and produces an XSD describing the structure defined by the descriptors.</p> +</div> +<div class="paragraph"> +<p>Users are recommended to use <a href="log4j-docgen-maven-plugin.html#generate-schema" class="xref page">the <code>generate-schema</code> goal of the <code>log4j-docgen-maven-plugin</code></a> instead.</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/release-notes.html b/release-notes.html new file mode 100644 index 0000000..1cc5686 --- /dev/null +++ b/release-notes.html @@ -0,0 +1,577 @@ +<!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 Tools</title> + <link rel="canonical" href="https://logging.apache.org/log4j/kotlin/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 Tools</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-changelog.html">Log4j Changelog</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-changelog-maven-plugin.html">Log4j Changelog Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen.html">Log4j Docgen</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-maven-plugin.html">Log4j Docgen Maven Plugin</a> + </li> + <li class="nav-item" data-depth="2"> + <a class="nav-link" href="log4j-docgen-asciidoctor-extension.html">Log4j Docgen AsciiDoctor extension</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-kotlin/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 minor release contains various bug fixes and improvements.</p> +</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> +</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>commons-io:commons-io</code> to version <code>2.16.1</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/114">114</a>)</p> +</li> +<li> +<p>Update <code>org.apache.logging:logging-parent</code> to version <code>11.0.0</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/115">115</a>)</p> +</li> +<li> +<p>Update <code>org.apache.maven.plugin-tools:maven-plugin-annotations</code> to version <code>3.12.0</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/113">113</a>)</p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-8-0"><a class="anchor" href="#release-notes-0-8-0"></a>0.8.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2024-03-21</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This release delivers the first version of Log4j Docgen (Documentation Generator). +It is a set of tools to auto-generate the Log4j plugin documentation (to be integrated into the website) and the Log4j configuration XSD file (for assisting the configuration of the Log4j runtime, i.e., <code>log4j2.xml</code>) from the Log4j source code. +See the project website for details.</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-8-0-added"><a class="anchor" href="#release-notes-0-8-0-added"></a>Added</h3> +<div class="ulist"> +<ul> +<li> +<p>Add the <code>log4j-docgen</code> et al. containing a universal XML model to document Log4j plugins</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-8-0-changed"><a class="anchor" href="#release-notes-0-8-0-changed"></a>Changed</h3> +<div class="ulist"> +<ul> +<li> +<p>Move Log4j Changelog XML namespace and schema location to <code><a href="https://logging.apache.org/xml/ns" class="bare">https://logging.apache.org/xml/ns</a></code> and <code><a href="https://logging.apache.org/xml/ns/log4j-changelog-0.xsd" class="bare">https://logging.apache.org/xml/ns/log4j-changelog-0.xsd</a></code>, respectively</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-8-0-removed"><a class="anchor" href="#release-notes-0-8-0-removed"></a>Removed</h3> +<div class="ulist"> +<ul> +<li> +<p>Remove <code>author</code> from Log4j Changelog. + It was yet another bit to maintain and created role-related (who did what) problems. Many modern software projects use a VCS (e.g., Git) and support services (e.g., GitHub) which make it trivial to trace back the origin of a change using commit and issue IDs.</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-8-0-updated"><a class="anchor" href="#release-notes-0-8-0-updated"></a>Updated</h3> +<div class="ulist"> +<ul> +<li> +<p>Update <code>org.apache.logging:logging-parent</code> to version <code>10.6.0</code></p> +</li> +<li> +<p>Update <code>jakarta.inject:jakarta.inject-api</code> to version <code>2.0.1</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/94">94</a>)</p> +</li> +<li> +<p>Update <code>org.apache.logging.log4j:log4j-core</code> to version <code>2.23.1</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/108">108</a>)</p> +</li> +<li> +<p>Update <code>org.apache.logging.log4j:log4j-plugins</code> to version <code>3.0.0-beta2</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/107">107</a>)</p> +</li> +<li> +<p>Update <code>org.apache.maven.plugin-tools:maven-plugin-annotations</code> to version <code>3.11.0</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/98">98</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-tools/pull/104">104</a>)</p> +</li> +<li> +<p>Update <code>org.codehaus.modello:modello-maven-plugin</code> to version <code>2.3.0</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/105">105</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-tools/pull/103">103</a>)</p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-7-0"><a class="anchor" href="#release-notes-0-7-0"></a>0.7.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2023-12-14</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This minor release contains various bug fixes and improvements.</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-7-0-added"><a class="anchor" href="#release-notes-0-7-0-added"></a>Added</h3> +<div class="ulist"> +<ul> +<li> +<p>Add the new <code>updated</code> changelog entry type and bump the XSD version to <code>0.1.3</code></p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-7-0-fixed"><a class="anchor" href="#release-notes-0-7-0-fixed"></a>Fixed</h3> +<div class="ulist"> +<ul> +<li> +<p>Sort changelog entry types alphanumerically</p> +</li> +<li> +<p>Fix <code>log4j-changelog:release</code> failure on empty unreleased changelog directory (<a href="https://github.com/apache/logging-log4j-tools/issues/90">90</a>)</p> +</li> +<li> +<p>Fix parsing of patch versions in <code>log4j-changelog:release</code> goal (<a href="https://github.com/apache/logging-log4j-tools/issues/89">89</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-7-0-updated"><a class="anchor" href="#release-notes-0-7-0-updated"></a>Updated</h3> +<div class="ulist"> +<ul> +<li> +<p>Update <code>commons-io:commons-io</code> to version <code>2.15.1</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/86">86</a>)</p> +</li> +<li> +<p>Update <code>org.apache.maven.plugin-tools:maven-plugin-annotations</code> to version <code>3.10.2</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/87">87</a>)</p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-6-0"><a class="anchor" href="#release-notes-0-6-0"></a>0.6.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2023-11-17</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This minor release contains various bug fixes and improvements.</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-6-0-added"><a class="anchor" href="#release-notes-0-6-0-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.4.0</code></p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-6-0-fixed"><a class="anchor" href="#release-notes-0-6-0-fixed"></a>Fixed</h3> +<div class="ulist"> +<ul> +<li> +<p><code>log4j-tools-bom</code> was broken due to removed <code>parent</code> during flattening. This is automatically fixed by the recent <code>logging-parent</code> version <code>10.4.0</code> update.</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-6-0-updated"><a class="anchor" href="#release-notes-0-6-0-updated"></a>Updated</h3> +<div class="ulist"> +<ul> +<li> +<p>Update <code>org.apache.logging:logging-parent</code> to version <code>10.4.0</code></p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-5-0"><a class="anchor" href="#release-notes-0-5-0"></a>0.5.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2023-09-29</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This minor release contains various bug fixes and improvements.</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-5-0-added"><a class="anchor" href="#release-notes-0-5-0-added"></a>Added</h3> +<div class="ulist"> +<ul> +<li> +<p>Added OSGi and JPMS support</p> +</li> +<li> +<p>Started publishing <a href="https://logging.apache.org/log4j/tools">the project website</a></p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-5-0-changed"><a class="anchor" href="#release-notes-0-5-0-changed"></a>Changed</h3> +<div class="ulist"> +<ul> +<li> +<p>Made <code>author</code> element optional and bumped the XML schema version to <code>0.1.2</code> (<a href="https://github.com/apache/logging-log4j-tools/issues/81">81</a>)</p> +</li> +<li> +<p>Make <code>log4j-changelog-maven-plugin</code> thread-safe (<a href="https://github.com/apache/logging-log4j-tools/issues/80">80</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-5-0-updated"><a class="anchor" href="#release-notes-0-5-0-updated"></a>Updated</h3> +<div class="ulist"> +<ul> +<li> +<p>Update <code>org.apache.logging:logging-parent</code> to version <code>10.1.1</code> (<a href="https://github.com/apache/logging-log4j-tools/pull/82">82</a>)</p> +</li> +<li> +<p>Update <code>org.junit.jupiter:junit-jupiter-engine</code> to version <code>5.10.0</code></p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-4-0"><a class="anchor" href="#release-notes-0-4-0"></a>0.4.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2023-07-02</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This minor release contains small enhancements. +Most importantly, this marks the first release where the project uses itself to generate release notes!</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-4-0-added"><a class="anchor" href="#release-notes-0-4-0-added"></a>Added</h3> +<div class="ulist"> +<ul> +<li> +<p>Add <code>versionPattern</code> (i.e., the regular expression pattern for parsing versions) parameter to the Maven <code>release</code> goal (<a href="https://github.com/apache/logging-log4j-tools/issues/63">63</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-4-0-changed"><a class="anchor" href="#release-notes-0-4-0-changed"></a>Changed</h3> +<div class="ulist"> +<ul> +<li> +<p>Change the default value of <code>outputDirectory</code> to <code>${project.build.directory}/generated-sources/site/changelog</code> for the Maven <code>export</code> goal</p> +</li> +<li> +<p>Migrate from <code>CHANGELOG.adoc</code> to using <code>log4j-changelog-maven-plugin</code></p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-4-0-fixed"><a class="anchor" href="#release-notes-0-4-0-fixed"></a>Fixed</h3> +<div class="ulist"> +<ul> +<li> +<p>Improve Maven <code>release</code> goal to accommodate repetitive invocations</p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-3-0"><a class="anchor" href="#release-notes-0-3-0"></a>0.3.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2023-03-14</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This minor release contains various bug fixes and improvements.</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-3-0-added"><a class="anchor" href="#release-notes-0-3-0-added"></a>Added</h3> +<div class="ulist"> +<ul> +<li> +<p>The changelog release models passed to the index template file (<code>.index.adoc.ftl</code>) is enriched with <code>changelogEntryCount</code> fields (<a href="https://github.com/apache/logging-log4j-tools/issues/37">37</a>)</p> +</li> +<li> +<p>Support multiple and formatting-agnostic template files (<a href="https://github.com/apache/logging-log4j-tools/issues/44">44</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-3-0-changed"><a class="anchor" href="#release-notes-0-3-0-changed"></a>Changed</h3> +<div class="ulist"> +<ul> +<li> +<p>Upgrade the compiler version to Java 17, yet still target Java 8</p> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="release-notes-0-2-0"><a class="anchor" href="#release-notes-0-2-0"></a>0.2.0</h2> +<div class="sectionbody"> +<div class="dlist"> +<dl> +<dt class="hdlist1">Release date</dt> +<dd> +<p>2023-01-31</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This minor release contains various bug fixes and improvements.</p> +</div> +<div class="sect2"> +<h3 id="release-notes-0-2-0-added"><a class="anchor" href="#release-notes-0-2-0-added"></a>Added</h3> +<div class="ulist"> +<ul> +<li> +<p>Add XSD for <code>log4j-changelog</code> XML files (<a href="https://github.com/apache/logging-log4j-tools/issues/13">13</a>)</p> +</li> +<li> +<p>Add <code>log4j-changelog-maven-plugin</code> module (<a href="https://github.com/apache/logging-log4j-tools/issues/20">20</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-2-0-changed"><a class="anchor" href="#release-notes-0-2-0-changed"></a>Changed</h3> +<div class="ulist"> +<ul> +<li> +<p>Rename <code>log4j.changelog.exporter.outputDirectory</code> property to <code>log4j.changelog.outputDirectory</code> (<a href="https://github.com/apache/logging-log4j-tools/issues/20">20</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-2-0-fixed"><a class="anchor" href="#release-notes-0-2-0-fixed"></a>Fixed</h3> +<div class="ulist"> +<ul> +<li> +<p>Fix unreleased directory order in <code>ChangelogExporter</code> (<a href="https://github.com/apache/logging-log4j-tools/issues/17">17</a>)</p> +</li> +<li> +<p>Fix Windows compatibility (<a href="https://github.com/apache/logging-log4j-tools/issues/19">19</a>)</p> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="release-notes-0-2-0-removed"><a class="anchor" href="#release-notes-0-2-0-removed"></a>Removed</h3> +<div class="ulist"> +<ul> +<li> +<p>Remove <code>security</code> as a change type from <code>log4j-changelog</code> (<a href="https://github.com/apache/logging-log4j-tools/issues/14">14</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-01-10</p> +</dd> +</dl> +</div> +<div class="paragraph"> +<p>This is the first release, aimed to assist [the Apache Log4j 2](<a href="https://logging.apache.org/log4j/2.x/" class="bare">https://logging.apache.org/log4j/2.x/</a>) on generating release notes.</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>Add <code>log4j-tools-bom</code> and <code>log4j-changelog</code> modules (<a href="https://issues.apache.org/jira/browse/LOG4J2-3628">LOG4J2-3628</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..fb841f8 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> +<url> +<loc>https://logging.apache.org/log4j/kotlin/development.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/index.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/log4j-changelog-maven-plugin.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/log4j-changelog.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/log4j-docgen-asciidoctor-extension.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/log4j-docgen-maven-plugin.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/log4j-docgen.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +<url> +<loc>https://logging.apache.org/log4j/kotlin/release-notes.html</loc> +<lastmod>2024-04-19T10:31:24.222Z</lastmod> +</url> +</urlset>