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>

Reply via email to