This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git

commit e5c3d7ec1215c2ae6a3b28fb83fbb98ac922fbdf
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Apr 28 09:30:31 2024 -0400

    Deprecate Factory in favor of java.util.function.Supplier
---
 src/changes/changes.xml                                    |  1 +
 src/main/java/org/apache/commons/collections4/Factory.java | 12 ++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d8d628ff5..3057795e1 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -27,6 +27,7 @@
      <action issue="COLLECTIONS-852" type="update" dev="ggregory" 
due-to="Claude Warren, Alex Herbert">Add layerd bloom filter clean method 
#476.</action>
      <!-- FIX -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate 
Closure in favor of java.util.function.Consumer.</action>
+     <action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate 
Factory in favor of java.util.function.Supplier.</action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Dependabot">Bump 
org.apache.commons:commons-parent from 67 to 69 #473.</action>
      <action type="update" dev="ggregory" due-to="Dependabot">Bump tests 
commons-io:commons-io from 2.16.0 to 2.16.1 #475 .</action>
diff --git a/src/main/java/org/apache/commons/collections4/Factory.java 
b/src/main/java/org/apache/commons/collections4/Factory.java
index 38f6fa78f..527e31c24 100644
--- a/src/main/java/org/apache/commons/collections4/Factory.java
+++ b/src/main/java/org/apache/commons/collections4/Factory.java
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.collections4;
 
+import java.util.function.Supplier;
+
 /**
  * Defines a functor interface implemented by classes that create objects.
  * <p>
@@ -31,9 +33,10 @@ package org.apache.commons.collections4;
  * @param <T> the type that the factory creates
  *
  * @since 2.1
+ * @deprecated Use {@link Supplier}.
  */
-@FunctionalInterface
-public interface Factory<T> {
+@Deprecated
+public interface Factory<T> extends Supplier<T> {
 
     /**
      * Create a new object.
@@ -43,4 +46,9 @@ public interface Factory<T> {
      */
     T create();
 
+    @Override
+    default T get() {
+        return create();
+    }
+
 }

Reply via email to