Skip to content

Commit dd4cc06

Browse files
call delegate #getService() when looking up single service
as classes implementing `ServiceProvider` may define their own custom behaviour, let the `ServiceProvider` instance itself fetch a single service by name instead of using an own standard strategy (using the first one returned by `#getServices(Class)`) this way it is prevented that a `ServiceProvider` must load all services of the class even if they are not generellay needed (including all side effects e.g. loading data from remote services)
1 parent 9f64034 commit dd4cc06

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

src/main/java/javax/money/spi/Bootstrap.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -111,18 +111,14 @@ public static <T> Collection<T> getServices(Class<T> serviceType) {
111111
}
112112

113113
/**
114-
* Delegate method for {@link ServiceProvider#getServices(Class)}.
114+
* Delegate method for {@link ServiceProvider#getService(Class)}.
115115
*
116116
* @param serviceType the service type.
117117
* @return the service found, or {@code null}.
118118
* @see ServiceProvider#getServices(Class)
119119
*/
120120
public static <T> T getService(Class<T> serviceType) {
121-
List<T> services = getServiceProvider().getServices(serviceType);
122-
return services
123-
.stream()
124-
.findFirst()
125-
.orElse(null);
121+
return getServiceProvider().getService(serviceType);
126122
}
127123

128124
}

0 commit comments

Comments
 (0)