mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
fix bug in service loader
This commit is contained in:
parent
e60dfeea67
commit
a23ffeee6b
@ -43,8 +43,17 @@ public class SimpleServiceLoader<T> {
|
||||
|
||||
public Optional<T> get(String implName) {
|
||||
List<Component<? extends T>> namedProviders = getNamedProviders();
|
||||
ServiceLoader.Provider<? extends T> providers = namedProviders.stream().filter(n -> n.selector.equals(implName)).findFirst().get().provider;
|
||||
return Optional.ofNullable(providers == null ? null : providers.get());
|
||||
if (namedProviders==null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
List<Component<? extends T>> components = namedProviders.stream().filter(n -> n.selector.equals(implName)).toList();
|
||||
if (components.size()>1) {
|
||||
throw new RuntimeException("Found multiple components matching '" + implName +"',");
|
||||
}
|
||||
if (components.size()==0) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return Optional.of(components.get(0).provider.get());
|
||||
}
|
||||
|
||||
public T getOrThrow(String implName) {
|
||||
|
Loading…
Reference in New Issue
Block a user