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-lang.git
commit a4fc02f69df6f28f6a52b41d601e3df64fda891c Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu Oct 12 09:08:43 2023 -0400 ConcurrentInitializer extends FailableSupplier<T, ConcurrentException> --- .../lang3/concurrent/ConcurrentInitializer.java | 43 +++++++++------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java index d47ccb2ab..8f2d40ee0 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java @@ -16,37 +16,30 @@ */ package org.apache.commons.lang3.concurrent; +import org.apache.commons.lang3.function.FailableSupplier; + /** - * Definition of an interface for the thread-safe initialization of objects. - * + * Defines the thread-safe initialization of objects. + * <p> + * The idea behind this interface is to provide access to an object in a thread-safe manner. A {@link ConcurrentInitializer} can be passed to multiple threads + * which can all access the object produced by the initializer. Through the {@link #get()} method the object can be queried. + * </p> + * <p> + * Concrete implementations of this interface will use different strategies for the creation of the managed object, e.g. lazy initialization or initialization + * in a background thread. This is completely transparent to client code, so it is possible to change the initialization strategy without affecting clients. + * </p> * <p> - * The idea behind this interface is to provide access to an object in a - * thread-safe manner. A {@link ConcurrentInitializer} can be passed to multiple - * threads which can all access the object produced by the initializer. Through - * the {@link #get()} method the object can be queried. + * An implementation of {@link #get()} returns the fully initialized object produced by this {@code + * ConcurrentInitializer}. A concrete implementation here returns the results of the initialization process. This method may block until results are available. + * Typically, once created the result object is always the same. * </p> * <p> - * Concrete implementations of this interface will use different strategies for - * the creation of the managed object, e.g. lazy initialization or - * initialization in a background thread. This is completely transparent to - * client code, so it is possible to change the initialization strategy without - * affecting clients. + * An implementation throws {@link ConcurrentException} if an error occurred during initialization of the object. * </p> * * @since 3.0 - * @param <T> the type of the object managed by this initializer class + * @param <T> the type of the object managed by this initializer class. */ -public interface ConcurrentInitializer<T> { - /** - * Returns the fully initialized object produced by this {@code - * ConcurrentInitializer}. A concrete implementation here returns the - * results of the initialization process. This method may block until - * results are available. Typically, once created the result object is - * always the same. - * - * @return the object created by this {@link ConcurrentException} - * @throws ConcurrentException if an error occurred during initialization of - * the object - */ - T get() throws ConcurrentException; +public interface ConcurrentInitializer<T> extends FailableSupplier<T, ConcurrentException> { + // empty }