This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch release/0.8.0
in repository https://gitbox.apache.org/repos/asf/logging-log4j-tools.git
The following commit(s) were added to refs/heads/release/0.8.0 by this push:
new b3612d3 Accept version while generating schema
b3612d3 is described below
commit b3612d33185842ea4444f169f29c7139cc9d6450
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Tue Mar 19 10:49:40 2024 +0100
Accept version while generating schema
---
.../apache/logging/log4j/docgen/maven/SchemaGeneratorMojo.java | 8 +++++++-
.../apache/logging/log4j/docgen/generator/SchemaGenerator.java | 9 ++++-----
.../logging/log4j/docgen/generator/SchemaGeneratorArgs.java | 8 +++++++-
.../logging/log4j/docgen/generator/SchemaGeneratorTest.java | 2 +-
.../src/test/resources/SchemaGeneratorTest/expected-plugins.xsd | 2 +-
5 files changed, 20 insertions(+), 9 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/SchemaGeneratorMojo.java
index 26f8366..7f16de8 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
@@ -36,6 +36,12 @@ import org.apache.maven.plugins.annotations.Parameter;
@Mojo(name = "generate-schema", defaultPhase =
LifecyclePhase.GENERATE_RESOURCES, threadSafe = true)
public class SchemaGeneratorMojo extends AbstractGeneratorMojo {
+ /**
+ * The version of the XSD
+ */
+ @Parameter(property = "log4j.docgen.schemaVersion", required = true)
+ private String schemaVersion;
+
/**
* The path of the XSD file to write to
*/
@@ -49,7 +55,7 @@ public class SchemaGeneratorMojo extends
AbstractGeneratorMojo {
final Predicate<String> classNameFilter = typeFilter != null ?
typeFilter.createPredicate() : ignored -> true;
try {
final SchemaGeneratorArgs generatorArgs =
- new SchemaGeneratorArgs(pluginSets, classNameFilter,
schemaFile.toPath());
+ new SchemaGeneratorArgs(pluginSets, classNameFilter,
schemaVersion, 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/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 0840a53..e2874c3 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
@@ -57,8 +57,6 @@ public final class SchemaGenerator {
private static final String XSD_NAMESPACE =
XMLConstants.W3C_XML_SCHEMA_NS_URI;
- private static final String VERSION = new PluginSet().getSchemaVersion();
-
private static final String MULTIPLICITY_UNBOUNDED = "*";
private static final String CHARSET_NAME = "UTF-8";
@@ -79,7 +77,7 @@ public final class SchemaGenerator {
try (final OutputStream schemaPathOutputStream =
Files.newOutputStream(args.schemaFile)) {
final XMLStreamWriter writer =
factory.createXMLStreamWriter(schemaPathOutputStream, CHARSET_NAME);
try {
- writeSchema(lookup, writer);
+ writeSchema(args.schemaVersion, lookup, writer);
} finally {
writer.close();
}
@@ -89,7 +87,8 @@ public final class SchemaGenerator {
}
}
- private static void writeSchema(final TypeLookup lookup, final
XMLStreamWriter writer) throws XMLStreamException {
+ private static void writeSchema(final String version, final TypeLookup
lookup, final XMLStreamWriter writer)
+ throws XMLStreamException {
writer.writeStartDocument(CHARSET_NAME, "1.0");
writer.setDefaultNamespace(XSD_NAMESPACE);
writer.writeStartElement(XSD_NAMESPACE, "schema");
@@ -97,7 +96,7 @@ public final class SchemaGenerator {
writer.writeNamespace(LOG4J_PREFIX, LOG4J_NAMESPACE);
writer.writeAttribute("elementFormDefault", "qualified");
writer.writeAttribute("targetNamespace", LOG4J_NAMESPACE);
- writer.writeAttribute("version", VERSION);
+ writer.writeAttribute("version", version);
// The root element
writer.writeEmptyElement(XSD_NAMESPACE, "element");
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 8a1b8ea..63e1775 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
@@ -29,12 +29,18 @@ public final class SchemaGeneratorArgs {
final Predicate<String> classNameFilter;
+ final String schemaVersion;
+
final Path schemaFile;
public SchemaGeneratorArgs(
- final Set<PluginSet> pluginSets, final Predicate<String>
classNameFilter, final Path schemaFile) {
+ final Set<PluginSet> pluginSets,
+ final Predicate<String> classNameFilter,
+ final String schemaVersion,
+ final Path schemaFile) {
this.pluginSets = requireNonNull(pluginSets, "pluginSets");
this.classNameFilter = requireNonNull(classNameFilter,
"classNameFilter");
+ this.schemaVersion = requireNonNull(schemaVersion, "schemaVersion");
this.schemaFile = requireNonNull(schemaFile, "schemaFile");
}
}
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 1916d72..8f673e2 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
@@ -57,7 +57,7 @@ class SchemaGeneratorTest {
// Generate the schema
final Path schemaFile = outputDir.resolve("config.xsd");
final SchemaGeneratorArgs generatorArgs =
- new SchemaGeneratorArgs(Set.of(pluginSet), ignored -> true,
schemaFile);
+ new SchemaGeneratorArgs(Set.of(pluginSet), ignored -> true,
"1.2.3", schemaFile);
SchemaGenerator.generateSchema(generatorArgs);
// Return the generated XSD file path
diff --git
a/log4j-docgen/src/test/resources/SchemaGeneratorTest/expected-plugins.xsd
b/log4j-docgen/src/test/resources/SchemaGeneratorTest/expected-plugins.xsd
index 609ee0b..ee0d568 100644
--- a/log4j-docgen/src/test/resources/SchemaGeneratorTest/expected-plugins.xsd
+++ b/log4j-docgen/src/test/resources/SchemaGeneratorTest/expected-plugins.xsd
@@ -19,7 +19,7 @@
~ This is a test schema used in `SchemaGeneratorTest`.
~ Unlike this file the `SchemaGenerator` strips whitespace.
-->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:log4j="https://logging.apache.org/xml/ns" elementFormDefault="qualified"
targetNamespace="https://logging.apache.org/xml/ns" version="0.1.0">
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:log4j="https://logging.apache.org/xml/ns" elementFormDefault="qualified"
targetNamespace="https://logging.apache.org/xml/ns" version="1.2.3">
<element type="log4j:org.apache.logging.log4j.core.config.Configuration"
name="Configuration"/>
<simpleType name="org.apache.logging.log4j.Level">
<annotation>