Skip to content

Commit 167e31d

Browse files
committed
Provide a simple Instantiator utility class
Make `Instantiator` a public utility class so that it can be used by other parts of the codebase. Closes gh-23029
1 parent f7ef344 commit 167e31d

File tree

4 files changed

+9
-6
lines changed

4 files changed

+9
-6
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigDataLoaders.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.commons.logging.Log;
2525

2626
import org.springframework.boot.logging.DeferredLogFactory;
27+
import org.springframework.boot.util.Instantiator;
2728
import org.springframework.core.ResolvableType;
2829
import org.springframework.core.io.support.SpringFactoriesLoader;
2930
import org.springframework.core.log.LogMessage;

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigDataLocationResolvers.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import org.springframework.boot.context.properties.bind.Binder;
2626
import org.springframework.boot.logging.DeferredLogFactory;
27+
import org.springframework.boot.util.Instantiator;
2728
import org.springframework.core.env.Environment;
2829
import org.springframework.core.io.ResourceLoader;
2930
import org.springframework.core.io.support.SpringFactoriesLoader;
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.context.config;
17+
package org.springframework.boot.util;
1818

1919
import java.lang.reflect.Constructor;
2020
import java.util.ArrayList;
@@ -38,8 +38,9 @@
3838
*
3939
* @param <T> the type to instantiate
4040
* @author Phillip Webb
41+
* @since 2.4.0
4142
*/
42-
class Instantiator<T> {
43+
public class Instantiator<T> {
4344

4445
private static final Comparator<Constructor<?>> CONSTRUCTOR_COMPARATOR = Comparator
4546
.<Constructor<?>>comparingInt(Constructor::getParameterCount).reversed();
@@ -53,7 +54,7 @@ class Instantiator<T> {
5354
* @param type the type to instantiate
5455
* @param availableParameters consumer used to register available parameters
5556
*/
56-
Instantiator(Class<?> type, Consumer<AvailableParameters> availableParameters) {
57+
public Instantiator(Class<?> type, Consumer<AvailableParameters> availableParameters) {
5758
this.type = type;
5859
this.availableParameters = getAvailableParameters(availableParameters);
5960
}
@@ -83,7 +84,7 @@ public void add(Class<?> type, Function<Class<?>, Object> factory) {
8384
* @param names the class names to instantiate
8485
* @return a list of instantiated instances
8586
*/
86-
List<T> instantiate(Collection<String> names) {
87+
public List<T> instantiate(Collection<String> names) {
8788
List<T> instances = new ArrayList<>(names.size());
8889
for (String name : names) {
8990
instances.add(instantiate(name));
@@ -141,7 +142,7 @@ private Function<Class<?>, Object> getAvailableParameter(Class<?> parameterType)
141142
/**
142143
* Callback used to register available parameters.
143144
*/
144-
interface AvailableParameters {
145+
public interface AvailableParameters {
145146

146147
/**
147148
* Add a parameter with an instance value.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.context.config;
17+
package org.springframework.boot.util;
1818

1919
import java.util.Arrays;
2020
import java.util.Collections;

0 commit comments

Comments
 (0)