Skip to content

Commit

Permalink
Revert "customizers are sufficient"
Browse files Browse the repository at this point in the history
This reverts commit 1a867b1.
  • Loading branch information
zeitlinger committed Feb 19, 2024
1 parent d0c8aba commit 655d2e6
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ Comparing source compatibility of against
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder (not serializable)
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.sdk.autoconfigure.ComponentLoader)
+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.autoconfigure.ComponentLoader (not serializable)
+++* NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.autoconfigure.ComponentLoader (not serializable)
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
+++ NEW SUPERCLASS: java.lang.Object
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable<T> load(java.lang.Class<T>)
+++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable<T> load(java.lang.Class<T>)
GENERIC TEMPLATES: +++ T:java.lang.Object
+++ NEW METHOD: PUBLIC(+) java.util.Map<java.lang.String,T> loadConfigurableProviders(java.lang.Class<T>)
+++* NEW METHOD: PUBLIC(+) java.util.Map<java.lang.String,T> loadConfigurableProviders(java.lang.Class<T>)
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.autoconfigure.spi.ConfigurableProvider
+++ NEW METHOD: PUBLIC(+) java.util.List<T> loadOrdered(java.lang.Class<T>)
+++* NEW METHOD: PUBLIC(+) java.util.Optional<T> loadOptional(java.lang.Class<T>)
GENERIC TEMPLATES: +++ T:java.lang.Object
+++* NEW METHOD: PUBLIC(+) java.util.List<T> loadOrdered(java.lang.Class<T>)
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.autoconfigure.spi.Ordered
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

/** A loader for components that are discovered via SPI. */
public interface ComponentLoader {
<T> Iterable<T> load(Class<T> spiClass);

default <T> Optional<T> loadOptional(Class<T> spiClass) {
Iterable<T> iterable = load(spiClass);
return StreamSupport.stream(iterable.spliterator(), false).findFirst();
}

/**
* Load implementations of an ordered SPI (i.e. implements {@link Ordered}).
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.function.BiFunction;
Expand Down Expand Up @@ -109,6 +110,10 @@ private <T> List<T> init(Iterable<T> components) {
return result;
}

public <T> Optional<T> loadOptional(Class<T> spiClass) {
return componentLoader.loadOptional(spiClass).map(this::maybeAddListener);
}

private <T> T maybeAddListener(T object) {
if (object instanceof AutoConfigureListener) {
listeners.add((AutoConfigureListener) object);
Expand Down

0 comments on commit 655d2e6

Please sign in to comment.