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>

Reply via email to