diff --git a/pom.xml b/pom.xml
index e79b897..729255c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
pom
spring-boot-extensions-parent
@@ -35,10 +35,12 @@
UTF-8
UTF-8
3.7.0
- 1.8
+ 1.8
5.5.0
- 5.5.0
- 1.5.0
+ 5.9.0
+ 1.9.0
+ 1.17.5
+ 5.12.1
@@ -75,7 +77,7 @@
org.springframework.boot
spring-boot-starter-parent
- [2.0.0.RELEASE,2.3.0.RELEASE]
+ 2.7.4
@@ -122,11 +124,6 @@
junit-platform-launcher
${junit-platform.version}
-
- org.junit.vintage
- junit-vintage-engine
- ${junit.vintage.version}
-
org.junit.jupiter
junit-jupiter-params
@@ -193,7 +190,7 @@
-
+
org.apache.maven.plugins
@@ -230,7 +227,7 @@
org.apache.maven.plugins
maven-surefire-plugin
2.22.2
-
+
plain
diff --git a/spring-test-activemq/pom.xml b/spring-test-activemq/pom.xml
index a3e3268..fa3edff 100644
--- a/spring-test-activemq/pom.xml
+++ b/spring-test-activemq/pom.xml
@@ -6,7 +6,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-activemq
@@ -20,7 +20,7 @@
UTF-8
UTF-8
1.8
- 1.11.4
+ 4.2.0
@@ -49,16 +49,21 @@
org.testcontainers
testcontainers
- ${test.containers.version}
+ ${testcontainers.version}
compile
+
+ net.java.dev.jna
+ jna
+ ${jna.version}
+
org.awaitility
awaitility
- 3.1.0
+ ${awaitility.version}
diff --git a/spring-test-activemq/src/main/java/com/jupiter/tools/spring/test/activemq/extension/ActiveMqTcExtension.java b/spring-test-activemq/src/main/java/com/jupiter/tools/spring/test/activemq/extension/ActiveMqTcExtension.java
index 4fd5c6e..383072f 100644
--- a/spring-test-activemq/src/main/java/com/jupiter/tools/spring/test/activemq/extension/ActiveMqTcExtension.java
+++ b/spring-test-activemq/src/main/java/com/jupiter/tools/spring/test/activemq/extension/ActiveMqTcExtension.java
@@ -11,15 +11,15 @@
public class ActiveMqTcExtension implements Extension {
private static final Integer MQ_PORT = 61616;
- private static GenericContainer activemq =
+ private static final GenericContainer activemq =
new GenericContainer("rmohr/activemq:latest").withExposedPorts(MQ_PORT);
static {
-
+ activemq.withReuse(true);
activemq.start();
String brokerUrl = String.format("tcp://%s:%s",
- activemq.getContainerIpAddress(),
+ activemq.getHost(),
activemq.getMappedPort(MQ_PORT));
System.setProperty("spring.activemq.broker-url", brokerUrl);
diff --git a/spring-test-core/pom.xml b/spring-test-core/pom.xml
index a8e6d7f..46590bc 100644
--- a/spring-test-core/pom.xml
+++ b/spring-test-core/pom.xml
@@ -6,7 +6,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-core
@@ -20,16 +20,15 @@
UTF-8
UTF-8
1.8
- 2.11.0
- ${jackson.version}
- ${jackson.version}
+ 2.13.4
+ 2.11.0
commons-io
commons-io
- 2.4
+ ${commons-io.version}
com.fasterxml.jackson.core
diff --git a/spring-test-core/src/main/java/com/jupiter/tools/spring/test/core/annotation/EnableIntegrationTest.java b/spring-test-core/src/main/java/com/jupiter/tools/spring/test/core/annotation/EnableIntegrationTest.java
old mode 100755
new mode 100644
index 5d71e80..a35e086
--- a/spring-test-core/src/main/java/com/jupiter/tools/spring/test/core/annotation/EnableIntegrationTest.java
+++ b/spring-test-core/src/main/java/com/jupiter/tools/spring/test/core/annotation/EnableIntegrationTest.java
@@ -1,8 +1,6 @@
package com.jupiter.tools.spring.test.core.annotation;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -19,6 +17,5 @@
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@SpringBootTest
-@ExtendWith(SpringExtension.class)
public @interface EnableIntegrationTest {
}
diff --git a/spring-test-jpa/pom.xml b/spring-test-jpa/pom.xml
index ea1ce42..d8c4124 100644
--- a/spring-test-jpa/pom.xml
+++ b/spring-test-jpa/pom.xml
@@ -6,7 +6,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-jpa
@@ -20,6 +20,7 @@
UTF-8
UTF-8
1.8
+ 1.34.0
@@ -54,18 +55,7 @@
com.github.database-rider
rider-spring
- 1.7.2
- compile
-
-
- org.slf4j
- slf4j-api
-
-
- org.slf4j
- slf4j-simple
-
-
+ ${rider-spring.version}
diff --git a/spring-test-mysql/pom.xml b/spring-test-mysql/pom.xml
index f116b9f..dbf6e64 100644
--- a/spring-test-mysql/pom.xml
+++ b/spring-test-mysql/pom.xml
@@ -6,7 +6,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-mysql
@@ -20,6 +20,7 @@
UTF-8
UTF-8
1.8
+ 8.0.30
@@ -38,16 +39,21 @@
org.testcontainers
mysql
- 1.11.4
+ ${testcontainers.version}
compile
+
+ net.java.dev.jna
+ jna
+ ${jna.version}
+
mysql
mysql-connector-java
- 5.1.47
+ ${mysql-connector-java.version}
provided
diff --git a/spring-test-mysql/src/main/java/com/jupiter/tools/spring/test/mysql/extension/MySqlTcExtension.java b/spring-test-mysql/src/main/java/com/jupiter/tools/spring/test/mysql/extension/MySqlTcExtension.java
index 0b0f3c5..4a6ec39 100644
--- a/spring-test-mysql/src/main/java/com/jupiter/tools/spring/test/mysql/extension/MySqlTcExtension.java
+++ b/spring-test-mysql/src/main/java/com/jupiter/tools/spring/test/mysql/extension/MySqlTcExtension.java
@@ -14,7 +14,8 @@ public class MySqlTcExtension implements Extension {
static {
System.out.println("Start MySql testcontainers extension...\n");
- MySQLContainer mysql = new MySQLContainer();
+ MySQLContainer mysql = new MySQLContainer("mysql:8.0.30");
+ mysql.withReuse(true);
mysql.start();
System.setProperty("spring.datasource.driver-class-name", mysql.getDriverClassName());
diff --git a/spring-test-postgres/pom.xml b/spring-test-postgres/pom.xml
index 923c620..156b60f 100644
--- a/spring-test-postgres/pom.xml
+++ b/spring-test-postgres/pom.xml
@@ -6,7 +6,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-postgres
@@ -40,8 +40,12 @@
org.testcontainers
postgresql
- 1.11.4
- compile
+ ${testcontainers.version}
+
+
+ net.java.dev.jna
+ jna
+ ${jna.version}
@@ -62,7 +66,6 @@
-
diff --git a/spring-test-postgres/src/main/java/com/jupiter/tools/spring/test/postgres/extension/PostgresTcExtension.java b/spring-test-postgres/src/main/java/com/jupiter/tools/spring/test/postgres/extension/PostgresTcExtension.java
index 01da115..bfb7f6b 100644
--- a/spring-test-postgres/src/main/java/com/jupiter/tools/spring/test/postgres/extension/PostgresTcExtension.java
+++ b/spring-test-postgres/src/main/java/com/jupiter/tools/spring/test/postgres/extension/PostgresTcExtension.java
@@ -14,7 +14,8 @@ public class PostgresTcExtension implements Extension {
static {
System.out.println("Start Postgres testcontainers extension...\n");
- PostgreSQLContainer postgres = new PostgreSQLContainer();
+ PostgreSQLContainer postgres = new PostgreSQLContainer("postgres:14.5-alpine");
+ postgres.withReuse(true);
postgres.start();
System.setProperty("spring.datasource.driver-class-name", postgres.getDriverClassName());
diff --git a/spring-test-rabbitmq/pom.xml b/spring-test-rabbitmq/pom.xml
index c37d21a..d952724 100644
--- a/spring-test-rabbitmq/pom.xml
+++ b/spring-test-rabbitmq/pom.xml
@@ -6,7 +6,7 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-rabbitmq
@@ -20,7 +20,7 @@
UTF-8
UTF-8
1.8
- 1.11.4
+ 4.2.0
@@ -44,16 +44,21 @@
org.testcontainers
testcontainers
- ${test.containers.version}
+ ${testcontainers.version}
compile
+
+ net.java.dev.jna
+ jna
+ ${jna.version}
+
org.awaitility
awaitility
- 3.1.0
+ ${awaitility.version}
diff --git a/spring-test-rabbitmq/src/main/java/com/jupiter/tools/spring/test/rabbitmq/extension/RabbitMqTcExtension.java b/spring-test-rabbitmq/src/main/java/com/jupiter/tools/spring/test/rabbitmq/extension/RabbitMqTcExtension.java
index 84e6dfe..a2f6c7d 100644
--- a/spring-test-rabbitmq/src/main/java/com/jupiter/tools/spring/test/rabbitmq/extension/RabbitMqTcExtension.java
+++ b/spring-test-rabbitmq/src/main/java/com/jupiter/tools/spring/test/rabbitmq/extension/RabbitMqTcExtension.java
@@ -11,12 +11,13 @@
public class RabbitMqTcExtension implements Extension {
private static final Integer RABBIT_PORT = 5672;
- private static GenericContainer rabbitmq =
- new GenericContainer("rabbitmq:management").withExposedPorts(RABBIT_PORT, 15672);
+ private static final GenericContainer rabbitmq =
+ new GenericContainer("rabbitmq:3.9.23-management-alpine").withExposedPorts(RABBIT_PORT, 15672);
static {
rabbitmq.start();
- System.setProperty("spring.rabbitmq.host", rabbitmq.getContainerIpAddress());
+ rabbitmq.withReuse(true);
+ System.setProperty("spring.rabbitmq.host", rabbitmq.getHost());
System.setProperty("spring.rabbitmq.port", rabbitmq.getMappedPort(RABBIT_PORT).toString());
}
}
diff --git a/spring-test-web/pom.xml b/spring-test-web/pom.xml
index d8f60aa..bb880fb 100644
--- a/spring-test-web/pom.xml
+++ b/spring-test-web/pom.xml
@@ -6,11 +6,11 @@
com.jupiter-tools
spring-boot-extensions-parent
- 0.4
+ 0.5
spring-test-web
- ${parent.version}
+ 0.5
jar
spring-test-web
@@ -22,7 +22,7 @@
1.8
1.11.4
- Greenwich.RELEASE
+ 2021.0.4
@@ -52,7 +52,7 @@
org.springframework.cloud
- spring-cloud-starter-netflix-ribbon
+ spring-cloud-starter-loadbalancer
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestMvcTest.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestMvcTest.java
new file mode 100644
index 0000000..93cfc9e
--- /dev/null
+++ b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestMvcTest.java
@@ -0,0 +1,31 @@
+package com.jupiter.tools.spring.test.web.annotation;
+
+import com.jupiter.tools.spring.test.core.annotation.EnableIntegrationTest;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Created on 17.07.2018.
+ *
+ * Enable configuration for tests with an API level.
+ * Run entire application context and configure a MockMvc.
+ *
+ * Main test-cases:
+ * - test REST API communication
+ * - test API response/request converters
+ * - test all application scoup from REST-API (for example: API->Service->DAO->JPA)
+ *
+ * @author Korovin Anatoliy
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+@EnableIntegrationTest
+@AutoConfigureMockMvc
+public @interface EnableRestMvcTest {
+ SpringBootTest.WebEnvironment webEnvironment() default SpringBootTest.WebEnvironment.RANDOM_PORT;
+}
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestTest.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestTest.java
index 983f95e..5b17e88 100644
--- a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestTest.java
+++ b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/annotation/EnableRestTest.java
@@ -1,33 +1,18 @@
package com.jupiter.tools.spring.test.web.annotation;
+import com.jupiter.tools.spring.test.core.annotation.EnableIntegrationTest;
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
+import org.springframework.boot.test.context.SpringBootTest;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import com.jupiter.tools.spring.test.core.annotation.EnableIntegrationTest;
-import org.junit.jupiter.api.extension.ExtendWith;
-
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-/**
- * Created on 17.07.2018.
- *
- * Enable configuration for tests with an API level.
- * Run entire application context and configure a MockMvc.
- *
- * Main test-cases:
- * - test REST API communication
- * - test API response/request converters
- * - test all application scoup from REST-API (for example: API->Service->DAO->JPA)
- *
- * @author Korovin Anatoliy
- */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
+@AutoConfigureWebTestClient
@EnableIntegrationTest
-@AutoConfigureMockMvc
public @interface EnableRestTest {
+ SpringBootTest.WebEnvironment webEnvironment() default SpringBootTest.WebEnvironment.RANDOM_PORT;
}
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/LocalHostLoadBalancerClientFactory.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/LocalHostLoadBalancerClientFactory.java
new file mode 100644
index 0000000..52d48a8
--- /dev/null
+++ b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/LocalHostLoadBalancerClientFactory.java
@@ -0,0 +1,63 @@
+package com.jupiter.tools.spring.test.web.extension.ribbon;
+
+import org.springframework.cloud.client.DefaultServiceInstance;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerProperties;
+import org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer;
+import org.springframework.cloud.context.named.NamedContextFactory;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientConfiguration;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientSpecification;
+import org.springframework.cloud.loadbalancer.core.RoundRobinLoadBalancer;
+import org.springframework.cloud.loadbalancer.support.ServiceInstanceListSuppliers;
+import org.springframework.core.env.Environment;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory.NAMESPACE;
+import static org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory.PROPERTY_NAME;
+
+/**
+ * @author Gennady Kuzmin
+ */
+public class LocalHostLoadBalancerClientFactory extends NamedContextFactory
+ implements ReactiveLoadBalancer.Factory {
+
+ private final Map instances = new HashMap<>();
+ private final Environment environment;
+
+ public LocalHostLoadBalancerClientFactory(Environment environment) {
+ super(LoadBalancerClientConfiguration.class, NAMESPACE, PROPERTY_NAME);
+
+ this.environment = environment;
+ }
+
+ @Override
+ public LoadBalancerProperties getProperties(String serviceId) {
+ return new LoadBalancerProperties();
+ }
+
+ @Override
+ public ReactiveLoadBalancer getInstance(String serviceId) {
+ ServiceInstance serviceInstance = instances.isEmpty() ?
+ toServiceInstances(serviceId) :
+ instances.get(serviceId);
+
+ return new RoundRobinLoadBalancer(ServiceInstanceListSuppliers.toProvider(serviceId, serviceInstance), serviceId);
+ }
+
+ private ServiceInstance toServiceInstances(String serviceId) {
+ int port = environment.getProperty("local.server.port", Integer.class);
+ return new DefaultServiceInstance(serviceId, serviceId, "127.0.0.1", port, false);
+ }
+
+ public void clearInstances() {
+ instances.clear();
+ }
+
+ public void addInstances(String... serviceIds) {
+ for (String serviceId : serviceIds) {
+ instances.put(serviceId, toServiceInstances(serviceId));
+ }
+ }
+}
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtension.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtension.java
similarity index 52%
rename from spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtension.java
rename to spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtension.java
index 2af8959..78ec709 100644
--- a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtension.java
+++ b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtension.java
@@ -4,27 +4,33 @@
import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.Extension;
import org.junit.jupiter.api.extension.ExtensionContext;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
/**
* Created on 05.02.2019.
*
* @author Korovin Anatoliy
+ * @author Gennady Kuzmin
*/
-public class RedirectRibbonExtension implements Extension, BeforeEachCallback, AfterAllCallback {
+public class RedirectLBExtension implements Extension, BeforeEachCallback, AfterAllCallback {
@Override
public void beforeEach(ExtensionContext context) throws Exception {
- RedirectRibbonExtensionConfig.setClients(getClientNameFromTestClass(context));
+ getLoadBalancerClientFactory(context).addInstances(getClientNameFromTestClass(context));
}
@Override
public void afterAll(ExtensionContext context) throws Exception {
- RedirectRibbonExtensionConfig.setClients();
+ getLoadBalancerClientFactory(context).clearInstances();
+ }
+
+ private LocalHostLoadBalancerClientFactory getLoadBalancerClientFactory(ExtensionContext context) {
+ return SpringExtension.getApplicationContext(context).getBean(LocalHostLoadBalancerClientFactory.class);
}
private String[] getClientNameFromTestClass(ExtensionContext context) {
return context.getRequiredTestClass()
- .getAnnotation(RedirectRibbonToEmbeddedWebServer.class)
+ .getAnnotation(RedirectLBToLocalHost.class)
.value();
}
}
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionConfig.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionConfig.java
new file mode 100644
index 0000000..25dc76e
--- /dev/null
+++ b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionConfig.java
@@ -0,0 +1,29 @@
+package com.jupiter.tools.spring.test.web.extension.ribbon;
+
+import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.env.Environment;
+
+/**
+ * Created on 06.02.2019.
+ *
+ * @author Korovin Anatoliy
+ * @author Gennady Kuzmin
+ */
+@Configuration
+public class RedirectLBExtensionConfig {
+
+ @Bean
+ @Primary
+ public LocalHostLoadBalancerClientFactory jupiterToolsLoadBalancerClientFactory(Environment environment) {
+ return new LocalHostLoadBalancerClientFactory(environment);
+ }
+
+ @Bean
+ public LoadBalancerClient blockingLoadBalancerClient(LocalHostLoadBalancerClientFactory loadBalancerClientFactory) {
+ return new BlockingLoadBalancerClient(loadBalancerClientFactory);
+ }
+}
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonToEmbeddedWebServer.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBToLocalHost.java
similarity index 69%
rename from spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonToEmbeddedWebServer.java
rename to spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBToLocalHost.java
index 8113c12..849aa67 100644
--- a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonToEmbeddedWebServer.java
+++ b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBToLocalHost.java
@@ -1,7 +1,7 @@
package com.jupiter.tools.spring.test.web.extension.ribbon;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.springframework.cloud.netflix.ribbon.RibbonClients;
+import org.springframework.context.annotation.Import;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -15,9 +15,9 @@
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
-@ExtendWith(RedirectRibbonExtension.class)
-@RibbonClients(defaultConfiguration = RedirectRibbonExtensionConfig.class)
-public @interface RedirectRibbonToEmbeddedWebServer {
+@ExtendWith(RedirectLBExtension.class)
+@Import(RedirectLBExtensionConfig.class)
+public @interface RedirectLBToLocalHost {
/**
* @return List of client names which should be redirected to the embedded web server
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionConfig.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionConfig.java
deleted file mode 100644
index 15034a7..0000000
--- a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionConfig.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.jupiter.tools.spring.test.web.extension.ribbon;
-
-import com.netflix.client.config.IClientConfig;
-import com.netflix.loadbalancer.Server;
-import com.netflix.loadbalancer.ServerList;
-import org.springframework.context.annotation.Bean;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created on 06.02.2019.
- *
- * @author Korovin Anatoliy
- */
-public class RedirectRibbonExtensionConfig {
-
- private static List clientNames;
-
- /**
- * set list of client which will be redirect to local embedded server
- *
- * @param clients list of ribbon client names
- */
- public static void setClients(String... clients) {
- clientNames = Arrays.asList(clients);
- }
-
- @Bean
- public ServerList customServerList(IClientConfig ribbonClientConfig) {
- return new RedirectRibbonServerList(ribbonClientConfig, clientNames);
- }
-}
diff --git a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonServerList.java b/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonServerList.java
deleted file mode 100644
index e9b191d..0000000
--- a/spring-test-web/src/main/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonServerList.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.jupiter.tools.spring.test.web.extension.ribbon;
-
-import com.netflix.client.config.IClientConfig;
-import com.netflix.loadbalancer.AbstractServerList;
-import com.netflix.loadbalancer.Server;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Created on 06.02.2019.
- *
- * @author Korovin Anatoliy
- */
-public class RedirectRibbonServerList extends AbstractServerList {
-
- private final List clientNames;
- private IClientConfig clientConfig;
-
-
- public RedirectRibbonServerList(IClientConfig clientConfig, List clientNames) {
- if (clientNames == null) {
- throw new RuntimeException("clientNames must be not null");
- }
- this.clientConfig = clientConfig;
- this.clientNames = clientNames;
- }
-
- @Override
- public List getInitialListOfServers() {
- return getUpdatedListOfServers();
- }
-
- @Override
- public List getUpdatedListOfServers() {
-
- // processing of default value of the RedirectRibbonToEmbeddedWebServer annotation
- if (clientNames.isEmpty()) {
- return getEmbeddedServers();
- }
-
- if (clientConfig != null && clientNames.contains(clientConfig.getClientName())) {
- return getEmbeddedServers();
- } else {
- return Collections.emptyList();
- }
- }
-
- @Override
- public void initWithNiwsConfig(IClientConfig clientConfig) {
- this.clientConfig = clientConfig;
- }
-
- private List getEmbeddedServers() {
- return Collections.singletonList(new Server("127.0.0.1", getPort()));
- }
-
- private Integer getPort() {
- return Integer.valueOf(System.getProperty("server.port"));
- }
-}
diff --git a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/EnableRestTestTest.java b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/EnableRestTestMvcTest.java
similarity index 92%
rename from spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/EnableRestTestTest.java
rename to spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/EnableRestTestMvcTest.java
index 6fa79ef..c75ee46 100644
--- a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/EnableRestTestTest.java
+++ b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/EnableRestTestMvcTest.java
@@ -1,8 +1,7 @@
package com.jupiter.tools.spring.test.web.extension;
-import com.jupiter.tools.spring.test.web.annotation.EnableRestTest;
+import com.jupiter.tools.spring.test.web.annotation.EnableRestMvcTest;
import org.junit.jupiter.api.Test;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.test.web.servlet.MockMvc;
@@ -19,8 +18,8 @@
*
* @author Korovin Anatoliy
*/
-@EnableRestTest
-public class EnableRestTestTest {
+@EnableRestMvcTest
+public class EnableRestTestMvcTest {
@Autowired
private MockMvc mockMvc;
diff --git a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionByFeignTest.java b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionByFeignTest.java
similarity index 87%
rename from spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionByFeignTest.java
rename to spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionByFeignTest.java
index 6a5277b..dff5a1c 100644
--- a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionByFeignTest.java
+++ b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionByFeignTest.java
@@ -1,11 +1,10 @@
package com.jupiter.tools.spring.test.web.extension.ribbon;
-import com.jupiter.tools.spring.test.web.annotation.EnableEmbeddedWebServerTest;
import feign.Client;
import feign.Feign;
import org.junit.jupiter.api.Test;
-
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.cloud.openfeign.support.SpringMvcContract;
import org.springframework.context.annotation.Bean;
@@ -20,9 +19,9 @@
*
* @author Korovin Anatoliy
*/
-@EnableEmbeddedWebServerTest
-@RedirectRibbonToEmbeddedWebServer("test-service")
-class RedirectRibbonExtensionByFeignTest {
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@RedirectLBToLocalHost("test-service")
+class RedirectLBExtensionByFeignTest {
@Autowired
private CustomFeign customFeign;
diff --git a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionTest.java b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionTest.java
similarity index 85%
rename from spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionTest.java
rename to spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionTest.java
index ad8b6c8..29a71fa 100644
--- a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonExtensionTest.java
+++ b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBExtensionTest.java
@@ -1,9 +1,9 @@
package com.jupiter.tools.spring.test.web.extension.ribbon;
-import com.jupiter.tools.spring.test.web.annotation.EnableEmbeddedWebServerTest;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
@@ -23,9 +23,9 @@
*
* @author Korovin Anatoliy
*/
-@EnableEmbeddedWebServerTest
-@RedirectRibbonToEmbeddedWebServer("test-service")
-class RedirectRibbonExtensionTest {
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@RedirectLBToLocalHost("test-service")
+class RedirectLBExtensionTest {
@Autowired
private RestTemplate restTemplate;
@@ -47,8 +47,8 @@ void testRedirectToUnknownClient() {
// Act
Assertions.assertThrows(Exception.class,
() -> restTemplate.getForObject("http://foo-service/messages/{message}/size",
- String.class,
- "test-message"));
+ String.class,
+ "test-message"));
}
@TestConfiguration
diff --git a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonToEmbeddedWebServerTest.java b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBToLocalHostTest.java
similarity index 89%
rename from spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonToEmbeddedWebServerTest.java
rename to spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBToLocalHostTest.java
index 4a57c02..9cd14ff 100644
--- a/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectRibbonToEmbeddedWebServerTest.java
+++ b/spring-test-web/src/test/java/com/jupiter/tools/spring/test/web/extension/ribbon/RedirectLBToLocalHostTest.java
@@ -1,9 +1,8 @@
package com.jupiter.tools.spring.test.web.extension.ribbon;
-import com.jupiter.tools.spring.test.web.annotation.EnableEmbeddedWebServerTest;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
@@ -23,9 +22,9 @@
*
* @author Korovin Anatoliy
*/
-@EnableEmbeddedWebServerTest
-@RedirectRibbonToEmbeddedWebServer
-class RedirectRibbonToEmbeddedWebServerTest {
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@RedirectLBToLocalHost
+class RedirectLBToLocalHostTest {
@Autowired
private RestTemplate restTemplate;