This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j-tools.git
commit 8fda8c5b1c2d0b79bb2c7710893752731649974d Author: Volkan Yazıcı <[email protected]> AuthorDate: Thu Feb 29 14:06:58 2024 +0100 Add type filter support to generators --- ...neratorMojo.java => AbstractGeneratorMojo.java} | 40 +-- .../docgen/maven/DocumentationGeneratorMojo.java | 27 +-- .../log4j/docgen/maven/SchemaGeneratorMojo.java | 29 +-- .../logging/log4j/docgen/maven/TypeFilterMojo.java | 88 +++++++ .../logging/log4j/docgen/generator/BaseTypes.java | 4 +- .../docgen/generator/DocumentationGenerator.java | 2 +- .../generator/DocumentationGeneratorArgs.java | 5 + .../log4j/docgen/generator/SchemaGenerator.java | 10 +- .../docgen/generator/SchemaGeneratorArgs.java | 7 +- .../logging/log4j/docgen/generator/TypeLookup.java | 20 +- .../log4j/docgen/generator/base-java-types.xml | 69 ------ .../generator/DocumentationGeneratorTest.java | 4 + .../docgen/generator/SchemaGeneratorTest.java | 3 +- ....log4j.core.config.LoggerConfig.RootLogger.adoc | 2 +- ...che.logging.log4j.core.config.LoggerConfig.adoc | 2 +- .../plugins-to-freemarker-output/scalars.adoc | 54 ----- .../log4j-core/java.io.Serializable.adoc | 27 --- .../log4j-core/java.lang.Cloneable.adoc | 28 --- .../log4j-core/java.lang.Iterable.adoc | 27 --- .../log4j-core/java.lang.Object.adoc | 269 --------------------- .../log4j-core/java.lang.Runnable.adoc | 29 --- .../log4j-core/java.util.Comparator.adoc | 27 --- ....logging.log4j.core.appender.AsyncAppender.adoc | 4 +- ...ogging.log4j.core.appender.ConsoleAppender.adoc | 2 +- ...gging.log4j.core.appender.FailoverAppender.adoc | 2 +- ...e.logging.log4j.core.appender.FileAppender.adoc | 2 +- ...e.logging.log4j.core.appender.HttpAppender.adoc | 2 +- ...g4j.core.appender.MemoryMappedFileAppender.adoc | 2 +- ...g.log4j.core.appender.OutputStreamAppender.adoc | 2 +- ...g4j.core.appender.RandomAccessFileAppender.adoc | 2 +- ...ng.log4j.core.appender.RollingFileAppender.adoc | 2 +- ...e.appender.RollingRandomAccessFileAppender.adoc | 2 +- ...e.logging.log4j.core.appender.SmtpAppender.adoc | 2 +- ...logging.log4j.core.appender.SyslogAppender.adoc | 4 +- ...logging.log4j.core.appender.WriterAppender.adoc | 2 +- ...nder.db.jdbc.DriverManagerConnectionSource.adoc | 2 +- ...g.log4j.core.appender.db.jdbc.JdbcAppender.adoc | 6 +- ...ogging.log4j.core.appender.mom.JmsAppender.adoc | 2 +- ...4j.core.appender.mom.jeromq.JeroMqAppender.adoc | 2 +- ...og4j.core.appender.mom.kafka.KafkaAppender.adoc | 2 +- ...ng.log4j.core.appender.nosql.NoSqlAppender.adoc | 9 +- ...ender.rewrite.LoggerNameLevelRewritePolicy.adoc | 2 +- ...g4j.core.appender.rewrite.MapRewritePolicy.adoc | 2 +- ...og4j.core.appender.rewrite.RewriteAppender.adoc | 2 +- ...logging.log4j.core.appender.routing.Routes.adoc | 2 +- ...og4j.core.appender.routing.RoutingAppender.adoc | 2 +- ...4j.core.async.AsyncLoggerConfig.RootLogger.adoc | 4 +- ...logging.log4j.core.async.AsyncLoggerConfig.adoc | 4 +- ....log4j.core.config.LoggerConfig.RootLogger.adoc | 4 +- ...g.log4j.core.filter.DynamicThresholdFilter.adoc | 2 +- ...ache.logging.log4j.core.filter.RegexFilter.adoc | 2 +- ...ing.log4j.core.filter.StructuredDataFilter.adoc | 2 +- ...g.log4j.core.filter.ThreadContextMapFilter.adoc | 2 +- ...pache.logging.log4j.core.layout.GelfLayout.adoc | 7 +- ...pache.logging.log4j.core.layout.JsonLayout.adoc | 7 +- ...ing.log4j.core.layout.LevelPatternSelector.adoc | 2 +- ...che.logging.log4j.core.layout.LoggerFields.adoc | 2 +- ...ng.log4j.core.layout.MarkerPatternSelector.adoc | 2 +- ...he.logging.log4j.core.layout.Rfc5424Layout.adoc | 2 +- ...ng.log4j.core.layout.ScriptPatternSelector.adoc | 2 +- ...che.logging.log4j.core.layout.SyslogLayout.adoc | 5 + ...apache.logging.log4j.core.layout.XmlLayout.adoc | 7 +- ...pache.logging.log4j.core.layout.YamlLayout.adoc | 7 +- ...4j.layout.template.json.JsonTemplateLayout.adoc | 2 +- .../freemarker-output/scalars.adoc | 89 ------- .../src/test/resources/templates/plugin.adoc.ftl | 30 ++- .../src/test/resources/templates/scalars.adoc.ftl | 4 +- .../tools/internal/test/util/FileTestUtils.java | 5 +- 68 files changed, 251 insertions(+), 778 deletions(-) diff --git a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/AbstractGeneratorMojo.java similarity index 51% copy from log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java copy to log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/AbstractGeneratorMojo.java index 193db22..36603ba 100644 --- a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java +++ b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/AbstractGeneratorMojo.java @@ -17,25 +17,11 @@ package org.apache.logging.log4j.docgen.maven; import java.io.File; -import java.util.Set; -import javax.xml.stream.XMLStreamException; -import org.apache.logging.log4j.docgen.PluginSet; -import org.apache.logging.log4j.docgen.generator.SchemaGenerator; -import org.apache.logging.log4j.docgen.generator.SchemaGeneratorArgs; import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.LifecyclePhase; -import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.jspecify.annotations.Nullable; -/** - * Goal generating an XSD from a given plugin descriptor, e.g., {@code plugins.xml}. - * - * @see SchemaGenerator - */ -@Mojo(name = "generate-schema", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true) -public class SchemaGeneratorMojo extends AbstractMojo { +abstract class AbstractGeneratorMojo extends AbstractMojo { /** * The paths of the plugin descriptor XML files. @@ -45,7 +31,7 @@ public class SchemaGeneratorMojo extends AbstractMojo { */ @Nullable @Parameter(property = "log4j.docgen.descriptorFiles") - private File[] descriptorFiles; + File[] descriptorFiles; /** * The {@link java.nio.file.FileSystem#getPathMatcher(String) PathMatcher}s to populate the paths of the plugin descriptor XML files. @@ -55,24 +41,12 @@ public class SchemaGeneratorMojo extends AbstractMojo { */ @Nullable @Parameter - private PathMatcherMojo[] descriptorFileMatchers; + PathMatcherMojo[] descriptorFileMatchers; /** - * The path of the XSD file to write to + * Predicate for filtering types that the generator will operate on. */ - @Parameter(property = "log4j.docgen.schemaFile", required = true) - private File schemaFile; - - @Override - public void execute() throws MojoExecutionException { - final Set<PluginSet> pluginSets = - PluginSets.ofDescriptorFilesAndFileMatchers(descriptorFiles, descriptorFileMatchers); - try { - final SchemaGeneratorArgs generatorArgs = new SchemaGeneratorArgs(pluginSets, schemaFile.toPath()); - SchemaGenerator.generateSchema(generatorArgs); - } catch (final XMLStreamException error) { - final String message = String.format("failed generating the schema file `%s`", schemaFile); - throw new MojoExecutionException(message, error); - } - } + @Nullable + @Parameter + TypeFilterMojo typeFilter; } diff --git a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/DocumentationGeneratorMojo.java b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/DocumentationGeneratorMojo.java index 16c3c41..4ea6e6d 100644 --- a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/DocumentationGeneratorMojo.java +++ b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/DocumentationGeneratorMojo.java @@ -18,15 +18,14 @@ package org.apache.logging.log4j.docgen.maven; import java.io.File; import java.util.Set; +import java.util.function.Predicate; import org.apache.logging.log4j.docgen.PluginSet; import org.apache.logging.log4j.docgen.generator.DocumentationGenerator; import org.apache.logging.log4j.docgen.generator.DocumentationGeneratorArgs; import org.apache.logging.log4j.docgen.generator.DocumentationTemplate; -import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; -import org.jspecify.annotations.Nullable; /** * Goal generating documentation by feeding the configuration collected from the provided plugin descriptors (e.g., {@code plugins.xml}) to the FreeMarker templates provided. @@ -34,27 +33,7 @@ import org.jspecify.annotations.Nullable; * @see DocumentationGenerator */ @Mojo(name = "generate-documentation", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true) -public class DocumentationGeneratorMojo extends AbstractMojo { - - /** - * The paths of the plugin descriptor XML files. - * <p> - * If you want to provide to a multitude of files, you might want to use {@link #descriptorFileMatchers} instead. - * </p> - */ - @Nullable - @Parameter(property = "log4j.docgen.descriptorFiles") - private File[] descriptorFiles; - - /** - * The {@link java.nio.file.FileSystem#getPathMatcher(String) PathMatcher}s to populate the paths of the plugin descriptor XML files. - * <p> - * If you want to refer to a particular file, you might want to use {@link #descriptorFiles} instead. - * </p> - */ - @Nullable - @Parameter - private PathMatcherMojo[] descriptorFileMatchers; +public class DocumentationGeneratorMojo extends AbstractGeneratorMojo { /** * The path to the FreeMarker template directory. @@ -84,8 +63,10 @@ public class DocumentationGeneratorMojo extends AbstractMojo { public void execute() { final Set<PluginSet> pluginSets = PluginSets.ofDescriptorFilesAndFileMatchers(descriptorFiles, descriptorFileMatchers); + final Predicate<String> classNameFilter = typeFilter != null ? typeFilter.createPredicate() : ignored -> true; final DocumentationGeneratorArgs generatorArgs = new DocumentationGeneratorArgs( pluginSets, + classNameFilter, templateDirectory.toPath(), toApiModel(scalarsTemplate), toApiModel(pluginTemplate), diff --git a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java index 193db22..26f8366 100644 --- a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java +++ b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java @@ -18,16 +18,15 @@ package org.apache.logging.log4j.docgen.maven; import java.io.File; import java.util.Set; +import java.util.function.Predicate; import javax.xml.stream.XMLStreamException; import org.apache.logging.log4j.docgen.PluginSet; import org.apache.logging.log4j.docgen.generator.SchemaGenerator; import org.apache.logging.log4j.docgen.generator.SchemaGeneratorArgs; -import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; -import org.jspecify.annotations.Nullable; /** * Goal generating an XSD from a given plugin descriptor, e.g., {@code plugins.xml}. @@ -35,27 +34,7 @@ import org.jspecify.annotations.Nullable; * @see SchemaGenerator */ @Mojo(name = "generate-schema", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true) -public class SchemaGeneratorMojo extends AbstractMojo { - - /** - * The paths of the plugin descriptor XML files. - * <p> - * If you want to provide to a multitude of files, you might want to use {@link #descriptorFileMatchers} instead. - * </p> - */ - @Nullable - @Parameter(property = "log4j.docgen.descriptorFiles") - private File[] descriptorFiles; - - /** - * The {@link java.nio.file.FileSystem#getPathMatcher(String) PathMatcher}s to populate the paths of the plugin descriptor XML files. - * <p> - * If you want to refer to a particular file, you might want to use {@link #descriptorFiles} instead. - * </p> - */ - @Nullable - @Parameter - private PathMatcherMojo[] descriptorFileMatchers; +public class SchemaGeneratorMojo extends AbstractGeneratorMojo { /** * The path of the XSD file to write to @@ -67,8 +46,10 @@ public class SchemaGeneratorMojo extends AbstractMojo { public void execute() throws MojoExecutionException { final Set<PluginSet> pluginSets = PluginSets.ofDescriptorFilesAndFileMatchers(descriptorFiles, descriptorFileMatchers); + final Predicate<String> classNameFilter = typeFilter != null ? typeFilter.createPredicate() : ignored -> true; try { - final SchemaGeneratorArgs generatorArgs = new SchemaGeneratorArgs(pluginSets, schemaFile.toPath()); + final SchemaGeneratorArgs generatorArgs = + new SchemaGeneratorArgs(pluginSets, classNameFilter, schemaFile.toPath()); SchemaGenerator.generateSchema(generatorArgs); } catch (final XMLStreamException error) { final String message = String.format("failed generating the schema file `%s`", schemaFile); diff --git a/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/TypeFilterMojo.java b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/TypeFilterMojo.java new file mode 100644 index 0000000..ac808e8 --- /dev/null +++ b/log4j-docgen-maven-plugin/src/main/java/org/apache/logging/log4j/docgen/maven/TypeFilterMojo.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.docgen.maven; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import org.apache.maven.plugins.annotations.Parameter; +import org.jspecify.annotations.Nullable; + +/** + * Models a predicate for filtering types that a generator will operate on. + */ +public final class TypeFilterMojo { + + /** + * The regular expressions that will be matched against the class name (e.g., {@code java.lang.String}) to determine the types that will be <em>included</em> for processing by the generator. + * <p> + * The type will be included if it matches one or more patterns. + * </p><p> + * The collection defaults to {@code [".*"]}, that is, all types are accepted. + * </p> + */ + @Nullable + @Parameter + private String[] includes; + + /** + * The regular expressions that will be matched against the class name (e.g., {@code java.lang.String}) to determine the types that will be <em>excluded</em> for processing the generator. + * <p> + * The type will be excluded if it matches one or more patterns. + * </p><p> + * The collection is empty by default, that is, no types will be discarded. + * </p> + */ + @Nullable + @Parameter + private String[] excludes; + + Predicate<String> createPredicate() { + final String[] effectiveIncludes = includes != null && includes.length > 0 ? includes : new String[] {".*"}; + final List<Pattern> inclusionPatterns = compilePatterns("includes", effectiveIncludes); + final List<Pattern> exclusionPatterns = compilePatterns("excludes", excludes); + return (final String className) -> { + final boolean included = inclusionPatterns.stream() + .anyMatch(pattern -> pattern.matcher(className).matches()); + if (included) { + final boolean excluded = exclusionPatterns.stream() + .anyMatch(pattern -> pattern.matcher(className).matches()); + return !excluded; + } + return false; + }; + } + + private static List<Pattern> compilePatterns(final String fieldName, @Nullable final String[] patterns) { + if (patterns == null || patterns.length == 0) { + return Collections.emptyList(); + } + return Arrays.stream(patterns) + .map(pattern -> { + try { + return Pattern.compile(pattern); + } catch (final Exception error) { + final String message = String.format("invalid `%s` pattern: `%s`", fieldName, pattern); + throw new IllegalArgumentException(message, error); + } + }) + .collect(Collectors.toList()); + } +} diff --git a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/BaseTypes.java b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/BaseTypes.java index 355e4f3..4127f7f 100644 --- a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/BaseTypes.java +++ b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/BaseTypes.java @@ -28,9 +28,7 @@ final class BaseTypes { static final Set<PluginSet> PLUGIN_SETS = readBaseTypes(); private static Set<PluginSet> readBaseTypes() { - return Stream.of("base-java-types.xml", "base-log4j-types.xml") - .map(BaseTypes::readBaseTypes) - .collect(Collectors.toSet()); + return Stream.of("base-log4j-types.xml").map(BaseTypes::readBaseTypes).collect(Collectors.toSet()); } private static PluginSet readBaseTypes(final String resourceName) { diff --git a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGenerator.java b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGenerator.java index c2a6871..e1b1bb0 100644 --- a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGenerator.java +++ b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGenerator.java @@ -41,7 +41,7 @@ public final class DocumentationGenerator { requireNonNull(args, "args"); final List<PluginSet> extendedSets = Stream.concat(BaseTypes.PLUGIN_SETS.stream(), args.pluginSets.stream()) .collect(Collectors.toList()); - final TypeLookup lookup = TypeLookup.of(extendedSets); + final TypeLookup lookup = TypeLookup.of(extendedSets, args.classNameFilter); final Collection<ArtifactSourcedType> scalarTypes = new TreeSet<>(); lookup.forEach((className, sourcedType) -> { final Type type = sourcedType.type; diff --git a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorArgs.java b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorArgs.java index f2dbfde..5da94de 100644 --- a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorArgs.java +++ b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorArgs.java @@ -20,12 +20,15 @@ import static java.util.Objects.requireNonNull; import java.nio.file.Path; import java.util.Set; +import java.util.function.Predicate; import org.apache.logging.log4j.docgen.PluginSet; public final class DocumentationGeneratorArgs { final Set<PluginSet> pluginSets; + final Predicate<String> classNameFilter; + final Path templateDirectory; final DocumentationTemplate scalarsTemplate; @@ -36,11 +39,13 @@ public final class DocumentationGeneratorArgs { public DocumentationGeneratorArgs( final Set<PluginSet> pluginSets, + final Predicate<String> classNameFilter, final Path templateDirectory, final DocumentationTemplate scalarsTemplate, final DocumentationTemplate pluginTemplate, final DocumentationTemplate interfaceTemplate) { this.pluginSets = requireNonNull(pluginSets, "pluginSets"); + this.classNameFilter = requireNonNull(classNameFilter, "classNameFilter"); this.templateDirectory = requireNonNull(templateDirectory, "templateDirectory"); this.scalarsTemplate = requireNonNull(scalarsTemplate, "scalarsTemplate"); this.pluginTemplate = requireNonNull(pluginTemplate, "pluginTemplate"); diff --git a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGenerator.java b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGenerator.java index 6381f55..9a7cccc 100644 --- a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGenerator.java +++ b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGenerator.java @@ -68,7 +68,7 @@ public final class SchemaGenerator { try { final List<PluginSet> extendedSets = Stream.concat(BaseTypes.PLUGIN_SETS.stream(), args.pluginSets.stream()) .collect(Collectors.toList()); - final TypeLookup lookup = TypeLookup.of(extendedSets); + final TypeLookup lookup = TypeLookup.of(extendedSets, args.classNameFilter); final XMLOutputFactory factory = XMLOutputFactory.newFactory(); @Nullable final Path schemaFileParent = args.schemaFile.getParent(); if (schemaFileParent != null) { @@ -207,7 +207,7 @@ public final class SchemaGenerator { } for (final String implementation : implementations) { @Nullable final ArtifactSourcedType sourcedType = lookup.get(implementation); - if (sourcedType != null) { + if (sourcedType != null && sourcedType.type instanceof PluginType) { final PluginType pluginType = (PluginType) sourcedType.type; for (final String key : getKeyAndAliases(pluginType)) { writer.writeEmptyElement(XSD_NAMESPACE, "element"); @@ -250,7 +250,11 @@ public final class SchemaGenerator { if (xmlType == null) { return; } - final Type rawType = lookup.get(type).type; + final ArtifactSourcedType sourcedType = lookup.get(type); + if (sourcedType == null) { + return; + } + final Type rawType = sourcedType.type; if (!(rawType instanceof AbstractType)) { return; } diff --git a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorArgs.java b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorArgs.java index bfb7336..8a1b8ea 100644 --- a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorArgs.java +++ b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorArgs.java @@ -20,16 +20,21 @@ import static java.util.Objects.requireNonNull; import java.nio.file.Path; import java.util.Set; +import java.util.function.Predicate; import org.apache.logging.log4j.docgen.PluginSet; public final class SchemaGeneratorArgs { final Set<PluginSet> pluginSets; + final Predicate<String> classNameFilter; + final Path schemaFile; - public SchemaGeneratorArgs(final Set<PluginSet> pluginSets, final Path schemaFile) { + public SchemaGeneratorArgs( + final Set<PluginSet> pluginSets, final Predicate<String> classNameFilter, final Path schemaFile) { this.pluginSets = requireNonNull(pluginSets, "pluginSets"); + this.classNameFilter = requireNonNull(classNameFilter, "classNameFilter"); this.schemaFile = requireNonNull(schemaFile, "schemaFile"); } } diff --git a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/TypeLookup.java b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/TypeLookup.java index c77d591..598fcfc 100644 --- a/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/TypeLookup.java +++ b/log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/generator/TypeLookup.java @@ -16,8 +16,10 @@ */ package org.apache.logging.log4j.docgen.generator; +import java.util.Iterator; import java.util.Set; import java.util.TreeMap; +import java.util.function.Predicate; import org.apache.logging.log4j.docgen.AbstractType; import org.apache.logging.log4j.docgen.PluginSet; import org.apache.logging.log4j.docgen.PluginType; @@ -27,13 +29,14 @@ final class TypeLookup extends TreeMap<String, ArtifactSourcedType> { private static final long serialVersionUID = 1L; - static TypeLookup of(final Iterable<? extends PluginSet> pluginSets) { - return new TypeLookup(pluginSets); + static TypeLookup of(final Iterable<? extends PluginSet> pluginSets, final Predicate<String> classNameFilter) { + return new TypeLookup(pluginSets, classNameFilter); } - private TypeLookup(final Iterable<? extends PluginSet> pluginSets) { + private TypeLookup(final Iterable<? extends PluginSet> pluginSets, final Predicate<String> classNameFilter) { mergeDescriptors(pluginSets); populateTypeHierarchy(pluginSets); + filterTypes(classNameFilter); } private void mergeDescriptors(Iterable<? extends PluginSet> pluginSets) { @@ -103,4 +106,15 @@ final class TypeLookup extends TreeMap<String, ArtifactSourcedType> { return type; } } + + private void filterTypes(final Predicate<String> classNameMatcher) { + final Iterator<String> classNameIterator = keySet().iterator(); + while (classNameIterator.hasNext()) { + final String className = classNameIterator.next(); + final boolean matching = classNameMatcher.test(className); + if (!matching) { + classNameIterator.remove(); + } + } + } } diff --git a/log4j-docgen/src/main/resources/org/apache/logging/log4j/docgen/generator/base-java-types.xml b/log4j-docgen/src/main/resources/org/apache/logging/log4j/docgen/generator/base-java-types.xml deleted file mode 100644 index f6fed10..0000000 --- a/log4j-docgen/src/main/resources/org/apache/logging/log4j/docgen/generator/base-java-types.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to you under the Apache License, Version 2.0 - ~ (the "License"); you may not use this file except in compliance with - ~ the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> -<pluginSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="https://logging.apache.org/xml/ns" - xsi:schemaLocation="https://logging.apache.org/xml/ns https://logging.apache.org/xml/ns/log4j-plugins-0.1.0.xsd" - version="0.1.0"> - - <description>Java type definitions untraceable from the plugin hierarchy.</description> - - <scalars> - - <scalar className="boolean"> - <description>A boolean value</description> - <values> - <value name="false"> - <description>false</description> - </value> - <value name="true"> - <description>true</description> - </value> - </values> - </scalar> - - <scalar className="byte"> - <description>An 8-bit signed integer from `-128` to `127`</description> - </scalar> - - <scalar className="short"> - <description>A 16-bit signed integer from `-32768` to `32767`</description> - </scalar> - - <scalar className="int"> - <description>A 32-bit signed integer from `-2147483648` to `2147483647`</description> - </scalar> - - <scalar className="long"> - <description>A 64-bit signed integer from `-9223372036854775808` to `9223372036854775807`</description> - </scalar> - - <scalar className="float"> - <description>A single precision floating number from `1.40239846e-45` to `3.40282347e+38`</description> - </scalar> - - <scalar className="double"> - <description>A double precision floating number from `4.94065645841246544e-324` to `1.79769313486231570e+308`</description> - </scalar> - - <scalar className="java.lang.String"> - <description>A string of characters</description> - </scalar> - - </scalars> - -</pluginSet> diff --git a/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorTest.java b/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorTest.java index bf6c814..5627a19 100644 --- a/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorTest.java +++ b/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/DocumentationGeneratorTest.java @@ -23,6 +23,7 @@ import static org.apache.logging.log4j.tools.internal.test.util.FileTestUtils.as import java.nio.file.Path; import java.nio.file.Paths; import java.util.Set; +import java.util.function.Predicate; import org.apache.logging.log4j.docgen.PluginSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.CleanupMode; @@ -30,6 +31,8 @@ import org.junit.jupiter.api.io.TempDir; public class DocumentationGeneratorTest { + private static final Predicate<String> CLASS_NAME_MATCHER = className -> !className.startsWith("java."); + @Test void simple_descriptor_should_work(@TempDir(cleanup = CleanupMode.ON_SUCCESS) final Path outputDir) { final PluginSet pluginSet = readDescriptor("src/test/resources/example-plugins.xml"); @@ -54,6 +57,7 @@ public class DocumentationGeneratorTest { final Path templateDirectory = Paths.get("src/test/resources/templates"); final DocumentationGeneratorArgs generatorArgs = new DocumentationGeneratorArgs( pluginSets, + CLASS_NAME_MATCHER, templateDirectory, new DocumentationTemplate( "scalars.adoc.ftl", outputDir.resolve("scalars.adoc").toString()), diff --git a/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorTest.java b/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorTest.java index 64e9da5..40e7ab7 100644 --- a/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorTest.java +++ b/log4j-docgen/src/test/java/org/apache/logging/log4j/docgen/generator/SchemaGeneratorTest.java @@ -53,7 +53,8 @@ public class SchemaGeneratorTest { // Generate the schema final Path schemaFile = outputDir.resolve("config.xsd"); - final SchemaGeneratorArgs generatorArgs = new SchemaGeneratorArgs(Set.of(pluginSet), schemaFile); + final SchemaGeneratorArgs generatorArgs = + new SchemaGeneratorArgs(Set.of(pluginSet), ignored -> true, schemaFile); SchemaGenerator.generateSchema(generatorArgs); // Return the generated XSD file path diff --git a/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc b/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc index 1d2c042..f03e276 100644 --- a/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc +++ b/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc @@ -28,7 +28,7 @@ Configures the root logger ---- <Root includeLocation="" level="ERROR"> - <AppenderRef/> + <AppenderRef/><!-- multiple occurrences allowed --> <a-Filter-implementation/> </Root> ---- diff --git a/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.adoc b/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.adoc index d4286c6..74aebc2 100644 --- a/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.adoc +++ b/log4j-docgen/src/test/resources/plugins-to-freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.adoc @@ -29,7 +29,7 @@ Configures a particular logger <Logger includeLocation="" level="" name=""> - <AppenderRef/> + <AppenderRef/><!-- multiple occurrences allowed --> <a-Filter-implementation/> </Logger> ---- diff --git a/log4j-docgen/src/test/resources/plugins-to-freemarker-output/scalars.adoc b/log4j-docgen/src/test/resources/plugins-to-freemarker-output/scalars.adoc index d147a94..9bef793 100644 --- a/log4j-docgen/src/test/resources/plugins-to-freemarker-output/scalars.adoc +++ b/log4j-docgen/src/test/resources/plugins-to-freemarker-output/scalars.adoc @@ -19,54 +19,6 @@ limitations under the License. Type converter plugins are used to convert simple `String` values into other types. -[#boolean] -== `boolean` - - -A boolean value - -[#boolean-values] -=== Possible values - -`false`:: false -`true`:: true - -[#byte] -== `byte` - - -An 8-bit signed integer from `-128` to `127` - -[#double] -== `double` - - -A double precision floating number from `4.94065645841246544e-324` to `1.79769313486231570e+308` - -[#float] -== `float` - - -A single precision floating number from `1.40239846e-45` to `3.40282347e+38` - -[#int] -== `int` - - -A 32-bit signed integer from `-2147483648` to `2147483647` - -[#java_lang_String] -== `java.lang.String` - - -A string of characters - -[#long] -== `long` - - -A 64-bit signed integer from `-9223372036854775808` to `9223372036854775807` - [#org_apache_logging_log4j_Level] == `org.apache.logging.log4j.Level` @@ -114,9 +66,3 @@ Specifies the target of a console appender. `SYSTEM_OUT`:: Logs to the standard output. `SYSTEM_ERR`:: Logs to the standard error. - -[#short] -== `short` - - -A 16-bit signed integer from `-32768` to `32767` diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.io.Serializable.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.io.Serializable.adoc deleted file mode 100644 index de37d91..0000000 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.io.Serializable.adoc +++ /dev/null @@ -1,27 +0,0 @@ -//// -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -//// -[#java_io_Serializable] -= Serializable - -Class:: `java.io.Serializable` -Provider:: `org.apache.logging.log4j:log4j-core` - - -[#java_io_Serializable-implementations] -== Known implementations - -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.PathSortByModificationTime.adoc[PathSortByModificationTime] diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Cloneable.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Cloneable.adoc deleted file mode 100644 index 3823ba2..0000000 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Cloneable.adoc +++ /dev/null @@ -1,28 +0,0 @@ -//// -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -//// -[#java_lang_Cloneable] -= Cloneable - -Class:: `java.lang.Cloneable` -Provider:: `org.apache.logging.log4j:log4j-core` - - -[#java_lang_Cloneable-implementations] -== Known implementations - -* xref:../log4j-core/org.apache.logging.log4j.core.net.SocketOptions.adoc[SocketOptions] -* xref:../log4j-core/org.apache.logging.log4j.core.net.SocketPerformancePreferences.adoc[SocketPerformancePreferences] diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Iterable.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Iterable.adoc deleted file mode 100644 index 16891df..0000000 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Iterable.adoc +++ /dev/null @@ -1,27 +0,0 @@ -//// -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -//// -[#java_lang_Iterable] -= Iterable - -Class:: `java.lang.Iterable` -Provider:: `org.apache.logging.log4j:log4j-core` - - -[#java_lang_Iterable-implementations] -== Known implementations - -* xref:../log4j-core/org.apache.logging.log4j.core.filter.CompositeFilter.adoc[CompositeFilter] diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Object.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Object.adoc deleted file mode 100644 index 56cd86b..0000000 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Object.adoc +++ /dev/null @@ -1,269 +0,0 @@ -//// -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -//// -[#java_lang_Object] -= Object - -Class:: `java.lang.Object` -Provider:: `org.apache.logging.log4j:log4j-core` - - -[#java_lang_Object-implementations] -== Known implementations - -* xref:../log4j-core/org.apache.logging.log4j.core.appender.AppenderSet.adoc[AppenderSet] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.AsyncAppender.adoc[AsyncAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.ConsoleAppender.adoc[ConsoleAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.CountingNoOpAppender.adoc[CountingNoOpAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.FailoverAppender.adoc[FailoverAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.FailoversPlugin.adoc[FailoversPlugin] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.FileAppender.adoc[FileAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.HttpAppender.adoc[HttpAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.adoc[MemoryMappedFileAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.NullAppender.adoc[NullAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.OutputStreamAppender.adoc[OutputStreamAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.RandomAccessFileAppender.adoc[RandomAccessFileAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.RollingFileAppender.adoc[RollingFileAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.adoc[RollingRandomAccessFileAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.ScriptAppenderSelector.adoc[ScriptAppenderSelector] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.SmtpAppender.adoc[SmtpAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.SocketAppender.adoc[SocketAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.SyslogAppender.adoc[SyslogAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.WriterAppender.adoc[WriterAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.db.ColumnMapping.adoc[ColumnMapping] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig.adoc[ColumnConfig] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.DataSourceConnectionSource.adoc[DataSourceConnectionSource] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource.adoc[DriverManagerConnectionSource] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.FactoryMethodConnectionSource.adoc[FactoryMethodConnectionSource] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.adoc[JdbcAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.mom.JmsAppender.adoc[JmsAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender.adoc[JeroMqAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.adoc[KafkaAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.nosql.NoSqlAppender.adoc[NoSqlAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rewrite.LoggerNameLevelRewritePolicy.adoc[LoggerNameLevelRewritePolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rewrite.MapRewritePolicy.adoc[MapRewritePolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rewrite.PropertiesRewritePolicy.adoc[PropertiesRewritePolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.adoc[RewriteAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy.adoc[CompositeTriggeringPolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.CronTriggeringPolicy.adoc[CronTriggeringPolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.adoc[DefaultRolloverStrategy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.adoc[DirectWriteRolloverStrategy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.NoOpTriggeringPolicy.adoc[NoOpTriggeringPolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.OnStartupTriggeringPolicy.adoc[OnStartupTriggeringPolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy.adoc[SizeBasedTriggeringPolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.adoc[TimeBasedTriggeringPolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.DeleteAction.adoc[DeleteAction] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfAccumulatedFileCount.adoc[IfAccumulatedFileCount] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfAccumulatedFileSize.adoc[IfAccumulatedFileSize] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfAll.adoc[IfAll] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfAny.adoc[IfAny] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfFileName.adoc[IfFileName] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfLastModified.adoc[IfLastModified] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.IfNot.adoc[IfNot] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.PathSortByModificationTime.adoc[PathSortByModificationTime] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.adoc[PosixViewAttributeAction] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.ScriptCondition.adoc[ScriptCondition] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy.adoc[IdlePurgePolicy] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.routing.Route.adoc[Route] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.routing.Routes.adoc[Routes] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.routing.RoutingAppender.adoc[RoutingAppender] -* xref:../log4j-core/org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory.adoc[ArrayBlockingQueueFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.adoc[AsyncLoggerConfig] -* xref:../log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger.adoc[RootLogger] -* xref:../log4j-core/org.apache.logging.log4j.core.async.AsyncWaitStrategyFactoryConfig.adoc[AsyncWaitStrategyFactoryConfig] -* xref:../log4j-core/org.apache.logging.log4j.core.async.DisruptorBlockingQueueFactory.adoc[DisruptorBlockingQueueFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory.adoc[JCToolsBlockingQueueFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.async.LinkedTransferQueueFactory.adoc[LinkedTransferQueueFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.config.AppenderRef.adoc[AppenderRef] -* xref:../log4j-core/org.apache.logging.log4j.core.config.AppendersPlugin.adoc[AppendersPlugin] -* xref:../log4j-core/org.apache.logging.log4j.core.config.CustomLevelConfig.adoc[CustomLevelConfig] -* xref:../log4j-core/org.apache.logging.log4j.core.config.CustomLevels.adoc[CustomLevels] -* xref:../log4j-core/org.apache.logging.log4j.core.config.DefaultAdvertiser.adoc[DefaultAdvertiser] -* xref:../log4j-core/org.apache.logging.log4j.core.config.HttpWatcher.adoc[HttpWatcher] -* xref:../log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.adoc[LoggerConfig] -* xref:../log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc[RootLogger] -* xref:../log4j-core/org.apache.logging.log4j.core.config.LoggersPlugin.adoc[LoggersPlugin] -* xref:../log4j-core/org.apache.logging.log4j.core.config.PropertiesPlugin.adoc[PropertiesPlugin] -* xref:../log4j-core/org.apache.logging.log4j.core.config.Property.adoc[Property] -* xref:../log4j-core/org.apache.logging.log4j.core.config.ScriptsPlugin.adoc[ScriptsPlugin] -* xref:../log4j-core/org.apache.logging.log4j.core.config.arbiters.ClassArbiter.adoc[ClassArbiter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.arbiters.DefaultArbiter.adoc[DefaultArbiter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.arbiters.EnvironmentArbiter.adoc[EnvironmentArbiter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.arbiters.ScriptArbiter.adoc[ScriptArbiter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.arbiters.SelectArbiter.adoc[SelectArbiter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.arbiters.SystemPropertyArbiter.adoc[SystemPropertyArbiter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.json.JsonConfigurationFactory.adoc[JsonConfigurationFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BigDecimalConverter.adoc[BigDecimalConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BigIntegerConverter.adoc[BigIntegerConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BooleanConverter.adoc[BooleanConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteArrayConverter.adoc[ByteArrayConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteConverter.adoc[ByteConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharArrayConverter.adoc[CharArrayConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharacterConverter.adoc[CharacterConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharsetConverter.adoc[CharsetConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ClassConverter.adoc[ClassConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CronExpressionConverter.adoc[CronExpressionConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.DoubleConverter.adoc[DoubleConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.DurationConverter.adoc[DurationConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.FileConverter.adoc[FileConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.FloatConverter.adoc[FloatConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.InetAddressConverter.adoc[InetAddressConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.IntegerConverter.adoc[IntegerConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LevelConverter.adoc[LevelConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LongConverter.adoc[LongConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PathConverter.adoc[PathConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PatternConverter.adoc[PatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.SecurityProviderConverter.adoc[SecurityProviderConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ShortConverter.adoc[ShortConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.StringConverter.adoc[StringConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UriConverter.adoc[UriConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UrlConverter.adoc[UrlConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UuidConverter.adoc[UuidConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory.adoc[PropertiesConfigurationFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.adoc[XmlConfigurationFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory.adoc[YamlConfigurationFactory] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.BurstFilter.adoc[BurstFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.CompositeFilter.adoc[CompositeFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.DenyAllFilter.adoc[DenyAllFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.DynamicThresholdFilter.adoc[DynamicThresholdFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.LevelMatchFilter.adoc[LevelMatchFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.LevelRangeFilter.adoc[LevelRangeFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.MapFilter.adoc[MapFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.MarkerFilter.adoc[MarkerFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.MutableThreadContextMapFilter.adoc[MutableThreadContextMapFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.NoMarkerFilter.adoc[NoMarkerFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.RegexFilter.adoc[RegexFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.ScriptFilter.adoc[ScriptFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.StringMatchFilter.adoc[StringMatchFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.StructuredDataFilter.adoc[StructuredDataFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.ThreadContextMapFilter.adoc[ThreadContextMapFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.ThresholdFilter.adoc[ThresholdFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.filter.TimeFilter.adoc[TimeFilter] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.CsvLogEventLayout.adoc[CsvLogEventLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.CsvParameterLayout.adoc[CsvParameterLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.GelfLayout.adoc[GelfLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.HtmlLayout.adoc[HtmlLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.JsonLayout.adoc[JsonLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.LevelPatternSelector.adoc[LevelPatternSelector] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.LoggerFields.adoc[LoggerFields] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.MarkerPatternSelector.adoc[MarkerPatternSelector] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.MessageLayout.adoc[MessageLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.PatternLayout.adoc[PatternLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.PatternMatch.adoc[PatternMatch] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.Rfc5424Layout.adoc[Rfc5424Layout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.ScriptPatternSelector.adoc[ScriptPatternSelector] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.SerializedLayout.adoc[SerializedLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.SyslogLayout.adoc[SyslogLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.XmlLayout.adoc[XmlLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.layout.YamlLayout.adoc[YamlLayout] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.ContextMapLookup.adoc[ContextMapLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.DateLookup.adoc[DateLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.EnvironmentLookup.adoc[EnvironmentLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.EventLookup.adoc[EventLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.JavaLookup.adoc[JavaLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup.adoc[JmxRuntimeInputArgumentsLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.JndiLookup.adoc[JndiLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.Log4jLookup.adoc[Log4jLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.LowerLookup.adoc[LowerLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.MainMapLookup.adoc[MainMapLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.MapLookup.adoc[MapLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.MarkerLookup.adoc[MarkerLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.ResourceBundleLookup.adoc[ResourceBundleLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.StructuredDataLookup.adoc[StructuredDataLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.SystemPropertiesLookup.adoc[SystemPropertiesLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.lookup.UpperLookup.adoc[UpperLookup] -* xref:../log4j-core/org.apache.logging.log4j.core.net.MulticastDnsAdvertiser.adoc[MulticastDnsAdvertiser] -* xref:../log4j-core/org.apache.logging.log4j.core.net.SocketAddress.adoc[SocketAddress] -* xref:../log4j-core/org.apache.logging.log4j.core.net.SocketOptions.adoc[SocketOptions] -* xref:../log4j-core/org.apache.logging.log4j.core.net.SocketPerformancePreferences.adoc[SocketPerformancePreferences] -* xref:../log4j-core/org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration.adoc[KeyStoreConfiguration] -* xref:../log4j-core/org.apache.logging.log4j.core.net.ssl.SslConfiguration.adoc[SslConfiguration] -* xref:../log4j-core/org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration.adoc[TrustStoreConfiguration] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Black.adoc[Black] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Blue.adoc[Blue] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Cyan.adoc[Cyan] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Green.adoc[Green] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Magenta.adoc[Magenta] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Red.adoc[Red] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.White.adoc[White] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Yellow.adoc[Yellow] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ClassNamePatternConverter.adoc[ClassNamePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.DatePatternConverter.adoc[DatePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.EncodingPatternConverter.adoc[EncodingPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.EndOfBatchPatternConverter.adoc[EndOfBatchPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.EqualsIgnoreCaseReplacementConverter.adoc[EqualsIgnoreCaseReplacementConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.EqualsReplacementConverter.adoc[EqualsReplacementConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.adoc[ExtendedThrowablePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.FileDatePatternConverter.adoc[FileDatePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.FileLocationPatternConverter.adoc[FileLocationPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.FullLocationPatternConverter.adoc[FullLocationPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.HighlightConverter.adoc[HighlightConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.IntegerPatternConverter.adoc[IntegerPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.LevelPatternConverter.adoc[LevelPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.LineLocationPatternConverter.adoc[LineLocationPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.LineSeparatorPatternConverter.adoc[LineSeparatorPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.LoggerFqcnPatternConverter.adoc[LoggerFqcnPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.LoggerPatternConverter.adoc[LoggerPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MapPatternConverter.adoc[MapPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MarkerPatternConverter.adoc[MarkerPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MarkerSimpleNamePatternConverter.adoc[MarkerSimpleNamePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MaxLengthConverter.adoc[MaxLengthConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MdcPatternConverter.adoc[MdcPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MessagePatternConverter.adoc[MessagePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.MethodLocationPatternConverter.adoc[MethodLocationPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.NanoTimePatternConverter.adoc[NanoTimePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.NdcPatternConverter.adoc[NdcPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ProcessIdPatternConverter.adoc[ProcessIdPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.RegexReplacement.adoc[RegexReplacement] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.RegexReplacementConverter.adoc[RegexReplacementConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.RelativeTimePatternConverter.adoc[RelativeTimePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.RepeatPatternConverter.adoc[RepeatPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.RootThrowablePatternConverter.adoc[RootThrowablePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.SequenceNumberPatternConverter.adoc[SequenceNumberPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.StyleConverter.adoc[StyleConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ThreadIdPatternConverter.adoc[ThreadIdPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ThreadNamePatternConverter.adoc[ThreadNamePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ThreadPriorityPatternConverter.adoc[ThreadPriorityPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.ThrowablePatternConverter.adoc[ThrowablePatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.UuidPatternConverter.adoc[UuidPatternConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.pattern.VariablesNotEmptyReplacementConverter.adoc[VariablesNotEmptyReplacementConverter] -* xref:../log4j-core/org.apache.logging.log4j.core.script.Script.adoc[Script] -* xref:../log4j-core/org.apache.logging.log4j.core.script.ScriptFile.adoc[ScriptFile] -* xref:../log4j-core/org.apache.logging.log4j.core.script.ScriptRef.adoc[ScriptRef] -* xref:../log4j-core/org.apache.logging.log4j.core.util.KeyValuePair.adoc[KeyValuePair] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.adoc[JsonTemplateLayout] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.EventTemplateAdditionalField.adoc[EventTemplateAdditionalField] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.CaseConverterResolverFactory.adoc[CaseConverterResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.CounterResolverFactory.adoc[CounterResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.EndOfBatchResolverFactory.adoc[EndOfBatchResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.EventAdditionalFieldInterceptor.adoc[EventAdditionalFieldInterceptor] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.EventRootObjectKeyInterceptor.adoc[EventRootObjectKeyInterceptor] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.ExceptionResolverFactory.adoc[ExceptionResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.ExceptionRootCauseResolverFactory.adoc[ExceptionRootCauseResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.LevelResolverFactory.adoc[LevelResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.LoggerResolverFactory.adoc[LoggerResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.MainMapResolverFactory.adoc[MainMapResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.MapResolverFactory.adoc[MapResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.MarkerResolverFactory.adoc[MarkerResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.MessageParameterResolverFactory.adoc[MessageParameterResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.MessageResolverFactory.adoc[MessageResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.PatternResolverFactory.adoc[PatternResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.SourceResolverFactory.adoc[SourceResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.ThreadContextDataResolverFactory.adoc[ThreadContextDataResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.ThreadContextStackResolverFactory.adoc[ThreadContextStackResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.ThreadResolverFactory.adoc[ThreadResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.resolver.TimestampResolverFactory.adoc[TimestampResolverFactory] -* xref:../log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.util.RecyclerFactoryConverter.adoc[RecyclerFactoryConverter] diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Runnable.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Runnable.adoc deleted file mode 100644 index f772164..0000000 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.lang.Runnable.adoc +++ /dev/null @@ -1,29 +0,0 @@ -//// -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -//// -[#java_lang_Runnable] -= Runnable - -Class:: `java.lang.Runnable` -Provider:: `org.apache.logging.log4j:log4j-core` - - -[#java_lang_Runnable-implementations] -== Known implementations - -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.DeleteAction.adoc[DeleteAction] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.adoc[PosixViewAttributeAction] -* xref:../log4j-core/org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy.adoc[IdlePurgePolicy] diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.util.Comparator.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.util.Comparator.adoc deleted file mode 100644 index 82f5e24..0000000 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/java.util.Comparator.adoc +++ /dev/null @@ -1,27 +0,0 @@ -//// -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -//// -[#java_util_Comparator] -= Comparator - -Class:: `java.util.Comparator` -Provider:: `org.apache.logging.log4j:log4j-core` - - -[#java_util_Comparator-implementations] -== Known implementations - -* xref:../log4j-core/org.apache.logging.log4j.core.appender.rolling.action.PathSortByModificationTime.adoc[PathSortByModificationTime] diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.AsyncAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.AsyncAppender.adoc index 17f1448..69b89c4 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.AsyncAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.AsyncAppender.adoc @@ -38,8 +38,8 @@ The AsyncAppender does not allow a filter to be specified on the Appender refere shutdownTimeout=""> <a-Filter-implementation/> <a-BlockingQueueFactory-implementation/> - <AppenderRef/> - <property/> + <AppenderRef/><!-- multiple occurrences allowed --> + <property/><!-- multiple occurrences allowed --> </Async> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.ConsoleAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.ConsoleAppender.adoc index fffdced..ba22933 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.ConsoleAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.ConsoleAppender.adoc @@ -43,7 +43,7 @@ OTOH, a Writer cannot print byte streams. target=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </Console> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FailoverAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FailoverAppender.adoc index 4538717..f8f284b 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FailoverAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FailoverAppender.adoc @@ -78,7 +78,7 @@ Optional components are denoted by `?`-suffixed types. |Tag|Type|Description | -|xref:../scalars.adoc#java_lang_String[String]? +|String? a|The name of one or more Appenders to fail over to (at least one is required). | diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FileAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FileAppender.adoc index 3cb89ba..83d38dd 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FileAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.FileAppender.adoc @@ -42,7 +42,7 @@ File Appender. name=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </File> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.HttpAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.HttpAppender.adoc index 856f909..a655bdb 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.HttpAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.HttpAppender.adoc @@ -35,7 +35,7 @@ Sends log events over HTTP. verifyHostname=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> <Ssl/> </Http> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.adoc index cc7be56..f8acbf2 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.adoc @@ -38,7 +38,7 @@ Memory Mapped File Appender. regionLength=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </MemoryMappedFile> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.OutputStreamAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.OutputStreamAppender.adoc index bb18838..4a1247a 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.OutputStreamAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.OutputStreamAppender.adoc @@ -35,7 +35,7 @@ Character encoding is handled within the Layout. name=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </OutputStream> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RandomAccessFileAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RandomAccessFileAppender.adoc index 83a7f0e..4f97dee 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RandomAccessFileAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RandomAccessFileAppender.adoc @@ -37,7 +37,7 @@ File Appender. name=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </RandomAccessFile> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingFileAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingFileAppender.adoc index 71b80c4..1cdc4c5 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingFileAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingFileAppender.adoc @@ -45,7 +45,7 @@ An appender that writes to files and can roll over at intervals. <a-Layout-implementation/> <a-RolloverStrategy-implementation/> <a-TriggeringPolicy-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </RollingFile> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.adoc index cbd5ec2..2b9254d 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.adoc @@ -43,7 +43,7 @@ An appender that writes to random access files and can roll over at intervals. <a-Layout-implementation/> <a-RolloverStrategy-implementation/> <a-TriggeringPolicy-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </RollingRandomAccessFile> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SmtpAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SmtpAppender.adoc index d8d5013..7547a99 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SmtpAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SmtpAppender.adoc @@ -51,7 +51,7 @@ This can be modified by setting a filter for the appender. to=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> <Ssl/> </SMTP> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SyslogAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SyslogAppender.adoc index 1c55d91..32282cb 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SyslogAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.SyslogAppender.adoc @@ -57,8 +57,8 @@ The Syslog Appender. reconnectDelayMillis=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> - <LoggerFields/> + <property/><!-- multiple occurrences allowed --> + <LoggerFields/><!-- multiple occurrences allowed --> <SocketOptions/> <Ssl/> </Syslog> diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.WriterAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.WriterAppender.adoc index bb96aed..1163cb8 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.WriterAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.WriterAppender.adoc @@ -30,7 +30,7 @@ Appends log events to a xref:Writer.adoc[]. name=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </Writer> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource.adoc index 9043d7c..3829c16 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource.adoc @@ -33,7 +33,7 @@ This handy to get you off the ground without having to deal with JNDI. driverClassName="" password="" userName=""> - <property/> + <property/><!-- multiple occurrences allowed --> </DriverManager> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.adoc index 9ce1bcf..e907f33 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.adoc @@ -39,10 +39,10 @@ This appender can be reconfigured at run time. truncateStrings=""> <a-Filter-implementation/> <a-Layout-implementation/> - <ColumnMapping/> - <Column/> + <ColumnMapping/><!-- multiple occurrences allowed --> + <Column/><!-- multiple occurrences allowed --> <a-ConnectionSource-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </JDBC> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.JmsAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.JmsAppender.adoc index 14d9a8b..fb80540 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.JmsAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.JmsAppender.adoc @@ -44,7 +44,7 @@ However, configurations set up for the 2.0 version of the JMS appenders will sti userName=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </JMS> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender.adoc index 56b3632..e75e308 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender.adoc @@ -52,7 +52,7 @@ Requires the JeroMQ jar (LGPL as of 0.3.5) xpubVerbose=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </JeroMQ> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.adoc index 4cdbe1f..c9f3619 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.adoc @@ -35,7 +35,7 @@ Sends log events to an Apache Kafka topic. topic=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> + <property/><!-- multiple occurrences allowed --> </Kafka> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.nosql.NoSqlAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.nosql.NoSqlAppender.adoc index 386accc..c6ef992 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.nosql.NoSqlAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.nosql.NoSqlAppender.adoc @@ -35,8 +35,9 @@ For examples on how to write your own NoSQL provider, see the simple source code name=""> <a-Filter-implementation/> <a-Layout-implementation/> - <property/> - <KeyValuePair/> + <a-NoSqlProvider-implementation/> + <property/><!-- multiple occurrences allowed --> + <KeyValuePair/><!-- multiple occurrences allowed --> </NoSql> ---- @@ -75,6 +76,10 @@ Optional components are denoted by `?`-suffixed types. |=== |Tag|Type|Description +| +|NoSqlProvider? +a|Sets the provider. + |property |xref:../log4j-core/org.apache.logging.log4j.core.config.Property.adoc[Property]? a| diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.LoggerNameLevelRewritePolicy.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.LoggerNameLevelRewritePolicy.adoc index a7c9c52..85c1b1e 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.LoggerNameLevelRewritePolicy.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.LoggerNameLevelRewritePolicy.adoc @@ -27,7 +27,7 @@ Rewrites log event levels for a given logger name. [source, xml] ---- <LoggerNameLevelRewritePolicy logger=""> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </LoggerNameLevelRewritePolicy> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.MapRewritePolicy.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.MapRewritePolicy.adoc index 99fb595..b7ba735 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.MapRewritePolicy.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.MapRewritePolicy.adoc @@ -27,7 +27,7 @@ This policy modifies events by replacing or possibly adding keys and values to t [source, xml] ---- <MapRewritePolicy mode=""> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </MapRewritePolicy> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.adoc index 1e5cb5b..aeaf8fe 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.adoc @@ -30,7 +30,7 @@ This Appender allows the logging event to be manipulated before it is processed name=""> <a-Filter-implementation/> <a-RewritePolicy-implementation/> - <AppenderRef/> + <AppenderRef/><!-- multiple occurrences allowed --> </Rewrite> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.Routes.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.Routes.adoc index 5bf592a..39129b3 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.Routes.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.Routes.adoc @@ -27,7 +27,7 @@ Contains the individual Route elements. [source, xml] ---- <Routes pattern=""> - <Route/> + <Route/><!-- multiple occurrences allowed --> <a-AbstractScript-implementation/> </Routes> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.RoutingAppender.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.RoutingAppender.adoc index 9eb8900..49db4b3 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.RoutingAppender.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.appender.routing.RoutingAppender.adoc @@ -36,7 +36,7 @@ The pattern should contain one or more substitution patterns of the form "$${[ke <a-RewritePolicy-implementation/> <a-PurgePolicy-implementation/> <Routes/> - <property/> + <property/><!-- multiple occurrences allowed --> <a-AbstractScript-implementation/> </Routing> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger.adoc index 5fc0150..2846c5d 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger.adoc @@ -31,8 +31,8 @@ An asynchronous root Logger. level="" levelAndRefs=""> <a-Filter-implementation/> - <AppenderRef/> - <property/> + <AppenderRef/><!-- multiple occurrences allowed --> + <property/><!-- multiple occurrences allowed --> </asyncRoot> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.adoc index e7a0138..3ea4404 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.async.AsyncLoggerConfig.adoc @@ -47,8 +47,8 @@ This means that even with immediateFlush=false, there will never be any items le levelAndRefs="" name=""> <a-Filter-implementation/> - <AppenderRef/> - <property/> + <AppenderRef/><!-- multiple occurrences allowed --> + <property/><!-- multiple occurrences allowed --> </asyncLogger> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc index 0de3090..8b9cc01 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.adoc @@ -31,8 +31,8 @@ The root Logger. level="" levelAndRefs=""> <a-Filter-implementation/> - <AppenderRef/> - <property/> + <AppenderRef/><!-- multiple occurrences allowed --> + <property/><!-- multiple occurrences allowed --> </root> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.DynamicThresholdFilter.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.DynamicThresholdFilter.adoc index b10f0af..eca4716 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.DynamicThresholdFilter.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.DynamicThresholdFilter.adoc @@ -32,7 +32,7 @@ By default the context is the xref:ThreadContext.adoc[], but users may xref:Cont key="" onMatch="" onMismatch=""> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </DynamicThresholdFilter> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.RegexFilter.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.RegexFilter.adoc index 00e34eb..1b5423b 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.RegexFilter.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.RegexFilter.adoc @@ -79,7 +79,7 @@ Optional components are denoted by `?`-suffixed types. |Tag|Type|Description | -|xref:../scalars.adoc#java_lang_String[String]? +|String? a|An array of Strings where each String is a xref:Pattern.adoc[] compilation flag. |=== diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.StructuredDataFilter.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.StructuredDataFilter.adoc index 9fda2b8..1e5e1d7 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.StructuredDataFilter.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.StructuredDataFilter.adoc @@ -29,7 +29,7 @@ Filter based on data in a StructuredDataMessage. <StructuredDataFilter onMatch="" onMismatch="" operator=""> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </StructuredDataFilter> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.ThreadContextMapFilter.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.ThreadContextMapFilter.adoc index 439841f..fd81028 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.ThreadContextMapFilter.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.filter.ThreadContextMapFilter.adoc @@ -29,7 +29,7 @@ Filter based on a value in the Thread Context Map (MDC). <ThreadContextMapFilter onMatch="" onMismatch="" operator=""> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </ThreadContextMapFilter> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.GelfLayout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.GelfLayout.adoc index 1d39b31..974166e 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.GelfLayout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.GelfLayout.adoc @@ -47,8 +47,9 @@ This layout compresses JSON to GZIP or ZLIB (the `compressionType`) if log event threadContextExcludes="" threadContextIncludes="" threadContextPrefix=""> + <a-Serializer-implementation/> <a-PatternSelector-implementation/> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </GelfLayout> ---- @@ -171,6 +172,10 @@ Optional components are denoted by `?`-suffixed types. |=== |Tag|Type|Description +| +|Serializer? +a| + | |xref:../log4j-core/org.apache.logging.log4j.core.layout.PatternSelector.adoc[PatternSelector]? a|The PatternSelector to use to format the message. diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.JsonLayout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.JsonLayout.adoc index 093c590..c890062 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.JsonLayout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.JsonLayout.adoc @@ -61,7 +61,8 @@ Supports Lookup expressions. properties="" propertiesAsList="" stacktraceAsString=""> - <KeyValuePair/> + <a-Serializer-implementation/> + <KeyValuePair/><!-- multiple occurrences allowed --> </JsonLayout> ---- @@ -162,6 +163,10 @@ Optional components are denoted by `?`-suffixed types. |=== |Tag|Type|Description +| +|Serializer? +a| + |KeyValuePair |xref:../log4j-core/org.apache.logging.log4j.core.util.KeyValuePair.adoc[KeyValuePair]? a|Additional fields to set on each log event. diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LevelPatternSelector.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LevelPatternSelector.adoc index ecc588c..be39f07 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LevelPatternSelector.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LevelPatternSelector.adoc @@ -30,7 +30,7 @@ Selects the pattern to use based on the Level in the LogEvent. defaultPattern="" disableAnsi="" noConsoleNoAnsi=""> - <PatternMatch/> + <PatternMatch/><!-- multiple occurrences allowed --> </LevelPatternSelector> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LoggerFields.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LoggerFields.adoc index 2d9ad9c..8ee04d3 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LoggerFields.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.LoggerFields.adoc @@ -29,7 +29,7 @@ A LoggerFields container. <LoggerFields discardIfAllFieldsAreEmpty="" enterpriseId="" sdId=""> - <KeyValuePair/> + <KeyValuePair/><!-- multiple occurrences allowed --> </LoggerFields> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.MarkerPatternSelector.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.MarkerPatternSelector.adoc index 3a0791b..73a1f85 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.MarkerPatternSelector.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.MarkerPatternSelector.adoc @@ -30,7 +30,7 @@ Selects the pattern to use based on the Marker in the LogEvent. defaultPattern="" disableAnsi="" noConsoleNoAnsi=""> - <PatternMatch/> + <PatternMatch/><!-- multiple occurrences allowed --> </MarkerPatternSelector> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.Rfc5424Layout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.Rfc5424Layout.adoc index 600b715..bd75a8d 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.Rfc5424Layout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.Rfc5424Layout.adoc @@ -42,7 +42,7 @@ Formats a log event in accordance with RFC 5424. newLine="" newLineEscape="" useTlsMessageFormat=""> - <LoggerFields/> + <LoggerFields/><!-- multiple occurrences allowed --> </Rfc5424Layout> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.ScriptPatternSelector.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.ScriptPatternSelector.adoc index 37ea7dc..70e21e9 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.ScriptPatternSelector.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.ScriptPatternSelector.adoc @@ -33,7 +33,7 @@ If no key is returned or there is no match the default pattern will be used. defaultPattern="" disableAnsi="" noConsoleNoAnsi=""> - <PatternMatch/> + <PatternMatch/><!-- multiple occurrences allowed --> <a-AbstractScript-implementation/> </ScriptPatternSelector> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.SyslogLayout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.SyslogLayout.adoc index b144c95..098d635 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.SyslogLayout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.SyslogLayout.adoc @@ -32,6 +32,7 @@ Formats a log event as a BSD Log record. header="" newLine="" newLineEscape=""> + <a-Serializer-implementation/> </SyslogLayout> ---- @@ -85,4 +86,8 @@ Optional components are denoted by `?`-suffixed types. |=== |Tag|Type|Description +| +|Serializer? +a| + |=== diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.XmlLayout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.XmlLayout.adoc index abb6860..1d96eb4 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.XmlLayout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.XmlLayout.adoc @@ -56,7 +56,8 @@ Supports Lookup expressions. locationInfo="" properties="" stacktraceAsString=""> - <KeyValuePair/> + <a-Serializer-implementation/> + <KeyValuePair/><!-- multiple occurrences allowed --> </XmlLayout> ---- @@ -147,6 +148,10 @@ Optional components are denoted by `?`-suffixed types. |=== |Tag|Type|Description +| +|Serializer? +a| + |KeyValuePair |xref:../log4j-core/org.apache.logging.log4j.core.util.KeyValuePair.adoc[KeyValuePair]? a|Additional fields to set on each log event. diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.YamlLayout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.YamlLayout.adoc index 55e7f46..b9cb010 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.YamlLayout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-core/org.apache.logging.log4j.core.layout.YamlLayout.adoc @@ -47,7 +47,8 @@ Supports Lookup expressions. locationInfo="" properties="" stacktraceAsString=""> - <KeyValuePair/> + <a-Serializer-implementation/> + <KeyValuePair/><!-- multiple occurrences allowed --> </YamlLayout> ---- @@ -138,6 +139,10 @@ Optional components are denoted by `?`-suffixed types. |=== |Tag|Type|Description +| +|Serializer? +a| + |KeyValuePair |xref:../log4j-core/org.apache.logging.log4j.core.util.KeyValuePair.adoc[KeyValuePair]? a|Additional fields to set on each log event. diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.adoc index a187336..8095fee 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/org.apache.logging.log4j/log4j-layout-template-json/org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.adoc @@ -39,7 +39,7 @@ Provider:: `org.apache.logging.log4j:log4j-layout-template-json` stackTraceElementTemplateUri="" stackTraceEnabled="" truncatedStringSuffix=""> - <EventTemplateAdditionalField/> + <EventTemplateAdditionalField/><!-- multiple occurrences allowed --> </JsonTemplateLayout> ---- diff --git a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/scalars.adoc b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/scalars.adoc index d07785c..f9e2130 100644 --- a/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/scalars.adoc +++ b/log4j-docgen/src/test/resources/plugins-with-dependency/freemarker-output/scalars.adoc @@ -19,24 +19,6 @@ limitations under the License. Type converter plugins are used to convert simple `String` values into other types. -[#boolean] -== `boolean` - - -A boolean value - -[#boolean-values] -=== Possible values - -`false`:: false -`true`:: true - -[#byte] -== `byte` - - -An 8-bit signed integer from `-128` to `127` - [#com_conversantmedia_util_concurrent_SpinPolicy] == `com.conversantmedia.util.concurrent.SpinPolicy` @@ -51,71 +33,6 @@ Provider:: `org.apache.logging.log4j:log4j-core` `BLOCKING`:: `SPINNING`:: -[#double] -== `double` - - -A double precision floating number from `4.94065645841246544e-324` to `1.79769313486231570e+308` - -[#float] -== `float` - - -A single precision floating number from `1.40239846e-45` to `3.40282347e+38` - -[#int] -== `int` - - -A 32-bit signed integer from `-2147483648` to `2147483647` - -[#java_lang_Class] -== `java.lang.Class` - -Provider:: `org.apache.logging.log4j:log4j-core` - - - -[#java_lang_String] -== `java.lang.String` - - -A string of characters - -[#java_net_InetAddress] -== `java.net.InetAddress` - -Provider:: `org.apache.logging.log4j:log4j-core` - - - -[#java_net_URL] -== `java.net.URL` - -Provider:: `org.apache.logging.log4j:log4j-core` - - - -[#java_nio_charset_Charset] -== `java.nio.charset.Charset` - -Provider:: `org.apache.logging.log4j:log4j-core` - - - -[#java_util_regex_Pattern] -== `java.util.regex.Pattern` - -Provider:: `org.apache.logging.log4j:log4j-core` - - - -[#long] -== `long` - - -A 64-bit signed integer from `-9223372036854775808` to `9223372036854775807` - [#org_apache_commons_csv_QuoteMode] == `org.apache.commons.csv.QuoteMode` @@ -413,9 +330,3 @@ Provider:: `org.apache.logging.log4j:log4j-layout-template-json` Provider:: `org.apache.logging.log4j:log4j-layout-template-json` - -[#short] -== `short` - - -A 16-bit signed integer from `-32768` to `32767` diff --git a/log4j-docgen/src/test/resources/templates/plugin.adoc.ftl b/log4j-docgen/src/test/resources/templates/plugin.adoc.ftl index 18d1249..d5cf4d5 100644 --- a/log4j-docgen/src/test/resources/templates/plugin.adoc.ftl +++ b/log4j-docgen/src/test/resources/templates/plugin.adoc.ftl @@ -27,7 +27,7 @@ Class:: `${type.className}` <#if sourcedType.groupId?has_content && sourcedType.artifactId?has_content> Provider:: `${sourcedType.groupId}:${sourcedType.artifactId}` -</#if>${(type.description.text)!''} +</#if>${(type.description.text)!} [#${type.className?replace('.', '_')}-XML-snippet] == XML snippet @@ -48,16 +48,16 @@ ${indent}${attr.name}="${attr.defaultValue!}"${attr?is_last?then(has_elements?th </#list> <#if has_elements> <#list type.elements as element> + <#assign multiplicitySuffix = (element.multiplicity == '*')?then('<!-- multiple occurrences allowed -->','')/> + <#assign elementName = 'a-' + element.type?keep_after_last('.') + '-implementation'/> <#if lookup[element.type]??> <#assign element_type = lookup[element.type].type/> <#-- @ftlvariable name="element_type" type="org.apache.logging.log4j.docgen.model.AbstractType" --> <#if element_type.name?? && !element_type.implementations?has_content> - <#-- @ftlvariable name="element_type" type="org.apache.logging.log4j.docgen.model.PluginType" --> - <${element_type.name}/> - <#else> - <a-${element.type?keep_after_last('.')}-implementation/><#if element.multiplicity == '*'><!-- multiple occurrences allowed --></#if> + <#assign elementName = element_type.name/> </#if> </#if> + <${elementName}/>${multiplicitySuffix} </#list> </${type.name}> </#if> @@ -79,7 +79,7 @@ Optional attributes are denoted by `?`-suffixed types. |${attr.name} |xref:../../scalars.adoc#${attr.type?replace('.', '_')}[${attr.type?contains('.')?then(attr.type?keep_after_last('.'), attr.type)}]${requirementSuffix} |${attr.defaultValue!} -a|${(attr.description.text)!''} +a|${(attr.description.text)!} </#list> |=== @@ -96,30 +96,34 @@ Optional components are denoted by `?`-suffixed types. |Tag|Type|Description <#list type.elements?sort_by('type') as element> + <#assign requirementSuffix = element.required?then('', '?')/> + <#assign descriptionCell = (element.description.text)!/> + <#assign elementName = element.type?contains('.')?then(element.type?keep_after_last('.'), element.type)/> <#if lookup[element.type]??> <#assign elementSourcedType = lookup[element.type]/> <#assign elementType = elementSourcedType.type/> - <#assign linkName = element.type?contains('.')?then(element.type?keep_after_last('.'), element.type)/> - <#assign requirementSuffix = element.required?then('', '?')/> - <#assign tagCell = elementType.name!''/> - <#assign descriptionCell = (element.description.text)!''/> + <#assign tagCell = elementType.name!/> <#switch elementType.class.simpleName> <#case 'PluginType'> <#case 'AbstractType'> |${tagCell} -|xref:../${elementSourcedType.artifactId}/${element.type}.adoc[${linkName}]${requirementSuffix} +|xref:../${elementSourcedType.artifactId}/${element.type}.adoc[${elementName}]${requirementSuffix} a|${descriptionCell} <#break> <#case 'ScalarType'> |${tagCell} -|xref:../scalars.adoc#${element.type?replace('.', '_')}[${linkName}]${requirementSuffix} +|xref:../scalars.adoc#${element.type?replace('.', '_')}[${elementName}]${requirementSuffix} a|${descriptionCell} <#break> <#default> <#stop 'Unknown type `' + element.type + '` modelled in class `' + elementType.class.name + '`'/> </#switch> - + <#else> +| +|${elementName}${requirementSuffix} +a|${descriptionCell} </#if> + </#list> |=== </#if> diff --git a/log4j-docgen/src/test/resources/templates/scalars.adoc.ftl b/log4j-docgen/src/test/resources/templates/scalars.adoc.ftl index 150dbc6..9b5edb9 100644 --- a/log4j-docgen/src/test/resources/templates/scalars.adoc.ftl +++ b/log4j-docgen/src/test/resources/templates/scalars.adoc.ftl @@ -32,14 +32,14 @@ Type converter plugins are used to convert simple `String` values into other typ Provider:: `${sourcedType.groupId}:${sourcedType.artifactId}` </#if> -${(scalar.description.text)!''} +${(scalar.description.text)!} <#if scalar.values?size != 0> [#${scalar.className?replace('.', '_')}-values] === Possible values <#list scalar.values as value> -`${value.name}`:: ${(value.description.text)!''} +`${value.name}`:: ${(value.description.text)!} </#list> </#if> </#list> diff --git a/log4j-tools-internal-test-util/src/main/java/org/apache/logging/log4j/tools/internal/test/util/FileTestUtils.java b/log4j-tools-internal-test-util/src/main/java/org/apache/logging/log4j/tools/internal/test/util/FileTestUtils.java index 5229526..49d9dd6 100644 --- a/log4j-tools-internal-test-util/src/main/java/org/apache/logging/log4j/tools/internal/test/util/FileTestUtils.java +++ b/log4j-tools-internal-test-util/src/main/java/org/apache/logging/log4j/tools/internal/test/util/FileTestUtils.java @@ -28,6 +28,7 @@ import java.util.TreeMap; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.assertj.core.api.SoftAssertions; public final class FileTestUtils { @@ -42,13 +43,15 @@ public final class FileTestUtils { assertThat(actualContents).containsOnlyKeys(relativeFilePaths); // Compare file contents + final SoftAssertions assertions = new SoftAssertions(); relativeFilePaths.forEach(relativeFilePath -> { final Path actualFilePath = actualContents.get(relativeFilePath); final Path expectedFilePath = expectedContents.get(relativeFilePath); if (!Files.isDirectory(actualFilePath) || !Files.isDirectory(expectedFilePath)) { - assertThat(actualFilePath).hasSameTextualContentAs(expectedFilePath); + assertions.assertThat(actualFilePath).hasSameTextualContentAs(expectedFilePath); } }); + assertions.assertAll(); } private static Map<String, Path> directoryContents(final Path root) {
