diff --git a/spring-cloud-zookeeper-config/pom.xml b/spring-cloud-zookeeper-config/pom.xml
index 514b9ce0..dfab1331 100644
--- a/spring-cloud-zookeeper-config/pom.xml
+++ b/spring-cloud-zookeeper-config/pom.xml
@@ -69,6 +69,13 @@
junit-vintage-engine
test
+
+ org.springframework.cloud
+ spring-cloud-zookeeper-core
+ ${project.version}
+ test-jar
+ test
+
org.apache.curator
curator-test
diff --git a/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperConfigAutoConfigurationTests.java b/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperConfigAutoConfigurationTests.java
index 7da3c213..15733a8a 100644
--- a/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperConfigAutoConfigurationTests.java
+++ b/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperConfigAutoConfigurationTests.java
@@ -29,6 +29,7 @@ import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.ConfigurableApplicationContext;
/**
@@ -52,9 +53,9 @@ public class ZookeeperConfigAutoConfigurationTests {
}
@Test(expected = NoSuchBeanDefinitionException.class)
- public void testConfigEnabledFalseDoesNotLoadZookeeperConfigAutoConfiguration()
- throws Exception {
+ public void testConfigEnabledFalseDoesNotLoadZookeeperConfigAutoConfiguration() {
ConfigurableApplicationContext context = new SpringApplicationBuilder()
+ .listeners(new ZookeeperTestingServer())
.sources(Config.class).web(WebApplicationType.NONE)
.run("--spring.application.name=testZookeeperConfigEnabledSetToFalse",
"--spring.config.use-legacy-processing=true",
@@ -76,6 +77,7 @@ public class ZookeeperConfigAutoConfigurationTests {
expectedException.expectCause(Matchers.isA(KeeperException.class));
new SpringApplicationBuilder().sources(Config.class).web(WebApplicationType.NONE)
+ .listeners(new ZookeeperTestingServer())
.run("--spring.application.name=testZookeeperConfigEnabledSetToTrue",
"--spring.config.use-legacy-processing=true",
"--spring.jmx.default-domain=testZookeeperConfigEnabledSetToTrue",
diff --git a/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperPropertySourceLocatorTests.java b/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperPropertySourceLocatorTests.java
index c68862d1..9879a008 100644
--- a/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperPropertySourceLocatorTests.java
+++ b/spring-cloud-zookeeper-config/src/test/java/org/springframework/cloud/zookeeper/config/ZookeeperPropertySourceLocatorTests.java
@@ -26,7 +26,6 @@ import org.apache.commons.logging.LogFactory;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryOneTime;
-import org.apache.curator.test.TestingServer;
import org.apache.zookeeper.KeeperException;
import org.junit.After;
import org.junit.Before;
@@ -39,12 +38,12 @@ import org.springframework.cloud.context.environment.EnvironmentChangeEvent;
import org.springframework.cloud.context.refresh.ContextRefresher;
import org.springframework.cloud.context.refresh.LegacyContextRefresher;
import org.springframework.cloud.context.scope.refresh.RefreshScope;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.ApplicationListener;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -88,7 +87,7 @@ public class ZookeeperPropertySourceLocatorTests {
private ConfigurableApplicationContext context;
- private TestingServer testingServer;
+ private ZookeeperTestingServer testingServer;
private CuratorFramework curator;
@@ -96,9 +95,9 @@ public class ZookeeperPropertySourceLocatorTests {
@Before
public void setup() throws Exception {
- int port = SocketUtils.findAvailableTcpPort();
- this.testingServer = new TestingServer(port);
- String connectString = "localhost:" + port;
+ this.testingServer = new ZookeeperTestingServer();
+ testingServer.start();
+ String connectString = "localhost:" + testingServer.getPort();
this.curator = CuratorFrameworkFactory.builder()
.retryPolicy(new RetryOneTime(500)).connectString(connectString).build();
this.curator.start();
diff --git a/spring-cloud-zookeeper-core/pom.xml b/spring-cloud-zookeeper-core/pom.xml
index c1689265..75503e37 100644
--- a/spring-cloud-zookeeper-core/pom.xml
+++ b/spring-cloud-zookeeper-core/pom.xml
@@ -22,6 +22,18 @@
org.apache.maven.plugins
maven-compiler-plugin
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.2.0
+
+
+
+ test-jar
+
+
+
+
diff --git a/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfigurationTests.java b/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfigurationTests.java
index ec923a1e..b11de7e0 100644
--- a/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfigurationTests.java
+++ b/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfigurationTests.java
@@ -30,6 +30,7 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
import org.springframework.core.annotation.Order;
import org.springframework.test.annotation.DirtiesContext;
@@ -47,7 +48,7 @@ import static org.mockito.Mockito.mock;
public class ZookeeperAutoConfigurationTests {
@RunWith(SpringRunner.class)
- @ContextConfiguration(
+ @ContextConfiguration(loader = ZookeeperTestingServer.Loader.class,
classes = { BaseTestConfig.class, ZookeeperAutoConfiguration.class })
public static class BaseTests {
@@ -78,7 +79,7 @@ public class ZookeeperAutoConfigurationTests {
}
@RunWith(SpringRunner.class)
- @ContextConfiguration(
+ @ContextConfiguration(loader = ZookeeperTestingServer.Loader.class,
classes = { EnsembleTestConfig.class, ZookeeperAutoConfiguration.class })
public static class EnsembleTests {
@@ -122,7 +123,8 @@ public class ZookeeperAutoConfigurationTests {
}
@RunWith(SpringRunner.class)
- @ContextConfiguration(classes = { BaseTestConfig.class,
+ @ContextConfiguration(loader = ZookeeperTestingServer.Loader.class,
+ classes = { BaseTestConfig.class,
ZookeeperAutoConfiguration.class, CuratorFrameworkCustomizerConfig.class })
@DirtiesContext
public static class CuratorFrameworkCustomizerTest {
@@ -162,7 +164,8 @@ public class ZookeeperAutoConfigurationTests {
}
@RunWith(SpringRunner.class)
- @ContextConfiguration(classes = { BaseTestConfig.class, TracerDriverTestConfig.class,
+ @ContextConfiguration(loader = ZookeeperTestingServer.Loader.class,
+ classes = { BaseTestConfig.class, TracerDriverTestConfig.class,
ZookeeperAutoConfiguration.class })
public static class TracerDriverTests {
diff --git a/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperHealthAutoConfigurationTests.java b/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperHealthAutoConfigurationTests.java
index 2c58af0d..059c1ffb 100644
--- a/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperHealthAutoConfigurationTests.java
+++ b/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/ZookeeperHealthAutoConfigurationTests.java
@@ -22,6 +22,7 @@ import org.junit.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
/**
@@ -33,6 +34,7 @@ import org.springframework.context.annotation.Bean;
public class ZookeeperHealthAutoConfigurationTests {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
+ .withInitializer(new ZookeeperTestingServer.Initializer())
.withConfiguration(AutoConfigurations.of(ZookeeperAutoConfiguration.class,
ZookeeperHealthAutoConfiguration.class))
.withUserConfiguration(ZookeeperAutoConfigurationTests.BaseTestConfig.class);
diff --git a/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/test/ZookeeperTestingServer.java b/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/test/ZookeeperTestingServer.java
new file mode 100644
index 00000000..7fea6f61
--- /dev/null
+++ b/spring-cloud-zookeeper-core/src/test/java/org/springframework/cloud/zookeeper/test/ZookeeperTestingServer.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2015-2020 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.zookeeper.test;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.curator.test.TestingServer;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
+import org.springframework.boot.context.event.ApplicationPreparedEvent;
+import org.springframework.boot.test.context.SpringBootContextLoader;
+import org.springframework.cloud.zookeeper.ZookeeperProperties;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ApplicationEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.event.ContextClosedEvent;
+import org.springframework.context.event.SmartApplicationListener;
+import org.springframework.core.Ordered;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.MutablePropertySources;
+import org.springframework.util.Assert;
+import org.springframework.util.ReflectionUtils;
+
+public class ZookeeperTestingServer implements SmartApplicationListener, Ordered {
+
+ private final Log log = LogFactory.getLog(getClass());
+
+ private AtomicBoolean started = new AtomicBoolean();
+
+ private TestingServer testingServer;
+
+ @Override
+ public int getOrder() {
+ return Ordered.HIGHEST_PRECEDENCE;
+ }
+
+ public int getPort() {
+ Assert.notNull(testingServer, "testingServer not started");
+ return testingServer.getPort();
+ }
+
+ @Override
+ public boolean supportsEventType(Class extends ApplicationEvent> eventType) {
+ return ApplicationEnvironmentPreparedEvent.class.isAssignableFrom(eventType)
+ || ApplicationPreparedEvent.class.isAssignableFrom(eventType);
+ }
+
+ @Override
+ public void onApplicationEvent(ApplicationEvent event) {
+ if (event instanceof ApplicationEnvironmentPreparedEvent) {
+ envPrepared(((ApplicationEnvironmentPreparedEvent) event).getEnvironment());
+ }
+ else if (event instanceof ApplicationPreparedEvent) {
+ appPrepared(((ApplicationPreparedEvent) event).getApplicationContext());
+ }
+ }
+
+ public void envPrepared(ConfigurableEnvironment environment) {
+ MutablePropertySources sources = environment.getPropertySources();
+
+ start();
+
+ if (!sources.contains("zookeeperTestingServer")) {
+ HashMap map = new HashMap<>();
+ map.put(ZookeeperProperties.PREFIX + ".connect-string", "localhost:" + testingServer.getPort());
+
+ sources.addFirst(new MapPropertySource("zookeeperTestingServer", map));
+ }
+
+ }
+
+ public void start() {
+ if (started.compareAndSet(false, true)) {
+ try {
+ testingServer = new TestingServer();
+ }
+ catch (Exception e) {
+ ReflectionUtils.rethrowRuntimeException(e);
+ }
+ log.debug("Starting TestingServer on port " + testingServer.getPort());
+ }
+ }
+
+ public void appPrepared(ConfigurableApplicationContext context) {
+ context.addApplicationListener(new CloseListener(this));
+ }
+
+ public void close() {
+ try {
+ if (started.compareAndSet(true, false)) {
+ log.debug("Closing TestingServer on port " + testingServer.getPort());
+ testingServer.close();
+ }
+ }
+ catch (IOException ex) {
+ ReflectionUtils.rethrowRuntimeException(ex);
+ }
+ }
+
+ static class CloseListener implements ApplicationListener, Ordered {
+
+ private final ZookeeperTestingServer testingServer;
+
+ CloseListener(ZookeeperTestingServer testingServer) {
+ this.testingServer = testingServer;
+ }
+
+ @Override
+ public void onApplicationEvent(ContextClosedEvent event) {
+ testingServer.close();
+ }
+
+ @Override
+ public int getOrder() {
+ return Ordered.LOWEST_PRECEDENCE;
+ }
+ }
+
+ public static class Loader extends SpringBootContextLoader {
+
+ @Override
+ protected SpringApplication getSpringApplication() {
+ SpringApplication application = super.getSpringApplication();
+ ZookeeperTestingServer testingServer = new ZookeeperTestingServer();
+ application.addListeners(testingServer);
+ application.addListeners(new CloseListener(testingServer));
+ return application;
+ }
+
+ }
+
+ public static class Initializer implements ApplicationContextInitializer {
+
+ @Override
+ public void initialize(ConfigurableApplicationContext context) {
+ ZookeeperTestingServer testingServer = new ZookeeperTestingServer();
+ testingServer.envPrepared(context.getEnvironment());
+ testingServer.appPrepared(context);
+ }
+
+ }
+
+}
diff --git a/spring-cloud-zookeeper-discovery/pom.xml b/spring-cloud-zookeeper-discovery/pom.xml
index 094b6020..a81dd6f8 100644
--- a/spring-cloud-zookeeper-discovery/pom.xml
+++ b/spring-cloud-zookeeper-discovery/pom.xml
@@ -118,6 +118,13 @@
spring-cloud-test-support
test
+
+ org.springframework.cloud
+ spring-cloud-zookeeper-core
+ ${project.version}
+ test-jar
+ test
+
org.apache.curator
curator-test
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoRegistrationFalseTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoRegistrationFalseTests.java
index 8d9772ec..fce39137 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoRegistrationFalseTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoRegistrationFalseTests.java
@@ -30,9 +30,11 @@ import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.BDDAssertions.then;
@@ -46,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@SpringBootTest(classes = ZookeeperDiscoveryAutoRegistrationFalseTests.Config.class, properties = {
"spring.application.name=testzkautoregfalse",
"debug=true" }, webEnvironment = RANDOM_PORT)
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
@DirtiesContext
public class ZookeeperDiscoveryAutoRegistrationFalseTests {
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryDisabledTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryDisabledTests.java
index 63db860b..07c0487f 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryDisabledTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryDisabledTests.java
@@ -17,7 +17,6 @@
package org.springframework.cloud.zookeeper.discovery;
import org.apache.curator.framework.CuratorFramework;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -25,9 +24,11 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
/**
@@ -37,12 +38,11 @@ import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = ZookeeperDiscoveryDisabledTests.SomeApp.class,
webEnvironment = WebEnvironment.RANDOM_PORT, properties = {
"spring.cloud.zookeeper.discovery.enabled=false", "debug=true" })
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperDiscoveryDisabledTests {
@Test
- @Ignore // FIXME 2.0.0 error creating zookeeperHealthIndicator, CuratorFramework not
- // found, but report says it is
- public void should_start_the_context_with_discovery_disabled() throws Exception {
+ public void should_start_the_context_with_discovery_disabled() {
}
@Configuration
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java
index 51a3e4dc..800d6516 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java
@@ -24,7 +24,9 @@ import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.BDDAssertions.then;
@@ -34,7 +36,9 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
* @author Spencer Gibb
*/
@RunWith(SpringRunner.class)
-@SpringBootTest(webEnvironment = RANDOM_PORT, properties = "management.health.zookeeper.enabled=false")
+@SpringBootTest(webEnvironment = RANDOM_PORT, properties = { "management.health.zookeeper.enabled=false",
+ "spring.cloud.service-registry.auto-registration.enabled=false" })
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperDiscoveryHealthIndicatorDisabledTests {
@Autowired(required = false)
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests.java
index 9c58de61..0a4690a5 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests.java
@@ -37,11 +37,13 @@ import org.springframework.cloud.zookeeper.discovery.test.TestLoadBalancedClient
import org.springframework.cloud.zookeeper.serviceregistry.ServiceInstanceRegistration;
import org.springframework.cloud.zookeeper.serviceregistry.ZookeeperRegistration;
import org.springframework.cloud.zookeeper.serviceregistry.ZookeeperServiceRegistry;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;
@@ -56,10 +58,10 @@ import static org.springframework.cloud.zookeeper.discovery.test.TestLoadBalance
@SpringBootTest(classes = ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests.Config.class,
properties = "management.endpoints.web.exposure.include=*", webEnvironment = RANDOM_PORT)
@ActiveProfiles("nestedstructure")
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests {
- private static final Log log = LogFactory
- .getLog(MethodHandles.lookup().lookupClass());
+ private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass());
@Autowired
TestLoadBalancedClient testLoadBalancedClient;
@@ -76,8 +78,7 @@ public class ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests {
// then:
log.info("Received response [" + response + "]");
then(this.curatorFramework.getChildren().forPath("/services/me")).isNotEmpty();
- then(this.curatorFramework.getChildren()
- .forPath("/services/a/b/c/d/anotherservice")).isNotEmpty();
+ then(this.curatorFramework.getChildren().forPath("/services/a/b/c/d/anotherservice")).isNotEmpty();
}
@Configuration
@@ -94,9 +95,8 @@ public class ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests {
@PostConstruct
void registerNestedDependency() {
try {
- this.registration = ServiceInstanceRegistration.builder().defaultUriSpec()
- .address("anyUrl").port(10).name("/a/b/c/d/anotherservice")
- .build();
+ this.registration = ServiceInstanceRegistration.builder().defaultUriSpec().address("anyUrl").port(10)
+ .name("/a/b/c/d/anotherservice").build();
this.serviceRegistry.register(registration);
}
catch (Exception e) {
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesIntegrationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesIntegrationTests.java
new file mode 100644
index 00000000..7c51a3cc
--- /dev/null
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesIntegrationTests.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2015-2019 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.zookeeper.discovery;
+
+
+import org.junit.jupiter.api.Test;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ContextConfiguration;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * @author wmz7year
+ */
+@SpringBootTest(properties = { "spring.application.name=testZookeeperDiscovery",
+ "spring.cloud.service-registry.auto-registration.enabled=false",
+ "spring.cloud.zookeeper.discovery.instance-id=zkpropstestid-123",
+ "spring.cloud.zookeeper.discovery.preferIpAddress=true",
+ "spring.cloud.zookeeper.discovery.instanceIpAddress=1.1.1.1" },
+ classes = ZookeeperDiscoveryPropertiesIntegrationTests.Config.class,
+ webEnvironment = WebEnvironment.RANDOM_PORT)
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
+public class ZookeeperDiscoveryPropertiesIntegrationTests {
+
+ @Autowired
+ private ZookeeperDiscoveryProperties discoveryProperties;
+
+ @Test
+ public void testPreferIpAddress() {
+ assertThat(this.discoveryProperties.getInstanceId())
+ .isEqualTo("zkpropstestid-123");
+ assertThat(this.discoveryProperties.getInstanceHost()).isEqualTo("1.1.1.1");
+ }
+
+ @Configuration
+ @EnableAutoConfiguration
+ @Import(CommonTestConfig.class)
+ static class Config {
+
+ }
+
+}
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTest.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTest.java
deleted file mode 100644
index aeb5c696..00000000
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2015-2019 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.cloud.zookeeper.discovery;
-
-import java.util.Arrays;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import org.springframework.cloud.commons.util.InetUtils;
-import org.springframework.cloud.commons.util.InetUtilsProperties;
-
-import static org.assertj.core.api.BDDAssertions.then;
-
-@RunWith(Parameterized.class)
-public class ZookeeperDiscoveryPropertiesTest {
-
- private String root;
-
- public ZookeeperDiscoveryPropertiesTest(String root) {
- this.root = root;
- }
-
- @Parameterized.Parameters(name = "With root {0}")
- public static Iterable rootVariations() {
- return Arrays.asList("es", "es/", "/es");
- }
-
- @Test
- public void should_escape_root() {
- // given:
- ZookeeperDiscoveryProperties zookeeperDiscoveryProperties = new ZookeeperDiscoveryProperties(
- new InetUtils(new InetUtilsProperties()));
- // when:
- zookeeperDiscoveryProperties.setRoot(root);
- // then:
- then(zookeeperDiscoveryProperties.getRoot()).isEqualTo("/es");
- }
-
-}
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTests.java
index 567ed0f5..f45be911 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryPropertiesTests.java
@@ -16,47 +16,40 @@
package org.springframework.cloud.zookeeper.discovery;
+import java.util.Arrays;
+
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.cloud.commons.util.InetUtils;
+import org.springframework.cloud.commons.util.InetUtilsProperties;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.BDDAssertions.then;
-/**
- * @author wmz7year
- */
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(properties = { "pring.application.name=testZookeeperDiscovery",
- "spring.cloud.zookeeper.discovery.instance-id=zkpropstestid-123",
- "spring.cloud.zookeeper.discovery.preferIpAddress=true",
- "spring.cloud.zookeeper.discovery.instanceIpAddress=1.1.1.1" },
- classes = ZookeeperDiscoveryPropertiesTests.Config.class,
- webEnvironment = WebEnvironment.RANDOM_PORT)
+@RunWith(Parameterized.class)
public class ZookeeperDiscoveryPropertiesTests {
- @Autowired
- private ZookeeperDiscoveryProperties discoveryProperties;
+ private String root;
- @Test
- public void testPreferIpAddress() {
- assertThat(this.discoveryProperties.getInstanceId())
- .isEqualTo("zkpropstestid-123");
- assertThat(this.discoveryProperties.getInstanceHost()).isEqualTo("1.1.1.1");
+ public ZookeeperDiscoveryPropertiesTests(String root) {
+ this.root = root;
}
- @Configuration
- @EnableAutoConfiguration
- @Import(CommonTestConfig.class)
- static class Config {
+ @Parameterized.Parameters(name = "With root {0}")
+ public static Iterable rootVariations() {
+ return Arrays.asList("es", "es/", "/es");
+ }
+ @Test
+ public void should_escape_root() {
+ // given:
+ ZookeeperDiscoveryProperties zookeeperDiscoveryProperties = new ZookeeperDiscoveryProperties(
+ new InetUtils(new InetUtilsProperties()));
+ // when:
+ zookeeperDiscoveryProperties.setRoot(root);
+ // then:
+ then(zookeeperDiscoveryProperties.getRoot()).isEqualTo("/es");
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoverySecurePortTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoverySecurePortTests.java
index 8d62d2e3..90d0c97d 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoverySecurePortTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoverySecurePortTests.java
@@ -27,11 +27,13 @@ import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
import org.springframework.cloud.zookeeper.serviceregistry.ZookeeperRegistration;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.BDDAssertions.then;
@@ -47,6 +49,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.zookeeper.discovery.instance-ssl-port=8443" }, webEnvironment = RANDOM_PORT)
@ActiveProfiles("loadbalancer")
@DirtiesContext
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperDiscoverySecurePortTests {
@Autowired
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryTests.java
index e98176d5..d9b77884 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryTests.java
@@ -36,6 +36,7 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
import org.springframework.cloud.zookeeper.discovery.test.TestLoadBalancedClient;
import org.springframework.cloud.zookeeper.serviceregistry.ServiceInstanceRegistration;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -43,6 +44,7 @@ import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Controller;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -63,6 +65,7 @@ import static org.springframework.cloud.zookeeper.discovery.test.TestLoadBalance
"management.endpoints.web.exposure.include=*" }, webEnvironment = RANDOM_PORT)
@ActiveProfiles("loadbalancer")
@DirtiesContext
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperDiscoveryTests {
@Autowired
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java
index a6e937bc..ec89e971 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java
@@ -26,8 +26,10 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +43,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.application.name=myTestNotRegisteredService",
"spring.cloud.zookeeper.discovery.register=false",
"spring.cloud.zookeeper.dependency.enabled=false" }, webEnvironment = RANDOM_PORT)
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperLifecycleRegistrationDisabledTests {
@Autowired
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java
index f6ec9578..660fbd26 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java
@@ -32,9 +32,11 @@ import org.springframework.cloud.config.client.DiscoveryClientConfigServiceBoots
import org.springframework.cloud.test.ClassPathExclusions;
import org.springframework.cloud.test.ModifiedClassPathRunner;
import org.springframework.cloud.zookeeper.ZookeeperAutoConfiguration;
+import org.springframework.cloud.zookeeper.ZookeeperProperties;
import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryClient;
import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryClientConfiguration;
import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryProperties;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -70,32 +72,29 @@ public class DiscoveryClientConfigServiceAutoConfigurationTests {
"spring.cloud.zookeeper.discovery.instance-port:7001",
"spring.cloud.zookeeper.discovery.instance-host:foo",
"spring.cloud.config.discovery.service-id:configserver");
- assertThat(this.context
- .getBeanNamesForType(ZookeeperConfigServerAutoConfiguration.class).length)
- .isEqualTo(1);
- ZookeeperDiscoveryClient client = this.context.getParent()
- .getBean(ZookeeperDiscoveryClient.class);
+ assertThat(this.context.getBeanNamesForType(ZookeeperConfigServerAutoConfiguration.class).length).isEqualTo(1);
+ ZookeeperDiscoveryClient client = this.context.getParent().getBean(ZookeeperDiscoveryClient.class);
verify(client, atLeast(2)).getInstances("configserver");
- ConfigClientProperties locator = this.context
- .getBean(ConfigClientProperties.class);
+ ConfigClientProperties locator = this.context.getBean(ConfigClientProperties.class);
assertThat(locator.getUri()[0]).isEqualTo("http://foo:7001/");
}
private void setup(String... env) {
+ ZookeeperTestingServer testingServer = new ZookeeperTestingServer();
+ testingServer.start();
AnnotationConfigApplicationContext parent = new AnnotationConfigApplicationContext();
TestPropertyValues.of(env).applyTo(parent);
- parent.register(UtilAutoConfiguration.class,
- PropertyPlaceholderAutoConfiguration.class, EnvironmentKnobbler.class,
- ZookeeperDiscoveryClientConfigServiceBootstrapConfiguration.class,
- DiscoveryClientConfigServiceBootstrapConfiguration.class,
- ConfigClientProperties.class);
+ TestPropertyValues.of(ZookeeperProperties.PREFIX + ".connect-string=localhost:" + testingServer.getPort())
+ .applyTo(parent);
+ parent.register(UtilAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class,
+ EnvironmentKnobbler.class, ZookeeperDiscoveryClientConfigServiceBootstrapConfiguration.class,
+ DiscoveryClientConfigServiceBootstrapConfiguration.class, ConfigClientProperties.class);
+ testingServer.appPrepared(parent);
parent.refresh();
this.context = new AnnotationConfigApplicationContext();
this.context.setParent(parent);
- this.context.register(PropertyPlaceholderAutoConfiguration.class,
- ZookeeperConfigServerAutoConfiguration.class,
- ZookeeperAutoConfiguration.class,
- ZookeeperDiscoveryClientConfiguration.class);
+ this.context.register(PropertyPlaceholderAutoConfiguration.class, ZookeeperConfigServerAutoConfiguration.class,
+ ZookeeperAutoConfiguration.class, ZookeeperDiscoveryClientConfiguration.class);
this.context.refresh();
}
@@ -103,14 +102,11 @@ public class DiscoveryClientConfigServiceAutoConfigurationTests {
protected static class EnvironmentKnobbler {
@Bean
- public ZookeeperDiscoveryClient zookeeperDiscoveryClient(
- ZookeeperDiscoveryProperties properties) {
+ public ZookeeperDiscoveryClient zookeeperDiscoveryClient(ZookeeperDiscoveryProperties properties) {
ZookeeperDiscoveryClient client = mock(ZookeeperDiscoveryClient.class);
- ServiceInstance instance = new DefaultServiceInstance("configserver1",
- "configserver", properties.getInstanceHost(),
- properties.getInstancePort(), false);
- given(client.getInstances("configserver"))
- .willReturn(Arrays.asList(instance));
+ ServiceInstance instance = new DefaultServiceInstance("configserver1", "configserver",
+ properties.getInstanceHost(), properties.getInstancePort(), false);
+ given(client.getInstances("configserver")).willReturn(Arrays.asList(instance));
return client;
}
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/ZookeeperConfigServerAutoConfigurationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/ZookeeperConfigServerAutoConfigurationTests.java
index dbb5d1f8..fa48ccbd 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/ZookeeperConfigServerAutoConfigurationTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/configclient/ZookeeperConfigServerAutoConfigurationTests.java
@@ -24,6 +24,7 @@ import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoCon
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.config.ConfigServerProperties;
import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryProperties;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@@ -68,6 +69,7 @@ public class ZookeeperConfigServerAutoConfigurationTests {
PropertyPlaceholderAutoConfiguration.class,
ZookeeperConfigServerAutoConfiguration.class,
ConfigServerProperties.class, ZookeeperDiscoveryProperties.class)
+ .listeners(new ZookeeperTestingServer())
.web(WebApplicationType.NONE).properties(env).run();
}
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDependenciesIntegrationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDependenciesIntegrationTests.java
index bbe66dad..97aaf40a 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDependenciesIntegrationTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDependenciesIntegrationTests.java
@@ -28,10 +28,12 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.zookeeper.discovery.test.TestLoadBalancedClient;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static com.jayway.awaitility.Awaitility.await;
@@ -47,6 +49,7 @@ import static org.springframework.cloud.zookeeper.discovery.test.TestLoadBalance
"debug=true",
"management.endpoints.web.exposure.include=*"}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("dependencies")
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperDiscoveryWithDependenciesIntegrationTests {
@Autowired
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/reactive/ZookeeperReactiveDiscoveryClientConfigurationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/reactive/ZookeeperReactiveDiscoveryClientConfigurationTests.java
index 6fe87ca6..39eb0709 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/reactive/ZookeeperReactiveDiscoveryClientConfigurationTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/reactive/ZookeeperReactiveDiscoveryClientConfigurationTests.java
@@ -29,6 +29,7 @@ import org.springframework.cloud.client.discovery.health.reactive.ReactiveDiscov
import org.springframework.cloud.commons.util.UtilAutoConfiguration;
import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryAutoConfiguration;
import org.springframework.cloud.zookeeper.support.CuratorServiceDiscoveryAutoConfiguration;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
import static org.assertj.core.api.Assertions.assertThat;
@@ -40,6 +41,7 @@ import static org.mockito.Mockito.mock;
class ZookeeperReactiveDiscoveryClientConfigurationTests {
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
+ .withInitializer(new ZookeeperTestingServer.Initializer())
.withConfiguration(
AutoConfigurations.of(UtilAutoConfiguration.class,
ReactiveCommonsClientAutoConfiguration.class,
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java
index da244fd7..635b6fbb 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java
@@ -19,10 +19,6 @@ package org.springframework.cloud.zookeeper.discovery.watcher;
import java.util.concurrent.Callable;
import com.jayway.awaitility.Awaitility;
-import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.curator.test.TestingServer;
import org.apache.curator.x.discovery.ServiceCache;
import org.junit.Ignore;
import org.junit.Test;
@@ -36,13 +32,14 @@ import org.springframework.cloud.zookeeper.discovery.watcher.presence.Dependency
import org.springframework.cloud.zookeeper.discovery.watcher.presence.LogMissingDependencyChecker;
import org.springframework.cloud.zookeeper.serviceregistry.ZookeeperRegistration;
import org.springframework.cloud.zookeeper.serviceregistry.ZookeeperServiceRegistry;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.util.SocketUtils;
import org.springframework.web.client.RestTemplate;
import static org.assertj.core.api.BDDAssertions.then;
@@ -53,6 +50,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DefaultDependencyWatcherSpringTests.Config.class, webEnvironment = RANDOM_PORT)
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
@ActiveProfiles("watcher")
public class DefaultDependencyWatcherSpringTests {
@@ -107,19 +105,6 @@ public class DefaultDependencyWatcherSpringTests {
return new PropertySourcesPlaceholderConfigurer();
}
- @Bean(destroyMethod = "close")
- TestingServer testingServer() throws Exception {
- return new TestingServer(SocketUtils.findAvailableTcpPort());
- }
-
- @Bean(initMethod = "start", destroyMethod = "close")
- CuratorFramework curatorFramework() throws Exception {
- CuratorFramework curatorFramework = CuratorFrameworkFactory.newClient(
- testingServer().getConnectString(),
- new ExponentialBackoffRetry(20, 20, 500));
- return curatorFramework;
- }
-
@Bean
DependencyWatcherListener dependencyWatcherListener() {
return new AssertableDependencyWatcherListener();
diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java
index b87df39c..1ff96cb1 100644
--- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java
+++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java
@@ -31,7 +31,9 @@ import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryPropertie
import org.springframework.cloud.zookeeper.discovery.ZookeeperInstance;
import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig;
import org.springframework.cloud.zookeeper.support.StatusConstants;
+import org.springframework.cloud.zookeeper.test.ZookeeperTestingServer;
import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -45,6 +47,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.application.name=myTestService1-F",
"spring.cloud.zookeeper.discovery.initial-status=OUT_OF_SERVICE"
}, webEnvironment = RANDOM_PORT)
+@ContextConfiguration(loader = ZookeeperTestingServer.Loader.class)
public class ZookeeperAutoServiceRegistrationTests {
@Autowired