diff --git a/resilience4j-core/src/main/java/io/github/resilience4j/core/Registry.java b/resilience4j-core/src/main/java/io/github/resilience4j/core/Registry.java index e47ca5223d..f597906ab7 100644 --- a/resilience4j-core/src/main/java/io/github/resilience4j/core/Registry.java +++ b/resilience4j-core/src/main/java/io/github/resilience4j/core/Registry.java @@ -38,6 +38,13 @@ public interface Registry { */ void addConfiguration(String configName, C configuration); + /** + * Find a named entry in the Registry + * + * @param name the name + */ + Optional find(String name); + /** * Remove an entry from the Registry * diff --git a/resilience4j-core/src/main/java/io/github/resilience4j/core/registry/AbstractRegistry.java b/resilience4j-core/src/main/java/io/github/resilience4j/core/registry/AbstractRegistry.java index e20c15475e..7584dd878c 100644 --- a/resilience4j-core/src/main/java/io/github/resilience4j/core/registry/AbstractRegistry.java +++ b/resilience4j-core/src/main/java/io/github/resilience4j/core/registry/AbstractRegistry.java @@ -58,6 +58,11 @@ protected E computeIfAbsent(String name, Supplier supplier){ }); } + @Override + public Optional find(String name){ + return Optional.ofNullable(entryMap.get(name)); + } + @Override public Optional remove(String name){ Optional removedEntry = Optional.ofNullable(entryMap.remove(name)); diff --git a/resilience4j-core/src/test/java/io/github/resilience4j/core/registry/AbstractRegistryTest.java b/resilience4j-core/src/test/java/io/github/resilience4j/core/registry/AbstractRegistryTest.java index 1907a649a5..2d6e26e416 100644 --- a/resilience4j-core/src/test/java/io/github/resilience4j/core/registry/AbstractRegistryTest.java +++ b/resilience4j-core/src/test/java/io/github/resilience4j/core/registry/AbstractRegistryTest.java @@ -76,6 +76,16 @@ public void shouldConsumeRegistryEvents() { } + @Test + public void shouldOnlyFindRegisteredObjects() { + TestRegistry testRegistry = new TestRegistry(); + + assertThat(testRegistry.find("test")).isEmpty(); + testRegistry.entryMap.put("test", "value"); + assertThat(testRegistry.find("test")).contains("value"); + } + + class TestRegistry extends AbstractRegistry { public TestRegistry() { @@ -85,4 +95,4 @@ public TestRegistry() { } } -} \ No newline at end of file +}