diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathEndpoint.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathEndpoint.java index b17c71a9..b4f0dfa5 100644 --- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathEndpoint.java +++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathEndpoint.java @@ -107,18 +107,17 @@ public class PropertyPathEndpoint implements ApplicationEventPublisherAware { if (path != null) { String stem = StringUtils.stripFilenameExtension(StringUtils.getFilename(StringUtils.cleanPath(path))); // TODO: correlate with service registry - int index = stem.indexOf("-"); - String name = stem; - if (index > 0) { - name = stem.substring(0, index); - } - // foo.properties is targeted at the foo application, - // while application.properties is targeted at all applications - if ("application".equals(name)) { - services.add("*"); - } - else { - services.add(name); + String name = stem + "-"; + int index; + // support application name with dashes + while ((index = name.lastIndexOf("-")) >= 0) { + name = name.substring(0, index); + if ("application".equals(name)) { + services.add("*"); + } + else { + services.add(name); + } } } return services; diff --git a/spring-cloud-config-monitor/src/test/java/org/springframework/cloud/config/monitor/PropertyPathEndpointTests.java b/spring-cloud-config-monitor/src/test/java/org/springframework/cloud/config/monitor/PropertyPathEndpointTests.java index 8ac55a7a..d1bccab5 100644 --- a/spring-cloud-config-monitor/src/test/java/org/springframework/cloud/config/monitor/PropertyPathEndpointTests.java +++ b/spring-cloud-config-monitor/src/test/java/org/springframework/cloud/config/monitor/PropertyPathEndpointTests.java @@ -72,7 +72,7 @@ public class PropertyPathEndpointTests { public void testNotifyAllWithProfile() { assertThat(this.endpoint .notifyByPath(new HttpHeaders(), Collections.singletonMap("path", "application-local.yml")).toString()) - .isEqualTo("[*]"); + .isEqualTo("[application-local, *]"); } @Test @@ -92,13 +92,13 @@ public class PropertyPathEndpointTests { @Test public void testNotifyOneWithProfile() { assertThat(this.endpoint.notifyByPath(new HttpHeaders(), Collections.singletonMap("path", "foo-local.yml")) - .toString()).isEqualTo("[foo]"); + .toString()).isEqualTo("[foo-local, foo]"); } @Test public void testNotifyMultiDash() { assertThat(this.endpoint.notifyByPath(new HttpHeaders(), Collections.singletonMap("path", "foo-local-dev.yml")) - .toString()).isEqualTo("[foo]"); + .toString()).isEqualTo("[foo-local-dev, foo-local, foo]"); } }