From 4bf62d9bf09c1d288a77bcc4bfd7bb19003a2ddc Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 20 Jul 2020 13:10:20 -0700 Subject: [PATCH] Refactor ResourceCapableCacheDataImporterExporter class with Open/Closed Principles. Change CacheResourceResolver, ExportResourceResolver and ImportResourceResolver interfaces into @FunctionalInterfaces; provide default implementation for the resolve(location:String):Optional method. Change access modifier on AbstractExportResourceResolver and AbstractImportResourceResolver from protected to public. Resolves gh-92. --- .../ResourceCapableCacheDataImporterExporter.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/spring-geode/src/main/java/org/springframework/geode/data/support/ResourceCapableCacheDataImporterExporter.java b/spring-geode/src/main/java/org/springframework/geode/data/support/ResourceCapableCacheDataImporterExporter.java index 35c2d84a..b20540c0 100644 --- a/spring-geode/src/main/java/org/springframework/geode/data/support/ResourceCapableCacheDataImporterExporter.java +++ b/spring-geode/src/main/java/org/springframework/geode/data/support/ResourceCapableCacheDataImporterExporter.java @@ -202,6 +202,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC * @see org.apache.geode.cache.GemFireCache * @see org.apache.geode.cache.Region */ + @FunctionalInterface protected interface CacheResourceResolver extends ResourceResolver { /** @@ -217,6 +218,13 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC */ Optional resolve(@NonNull Region region); + /** + * @inheritDoc + */ + @Override + default Optional resolve(@NonNull String location) { + return Optional.empty(); + } } /** @@ -439,6 +447,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC * @see org.springframework.geode.core.io.ResourceResolver * @see CacheResourceResolver */ + @FunctionalInterface public interface ExportResourceResolver extends CacheResourceResolver { } /** @@ -448,7 +457,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC * @see AbstractCacheResourceResolver * @see ExportResourceResolver */ - protected abstract class AbstractExportResourceResolver extends AbstractCacheResourceResolver + public abstract class AbstractExportResourceResolver extends AbstractCacheResourceResolver implements ExportResourceResolver { /** @@ -501,6 +510,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC * @see org.springframework.geode.core.io.ResourceResolver * @see CacheResourceResolver */ + @FunctionalInterface public interface ImportResourceResolver extends CacheResourceResolver { } /** @@ -510,7 +520,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC * @see AbstractCacheResourceResolver * @see ImportResourceResolver */ - protected abstract class AbstractImportResourceResolver extends AbstractCacheResourceResolver + public abstract class AbstractImportResourceResolver extends AbstractCacheResourceResolver implements ImportResourceResolver { /**