Split off -core module.
Change-Id: I64d3c195db94e92da44c7e4971f5e85991ac30c8
diff --git a/README.adoc b/README.adoc
index 44ccb4a..79407cf 100644
--- a/README.adoc
+++ b/README.adoc
@@ -49,7 +49,7 @@
<dependency>
<groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
<artifactId>quarkus-googlecloud-jsonlogging</artifactId>
- <version>3.1.0</version>
+ <version>4.0.0</version>
</dependency>
...
@@ -67,7 +67,7 @@
dependencies {
...
- implementation("eu.mulk.quarkus-googlecloud-jsonlogging:quarkus-googlecloud-jsonlogging:3.1.0")
+ implementation("eu.mulk.quarkus-googlecloud-jsonlogging:quarkus-googlecloud-jsonlogging:4.0.0")
...
}
diff --git a/core/pom.xml b/core/pom.xml
new file mode 100644
index 0000000..86656ae
--- /dev/null
+++ b/core/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
+ <artifactId>quarkus-googlecloud-jsonlogging-parent</artifactId>
+ <version>3.1.4-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>quarkus-googlecloud-jsonlogging-core</artifactId>
+ <name>Quarkus Google Cloud JSON Logging Extension - JBoss Logging Core</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.logmanager</groupId>
+ <artifactId>jboss-logmanager-embedded</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.smallrye.common</groupId>
+ <artifactId>smallrye-common-constraint</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish</groupId>
+ <artifactId>jakarta.json</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <Automatic-Module-Name>eu.mulk.quarkus.googlecloud.jsonlogging.core</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java
similarity index 100%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java
similarity index 100%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Label.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Label.java
similarity index 100%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Label.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Label.java
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LabelProvider.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LabelProvider.java
similarity index 78%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LabelProvider.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LabelProvider.java
index dbd035c..8cf87db 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LabelProvider.java
+++ b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LabelProvider.java
@@ -5,7 +5,11 @@
/**
* A user-supplied provider for {@link Label}s.
*
- * <p>Any CDI beans registered under this class are applied to each log entry that is logged.
+ * <p>Instances of this interface that are registered with the {@link Formatter} are applied to each
+ * log entry that is logged.
+ *
+ * <p>If you are using the Quarkus extension, any CDI beans registered under this interface are
+ * registered automatically.
*
* <p><strong>Example:</strong>
*
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
similarity index 100%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameter.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameter.java
similarity index 100%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameter.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameter.java
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameterProvider.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameterProvider.java
similarity index 83%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameterProvider.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameterProvider.java
index cacfea6..decf937 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameterProvider.java
+++ b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/StructuredParameterProvider.java
@@ -3,7 +3,11 @@
/**
* A user-supplied provider for {@link StructuredParameter}s.
*
- * <p>Any CDI beans registered under this class are applied to each log entry that is logged.
+ * <p>Instances of this interface that are registered with the {@link Formatter} are applied to each
+ * log entry that is logged.
+ *
+ * <p>If you are using the Quarkus extension, any CDI beans registered under this interface are
+ * registered automatically.
*
* <p><strong>Example:</strong>
*
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/package-info.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/package-info.java
similarity index 81%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/package-info.java
rename to core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/package-info.java
index 110ab73..2f4c7ce 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/package-info.java
+++ b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/package-info.java
@@ -17,17 +17,17 @@
* <p>It is possible to log unstructured text, structured data, or a mixture of both depending on
* the situation.
*
- * <h2 id="sect-activation">Activation</h2>
+ * <h2 id="sect-activation">Installation</h2>
*
* <ul>
- * <li><a href="#sect-activation-maven">Activation with Maven</a>
- * <li><a href="#sect-activation-gradle">Activation with Gradle</a>
+ * <li><a href="#sect-installation-maven">Installation with Maven</a>
+ * <li><a href="#sect-installation-gradle">Installation with Gradle</a>
* </ul>
*
* <p>Add the runtime POM to your dependency list. As long as the JAR is on the classpath at both
* build time and runtime, the log formatter automatically registers itself on startup.
*
- * <h3 id="sect-activation-maven">Activation with Maven</h3>
+ * <h3 id="sect-installation-maven">Installation with Maven</h3>
*
* <pre>{@code
* <project>
@@ -38,8 +38,8 @@
*
* <dependency>
* <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
- * <artifactId>quarkus-googlecloud-jsonlogging</artifactId>
- * <version>3.1.0</version>
+ * <artifactId>quarkus-googlecloud-jsonlogging-core</artifactId>
+ * <version>4.0.0</version>
* </dependency>
*
* ...
@@ -49,13 +49,13 @@
* </project>
* }</pre>
*
- * <h3 id="sect-activation-gradle">Activation with Gradle</h3>
+ * <h3 id="sect-installation-gradle">Installation with Gradle</h3>
*
* <pre>{@code
* dependencies {
* ...
*
- * implementation("eu.mulk.quarkus-googlecloud-jsonlogging:quarkus-googlecloud-jsonlogging:3.1.0")
+ * implementation("eu.mulk.quarkus-googlecloud-jsonlogging:quarkus-googlecloud-jsonlogging-core:4.0.0")
*
* ...
* }
@@ -117,11 +117,14 @@
*
* <h3 id="sect-usage-provider">Using LabelProvider and StructuredParameterProvider</h3>
*
- * <p>Any CDI beans that implement {@link eu.mulk.quarkus.googlecloud.jsonlogging.LabelProvider}s
- * and {@link eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider}s are discovered
- * at build time and consulted to provide labels and parameters for each message that is logged.
- * This can be used to provide contextual information such as tracing and request IDs stored in
- * thread-local storage.
+ * <p>If you pass {@link eu.mulk.quarkus.googlecloud.jsonlogging.LabelProvider}s and {@link
+ * eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider}s to {@link
+ * eu.mulk.quarkus.googlecloud.jsonlogging.Formatter}, then they are consulted to provide labels and
+ * parameters for each message that is logged. This can be used to provide contextual information
+ * such as tracing and request IDs stored in thread-local storage.
+ *
+ * <p>If you are using the Quarkus extension, CDI beans that implement these interfaces are
+ * automatically detected at build time and passed to the formatter on startup.
*
* <p><strong>Example:</strong>
*
diff --git a/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java b/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java
index aea89b9..668128f 100644
--- a/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java
+++ b/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java
@@ -1,6 +1,6 @@
package eu.mulk.quarkus.googlecloud.jsonlogging.deployment;
-import eu.mulk.quarkus.googlecloud.jsonlogging.GoogleCloudJsonLoggingRecorder;
+import eu.mulk.quarkus.googlecloud.jsonlogging.runtime.GoogleCloudJsonLoggingRecorder;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
diff --git a/example/pom.xml b/example/pom.xml
index c5c82b2..546a47c 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
<artifactId>quarkus-googlecloud-jsonlogging-parent</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>3.1.4-SNAPSHOT</version>
</parent>
<artifactId>quarkus-googlecloud-jsonlogging-example</artifactId>
diff --git a/pom.xml b/pom.xml
index 0e7c39a..caf627f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,7 @@
</scm>
<modules>
+ <module>core</module>
<module>deployment</module>
<module>runtime</module>
</modules>
@@ -54,12 +55,13 @@
<compiler-plugin.version>3.8.1</compiler-plugin.version>
<failsafe-plugin.version>${surefire-plugin.version}</failsafe-plugin.version>
- <jar-plugin.version>3.2.0</jar-plugin.version>
+ <google-java-format.version>1.13.0</google-java-format.version>
+ <jar-plugin.version>3.2.2</jar-plugin.version>
<maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
<maven-source-plugin.version>2.2.1</maven-source-plugin.version>
<nexus-staging-plugin.version>1.6.8</nexus-staging-plugin.version>
- <spotless-plugin.version>2.11.0</spotless-plugin.version>
+ <spotless-plugin.version>2.19.0</spotless-plugin.version>
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
<quarkus.version>1.13.3.Final</quarkus.version>
@@ -147,7 +149,7 @@
<order>java,javax,org,com,de,io,dagger,eu.mulk,</order>
</importOrder>
<googleJavaFormat>
- <version>${google.java.format.version}</version>
+ <version>${google-java-format.version}</version>
<style>GOOGLE</style>
</googleJavaFormat>
</java>
diff --git a/runtime/pom.xml b/runtime/pom.xml
index 01c2c2c..beb4bcc 100644
--- a/runtime/pom.xml
+++ b/runtime/pom.xml
@@ -15,6 +15,12 @@
<dependencies>
<dependency>
+ <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
+ <artifactId>quarkus-googlecloud-jsonlogging-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-arc</artifactId>
</dependency>
@@ -63,11 +69,10 @@
<plugin>
<artifactId>maven-jar-plugin</artifactId>
- <version>${jar-plugin.version}</version>
<configuration>
<archive>
<manifestEntries>
- <Automatic-Module-Name>eu.mulk.quarkus.googlecloud.jsonlogging</Automatic-Module-Name>
+ <Automatic-Module-Name>eu.mulk.quarkus.googlecloud.jsonlogging.runtime</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/GoogleCloudJsonLoggingRecorder.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java
similarity index 81%
rename from runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/GoogleCloudJsonLoggingRecorder.java
rename to runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java
index 7234a71..661b69f 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/GoogleCloudJsonLoggingRecorder.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java
@@ -1,5 +1,8 @@
-package eu.mulk.quarkus.googlecloud.jsonlogging;
+package eu.mulk.quarkus.googlecloud.jsonlogging.runtime;
+import eu.mulk.quarkus.googlecloud.jsonlogging.Formatter;
+import eu.mulk.quarkus.googlecloud.jsonlogging.LabelProvider;
+import eu.mulk.quarkus.googlecloud.jsonlogging.StructuredParameterProvider;
import io.quarkus.arc.Arc;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/package-info.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/package-info.java
new file mode 100644
index 0000000..2fa7499
--- /dev/null
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/package-info.java
@@ -0,0 +1,71 @@
+/**
+ * Provides structured logging to standard output according to the Google Cloud Logging
+ * specification.
+ *
+ * <ul>
+ * <li><a href="#sect-summary">Summary</a>
+ * <li><a href="#sect-activation">Activation</a>
+ * <li><a href="#sect-usage">Usage</a>
+ * </ul>
+ *
+ * <h2 id="sect-summary">Summary</h2>
+ *
+ * <p>This package contains a log formatter for JBoss Logging in the form of a Quarkus plugin that
+ * implements the <a href="https://cloud.google.com/logging/docs/structured-logging">Google Cloud
+ * Logging JSON format</a> on standard output.
+ *
+ * <p>It is possible to log unstructured text, structured data, or a mixture of both depending on
+ * the situation.
+ *
+ * <h2 id="sect-activation">Activation</h2>
+ *
+ * <ul>
+ * <li><a href="#sect-activation-maven">Activation with Maven</a>
+ * <li><a href="#sect-activation-gradle">Activation with Gradle</a>
+ * </ul>
+ *
+ * <p>Add the runtime POM to your dependency list. As long as the JAR is on the classpath at both
+ * build time and runtime, the log formatter automatically registers itself on startup.
+ *
+ * <h3 id="sect-activation-maven">Activation with Maven</h3>
+ *
+ * <pre>{@code
+ * <project>
+ * ...
+ *
+ * <dependencies>
+ * ...
+ *
+ * <dependency>
+ * <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
+ * <artifactId>quarkus-googlecloud-jsonlogging</artifactId>
+ * <version>4.0.0</version>
+ * </dependency>
+ *
+ * ...
+ * </dependencies>
+ *
+ * ...
+ * </project>
+ * }</pre>
+ *
+ * <h3 id="sect-activation-gradle">Activation with Gradle</h3>
+ *
+ * <pre>{@code
+ * dependencies {
+ * ...
+ *
+ * implementation("eu.mulk.quarkus-googlecloud-jsonlogging:quarkus-googlecloud-jsonlogging:4.0.0")
+ *
+ * ...
+ * }
+ * }</pre>
+ *
+ * <h2 id="sect-usage">Usage</h2>
+ *
+ * <p>See the documentation of the {@link eu.mulk.quarkus.googlecloud.jsonlogging} package for usage
+ * instructions.
+ *
+ * @see eu.mulk.quarkus.googlecloud.jsonlogging
+ */
+package eu.mulk.quarkus.googlecloud.jsonlogging.runtime;