This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/main by this push:
new d9811cce35 Add missing `uses` declarations in module descriptor (#3254)
d9811cce35 is described below
commit d9811cce356c33555777a7d03975503a1fd67662
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Thu Apr 3 20:00:15 2025 +0200
Add missing `uses` declarations in module descriptor (#3254)
All `ServiceLoader.load()` calls need a `uses` clause in the JPMS module
descriptor.
This PR:
- Adds the missing `@ServiceConsumer` annotation to `CoreDefaultBundle`.
- To simplify code review, it places `@ServiceConsumer` on each class that
makes a `ServiceLoader.load` call and only those classes.
Closes #3250
---
.../conversant/test/DisruptorRecyclerFactoryProviderTest.java | 3 +++
.../org/apache/logging/log4j/core/impl/CoreDefaultBundle.java | 3 +++
.../logging/log4j/jctools/JCToolsRecyclerFactoryProviderTest.java | 3 +++
.../log4j/kit/recycler/internal/RecyclerFactoryTestUtil.java | 3 +++
.../src/main/java/org/apache/logging/log4j/plugins/di/DI.java | 3 +++
.../plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java | 2 --
src/changelog/.3.x.x/3250_declare_uses.xml | 8 ++++++++
7 files changed, 23 insertions(+), 2 deletions(-)
diff --git
a/log4j-conversant/src/test/java/org/apache/logging/log4j/conversant/test/DisruptorRecyclerFactoryProviderTest.java
b/log4j-conversant/src/test/java/org/apache/logging/log4j/conversant/test/DisruptorRecyclerFactoryProviderTest.java
index 3d2f605347..d5ba0d6323 100644
---
a/log4j-conversant/src/test/java/org/apache/logging/log4j/conversant/test/DisruptorRecyclerFactoryProviderTest.java
+++
b/log4j-conversant/src/test/java/org/apache/logging/log4j/conversant/test/DisruptorRecyclerFactoryProviderTest.java
@@ -18,6 +18,8 @@ package org.apache.logging.log4j.conversant.test;
import static org.assertj.core.api.Assertions.assertThat;
+import aQute.bnd.annotation.Cardinality;
+import aQute.bnd.annotation.spi.ServiceConsumer;
import java.util.Comparator;
import java.util.List;
import java.util.ServiceLoader;
@@ -27,6 +29,7 @@ import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.ServiceLoaderUtil;
import org.junit.jupiter.api.Test;
+@ServiceConsumer(value = RecyclerFactoryProvider.class, resolution =
Cardinality.MULTIPLE)
class DisruptorRecyclerFactoryProviderTest {
@Test
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
index 9d9c2fc427..a2e181b72b 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
@@ -16,6 +16,8 @@
*/
package org.apache.logging.log4j.core.impl;
+import aQute.bnd.annotation.Cardinality;
+import aQute.bnd.annotation.spi.ServiceConsumer;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
@@ -83,6 +85,7 @@ import org.jspecify.annotations.Nullable;
* @see LogEventFactory
* @see StrSubstitutor
*/
+@ServiceConsumer(value = RecyclerFactoryProvider.class, cardinality =
Cardinality.MULTIPLE)
public final class CoreDefaultBundle {
@SingletonFactory
diff --git
a/log4j-jctools/src/test/java/org/apache/logging/log4j/jctools/JCToolsRecyclerFactoryProviderTest.java
b/log4j-jctools/src/test/java/org/apache/logging/log4j/jctools/JCToolsRecyclerFactoryProviderTest.java
index e5d121db0f..37bfac52c1 100644
---
a/log4j-jctools/src/test/java/org/apache/logging/log4j/jctools/JCToolsRecyclerFactoryProviderTest.java
+++
b/log4j-jctools/src/test/java/org/apache/logging/log4j/jctools/JCToolsRecyclerFactoryProviderTest.java
@@ -18,6 +18,8 @@ package org.apache.logging.log4j.jctools;
import static org.assertj.core.api.Assertions.assertThat;
+import aQute.bnd.annotation.Cardinality;
+import aQute.bnd.annotation.spi.ServiceConsumer;
import java.util.Comparator;
import java.util.List;
import java.util.ServiceLoader;
@@ -26,6 +28,7 @@ import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.ServiceLoaderUtil;
import org.junit.jupiter.api.Test;
+@ServiceConsumer(value = RecyclerFactoryProvider.class, cardinality =
Cardinality.MULTIPLE)
class JCToolsRecyclerFactoryProviderTest {
@Test
diff --git
a/log4j-kit/src/test/java/org/apache/logging/log4j/kit/recycler/internal/RecyclerFactoryTestUtil.java
b/log4j-kit/src/test/java/org/apache/logging/log4j/kit/recycler/internal/RecyclerFactoryTestUtil.java
index 985f525127..dcce4778ca 100644
---
a/log4j-kit/src/test/java/org/apache/logging/log4j/kit/recycler/internal/RecyclerFactoryTestUtil.java
+++
b/log4j-kit/src/test/java/org/apache/logging/log4j/kit/recycler/internal/RecyclerFactoryTestUtil.java
@@ -16,6 +16,8 @@
*/
package org.apache.logging.log4j.kit.recycler.internal;
+import aQute.bnd.annotation.Cardinality;
+import aQute.bnd.annotation.spi.ServiceConsumer;
import java.util.HashMap;
import java.util.Map;
import java.util.ServiceLoader;
@@ -27,6 +29,7 @@ import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.ServiceLoaderUtil;
import org.jspecify.annotations.Nullable;
+@ServiceConsumer(value = RecyclerFactoryProvider.class, cardinality =
Cardinality.MULTIPLE)
final class RecyclerFactoryTestUtil {
private RecyclerFactoryTestUtil() {}
diff --git
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
index 07d968b98f..ebdb53190a 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
@@ -16,6 +16,8 @@
*/
package org.apache.logging.log4j.plugins.di;
+import aQute.bnd.annotation.Cardinality;
+import aQute.bnd.annotation.spi.ServiceConsumer;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Comparator;
@@ -36,6 +38,7 @@ import org.apache.logging.log4j.util.ServiceLoaderUtil;
* {@link ConfigurableInstanceFactory} using bindings registered before and
after standard
* {@link ConfigurableInstanceFactoryPostProcessor} service provider classes
are invoked.
*/
+@ServiceConsumer(value = ConfigurableInstanceFactoryPostProcessor.class,
cardinality = Cardinality.MULTIPLE)
public final class DI {
private DI() {
throw new IllegalStateException("Utility class");
diff --git
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
index d46ce87541..430c50a001 100644
---
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
+++
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
@@ -16,7 +16,6 @@
*/
package org.apache.logging.log4j.plugins.di.spi;
-import aQute.bnd.annotation.spi.ServiceConsumer;
import java.util.ServiceLoader;
import org.apache.logging.log4j.plugins.Ordered;
import org.apache.logging.log4j.plugins.di.ConfigurableInstanceFactory;
@@ -27,7 +26,6 @@ import
org.apache.logging.log4j.plugins.di.ConfigurableInstanceFactory;
* {@link Ordered} annotation on the class for overriding the order it will be
invoked.
*/
@FunctionalInterface
-@ServiceConsumer(ConfigurableInstanceFactoryPostProcessor.class)
public interface ConfigurableInstanceFactoryPostProcessor {
/**
diff --git a/src/changelog/.3.x.x/3250_declare_uses.xml
b/src/changelog/.3.x.x/3250_declare_uses.xml
new file mode 100644
index 0000000000..22a802a108
--- /dev/null
+++ b/src/changelog/.3.x.x/3250_declare_uses.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry 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-changelog-0.xsd"
+ type="fixed">
+ <issue id="3250"
link="https://github.com/apache/logging-log4j2/issues/3250"/>
+ <description format="asciidoc">Add missing `uses` declarations in module
descriptor.</description>
+</entry>