diff --git a/src/main/java/org/springframework/cloud/bindings/Binding.java b/src/main/java/org/springframework/cloud/bindings/Binding.java index 9f3f3db..5cfe378 100644 --- a/src/main/java/org/springframework/cloud/bindings/Binding.java +++ b/src/main/java/org/springframework/cloud/bindings/Binding.java @@ -15,6 +15,7 @@ */ package org.springframework.cloud.bindings; +import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -141,6 +142,8 @@ public final class Binding { private Map createFilePerEntryMap(Path path) { try { return Files.list(path) + .filter(p -> !p.getFileName().toString().startsWith(".")) + .filter(p -> !new File(p.toString()).isDirectory()) .collect(Collectors.toMap( p -> p.getFileName().toString(), p -> { diff --git a/src/test/java/org/springframework/cloud/bindings/BindingTest.java b/src/test/java/org/springframework/cloud/bindings/BindingTest.java index 3d14dbb..228c67c 100644 --- a/src/test/java/org/springframework/cloud/bindings/BindingTest.java +++ b/src/test/java/org/springframework/cloud/bindings/BindingTest.java @@ -39,4 +39,17 @@ final class BindingTest { .isEqualTo(Paths.get("src/test/resources/test-name-1/secret/test-key")); } + @Test + @DisplayName("populates k8s style content from filesystem") + void testK8s() { + //When bindings are provided as a k8s configmap secret pairs data files will be symlinks to hidden directories + Binding binding = new Binding(Paths.get("src/test/resources/test-k8s")); + + assertThat(binding.getKind()).isEqualTo("test-kind-1"); + assertThat(binding.getProvider()).isEqualTo("test-provider-1"); + assertThat(binding.getMetadataFilePath("test-key")) + .isEqualTo(Paths.get("src/test/resources/test-k8s/metadata/test-key")); + assertThat(binding.getSecretFilePath("test-key")) + .isEqualTo(Paths.get("src/test/resources/test-k8s/secret/test-key")); + } } diff --git a/src/test/java/org/springframework/cloud/bindings/BindingsTests.java b/src/test/java/org/springframework/cloud/bindings/BindingsTests.java index 7e40eb5..67b943c 100644 --- a/src/test/java/org/springframework/cloud/bindings/BindingsTests.java +++ b/src/test/java/org/springframework/cloud/bindings/BindingsTests.java @@ -65,7 +65,7 @@ final class BindingsTests { String path = "src/test/resources"; Bindings b = new Bindings(path); - assertThat(b.getBindings()).hasSize(2); + assertThat(b.getBindings()).hasSize(3); } } @@ -102,5 +102,4 @@ final class BindingsTests { } } - } diff --git a/src/test/java/org/springframework/cloud/bindings/boot/BindingSpecificEnvironmentPostProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/boot/BindingSpecificEnvironmentPostProcessorTest.java index f1df2eb..3b36200 100644 --- a/src/test/java/org/springframework/cloud/bindings/boot/BindingSpecificEnvironmentPostProcessorTest.java +++ b/src/test/java/org/springframework/cloud/bindings/boot/BindingSpecificEnvironmentPostProcessorTest.java @@ -98,7 +98,7 @@ final class BindingSpecificEnvironmentPostProcessorTest { @Test @DisplayName("included implementations are registered") void includedImplementations() { - assertThat(new BindingSpecificEnvironmentPostProcessor().processors).hasSize(14); + assertThat(new BindingSpecificEnvironmentPostProcessor().processors).hasSize(15); } } diff --git a/src/test/resources/test-k8s/metadata/.hidden-data b/src/test/resources/test-k8s/metadata/.hidden-data new file mode 120000 index 0000000..b4901b5 --- /dev/null +++ b/src/test/resources/test-k8s/metadata/.hidden-data @@ -0,0 +1 @@ +.hidden-data-1 \ No newline at end of file diff --git a/src/test/resources/test-k8s/metadata/.hidden-data-1/.gitkeep b/src/test/resources/test-k8s/metadata/.hidden-data-1/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/test/resources/test-k8s/metadata/.hidden-data-1/kind b/src/test/resources/test-k8s/metadata/.hidden-data-1/kind new file mode 100644 index 0000000..d08f71b --- /dev/null +++ b/src/test/resources/test-k8s/metadata/.hidden-data-1/kind @@ -0,0 +1 @@ +test-kind-1 diff --git a/src/test/resources/test-k8s/metadata/.hidden-data-1/provider b/src/test/resources/test-k8s/metadata/.hidden-data-1/provider new file mode 100644 index 0000000..0036389 --- /dev/null +++ b/src/test/resources/test-k8s/metadata/.hidden-data-1/provider @@ -0,0 +1 @@ +test-provider-1 diff --git a/src/test/resources/test-k8s/metadata/kind b/src/test/resources/test-k8s/metadata/kind new file mode 120000 index 0000000..d90b3e5 --- /dev/null +++ b/src/test/resources/test-k8s/metadata/kind @@ -0,0 +1 @@ +.hidden-data/kind \ No newline at end of file diff --git a/src/test/resources/test-k8s/metadata/provider b/src/test/resources/test-k8s/metadata/provider new file mode 120000 index 0000000..7ba8004 --- /dev/null +++ b/src/test/resources/test-k8s/metadata/provider @@ -0,0 +1 @@ +.hidden-data/provider \ No newline at end of file diff --git a/src/test/resources/test-k8s/secret/.hidden-data b/src/test/resources/test-k8s/secret/.hidden-data new file mode 120000 index 0000000..b4901b5 --- /dev/null +++ b/src/test/resources/test-k8s/secret/.hidden-data @@ -0,0 +1 @@ +.hidden-data-1 \ No newline at end of file diff --git a/src/test/resources/test-k8s/secret/.hidden-data-1/.gitkeep b/src/test/resources/test-k8s/secret/.hidden-data-1/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/test/resources/test-k8s/secret/.hidden-data-1/test-key b/src/test/resources/test-k8s/secret/.hidden-data-1/test-key new file mode 100644 index 0000000..2278763 --- /dev/null +++ b/src/test/resources/test-k8s/secret/.hidden-data-1/test-key @@ -0,0 +1 @@ +test-value diff --git a/src/test/resources/test-k8s/secret/test-key b/src/test/resources/test-k8s/secret/test-key new file mode 120000 index 0000000..c8d4599 --- /dev/null +++ b/src/test/resources/test-k8s/secret/test-key @@ -0,0 +1 @@ +.hidden-data/test-key \ No newline at end of file