diff --git a/algorithms/README.md b/algorithms/README.md
index b0c5ee9d77..5f101c296c 100644
--- a/algorithms/README.md
+++ b/algorithms/README.md
@@ -14,3 +14,4 @@
- [Bubble Sort in Java](http://www.baeldung.com/java-bubble-sort)
- [Introduction to JGraphT](http://www.baeldung.com/jgrapht)
- [Introduction to Minimax Algorithm](http://www.baeldung.com/java-minimax-algorithm)
+- [How to Calculate Levenshtein Distance in Java?](http://www.baeldung.com/java-levenshtein-distance)
diff --git a/apache-spark/README.md b/apache-spark/README.md
new file mode 100644
index 0000000000..fb8059eb27
--- /dev/null
+++ b/apache-spark/README.md
@@ -0,0 +1,3 @@
+### Relevant articles
+
+- [Introduction to Apache Spark](http://www.baeldung.com/apache-spark)
diff --git a/cas/cas-secured-app/pom.xml b/cas/cas-secured-app/pom.xml
index f66d54ae67..543354e8b3 100644
--- a/cas/cas-secured-app/pom.xml
+++ b/cas/cas-secured-app/pom.xml
@@ -65,6 +65,24 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+ 3
+ true
+
+ **/*IntegrationTest.java
+ **/*LongRunningUnitTest.java
+ **/*ManualTest.java
+ **/JdbcTest.java
+ **/*LiveTest.java
+
+
+
+
+
@@ -107,4 +125,5 @@
+
diff --git a/cas/cas-secured-app/src/test/java/com/baeldung/cassecuredapp/CasSecuredAppApplicationTests.java b/cas/cas-secured-app/src/test/java/com/baeldung/cassecuredapp/CasSecuredAppApplicationIntegrationTest.java
similarity index 84%
rename from cas/cas-secured-app/src/test/java/com/baeldung/cassecuredapp/CasSecuredAppApplicationTests.java
rename to cas/cas-secured-app/src/test/java/com/baeldung/cassecuredapp/CasSecuredAppApplicationIntegrationTest.java
index 09dbaf0c61..2f2644e2ea 100644
--- a/cas/cas-secured-app/src/test/java/com/baeldung/cassecuredapp/CasSecuredAppApplicationTests.java
+++ b/cas/cas-secured-app/src/test/java/com/baeldung/cassecuredapp/CasSecuredAppApplicationIntegrationTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-public class CasSecuredAppApplicationTests {
+public class CasSecuredAppApplicationIntegrationTest {
@Test
public void contextLoads() {
diff --git a/core-java-concurrency/README.md b/core-java-concurrency/README.md
index f1d95482d4..48c5f2a50c 100644
--- a/core-java-concurrency/README.md
+++ b/core-java-concurrency/README.md
@@ -30,3 +30,4 @@
- [Guide to Volatile Keyword in Java](http://www.baeldung.com/java-volatile)
- [Overview of the java.util.concurrent](http://www.baeldung.com/java-util-concurrent)
- [Semaphores in Java](http://www.baeldung.com/java-semaphore)
+- [Daemon Threads in Java](http://www.baeldung.com/java-daemon-thread)
diff --git a/core-java-concurrency/src/main/java/com/baeldung/concurrent/stopping/ControlSubThread.java b/core-java-concurrency/src/main/java/com/baeldung/concurrent/stopping/ControlSubThread.java
new file mode 100644
index 0000000000..0e72821a88
--- /dev/null
+++ b/core-java-concurrency/src/main/java/com/baeldung/concurrent/stopping/ControlSubThread.java
@@ -0,0 +1,52 @@
+package com.baeldung.concurrent.stopping;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+public class ControlSubThread implements Runnable {
+
+ private Thread worker;
+ private int interval = 100;
+ private AtomicBoolean running = new AtomicBoolean(false);
+ private AtomicBoolean stopped = new AtomicBoolean(true);
+
+
+ public ControlSubThread(int sleepInterval) {
+ interval = sleepInterval;
+ }
+
+ public void start() {
+ worker = new Thread(this);
+ worker.start();
+ }
+
+ public void stop() {
+ running.set(false);
+ }
+
+ public void interrupt() {
+ running.set(false);
+ worker.interrupt();
+ }
+
+ boolean isRunning() {
+ return running.get();
+ }
+
+ boolean isStopped() {
+ return stopped.get();
+ }
+
+ public void run() {
+ running.set(true);
+ stopped.set(false);
+ while (running.get()) {
+ try {
+ Thread.sleep(interval);
+ } catch (InterruptedException e) {
+ // no-op, just loop again
+ }
+ // do something
+ }
+ stopped.set(true);
+ }
+}
diff --git a/core-java-concurrency/src/test/java/com/baeldung/concurrent/stopping/StopThreadTest.java b/core-java-concurrency/src/test/java/com/baeldung/concurrent/stopping/StopThreadTest.java
new file mode 100644
index 0000000000..8c1bdbf787
--- /dev/null
+++ b/core-java-concurrency/src/test/java/com/baeldung/concurrent/stopping/StopThreadTest.java
@@ -0,0 +1,50 @@
+package com.baeldung.concurrent.stopping;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class StopThreadTest {
+
+ @Test
+ public void whenStoppedThreadIsStopped() throws InterruptedException {
+
+ int interval = 100;
+
+ ControlSubThread controlSubThread = new ControlSubThread(interval);
+ controlSubThread.start();
+
+ // Give things a chance to get set up
+ Thread.sleep(interval);
+ assertTrue(controlSubThread.isRunning());
+ assertFalse(controlSubThread.isStopped());
+
+ // Stop it and make sure the flags have been reversed
+ controlSubThread.stop();
+ Thread.sleep(interval);
+ assertTrue(controlSubThread.isStopped());
+ }
+
+
+ @Test
+ public void whenInterruptedThreadIsStopped() throws InterruptedException {
+
+ int interval = 5000;
+
+ ControlSubThread controlSubThread = new ControlSubThread(interval);
+ controlSubThread.start();
+
+ // Give things a chance to get set up
+ Thread.sleep(100);
+ assertTrue(controlSubThread.isRunning());
+ assertFalse(controlSubThread.isStopped());
+
+ // Stop it and make sure the flags have been reversed
+ controlSubThread.interrupt();
+
+ // Wait less than the time we would normally sleep, and make sure we exited.
+ Thread.sleep(interval/10);
+ assertTrue(controlSubThread.isStopped());
+ }
+}
diff --git a/core-java/README.md b/core-java/README.md
index dcf77ff536..df3d26d8fa 100644
--- a/core-java/README.md
+++ b/core-java/README.md
@@ -115,4 +115,5 @@
- [Number of Digits in an Integer in Java](http://www.baeldung.com/java-number-of-digits-in-int)
- [Proxy, Decorator, Adapter and Bridge Patterns](http://www.baeldung.com/java-structural-design-patterns)
- [Creating a Java Compiler Plugin](http://www.baeldung.com/java-build-compiler-plugin)
-
+- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
+- [Initializing Arrays in Java](http://www.baeldung.com/java-initialize-array)
diff --git a/deeplearning4j/README.md b/deeplearning4j/README.md
index 729ab101fd..7f9c92ec73 100644
--- a/deeplearning4j/README.md
+++ b/deeplearning4j/README.md
@@ -2,4 +2,4 @@
This is a sample project for the [deeplearning4j](https://deeplearning4j.org) library.
### Relevant Articles:
-- [A Guide to deeplearning4j](http://www.baeldung.com/a-guide-to-deeplearning4j/)
+- [A Guide to deeplearning4j](http://www.baeldung.com/deeplearning4j)
diff --git a/ejb/wildfly/widlfly-web/src/main/java/TestEJBServlet.java b/ejb/wildfly/widlfly-web/src/main/java/TestEJBServlet.java
index a27f0efe51..57376e9c4a 100644
--- a/ejb/wildfly/widlfly-web/src/main/java/TestEJBServlet.java
+++ b/ejb/wildfly/widlfly-web/src/main/java/TestEJBServlet.java
@@ -26,16 +26,13 @@ public class TestEJBServlet extends HttpServlet {
PrintWriter out = response.getWriter();
out.println("");
- out.println("
Users");
out.println("");
- out.println("List of users:
");
- out.println("");
for (User user : users) {
- out.println("");
- out.print("" + user.getUsername() + " | ");
- out.print("" + user.getEmail() + " | ");
- out.println("
");
+ out.print(user.getUsername());
+ out.print(" " + user.getEmail() + "
");
}
+ out.println("");
+ out.println("");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
diff --git a/libraries/README.md b/libraries/README.md
index c6bbb5634c..1b6cbf2735 100644
--- a/libraries/README.md
+++ b/libraries/README.md
@@ -39,7 +39,6 @@
- [Introduction to Apache Commons CSV](http://www.baeldung.com/apache-commons-csv)
- [Difference Between Two Dates in Java](http://www.baeldung.com/java-date-difference)
- [Introduction to NoException](http://www.baeldung.com/no-exception)
-- [Introduction to FunctionalJava](http://www.baeldung.com/functional-java)
- [Apache Commons IO](http://www.baeldung.com/apache-commons-io)
- [Introduction to Conflict-Free Replicated Data Types](http://www.baeldung.com/java-conflict-free-replicated-data-types)
- [Introduction to javax.measure](http://www.baeldung.com/javax-measure)
@@ -53,7 +52,11 @@
- [Using Pairs in Java](http://www.baeldung.com/java-pairs)
- [Apache Commons Collections Bag](http://www.baeldung.com/apache-commons-bag)
- [Introduction to Caffeine](http://www.baeldung.com/java-caching-caffeine)
-+-[Introduction to Chronicle Queue](http://www.baeldung.com/java-chronicle-queue)
+- [Introduction to Chronicle Queue](http://www.baeldung.com/java-chronicle-queue)
+- [Introduction To Docx4J](http://www.baeldung.com/docx4j)
+- [Introduction to StreamEx](http://www.baeldung.com/streamex)
+- [Introduction to BouncyCastle with Java](http://www.baeldung.com/java-bouncy-castle)
+- [Intro to JDO Queries 2/2](http://www.baeldung.com/jdo-queries)
The libraries module contains examples related to small libraries that are relatively easy to use and does not require any separate module of its own.
diff --git a/metrics/README.md b/metrics/README.md
index 09fe925604..c7772bffa0 100644
--- a/metrics/README.md
+++ b/metrics/README.md
@@ -2,3 +2,4 @@
- [Intro to Dropwizard Metrics](http://www.baeldung.com/dropwizard-metrics)
- [Introduction to Netflix Servo](http://www.baeldung.com/netflix-servo)
+- [Quick Guide to Micrometer](http://www.baeldung.com/micrometer)
diff --git a/rxjava/README.md b/rxjava/README.md
index 71231cc391..c88ec36991 100644
--- a/rxjava/README.md
+++ b/rxjava/README.md
@@ -8,3 +8,4 @@
- [Observable Utility Operators in RxJava](http://www.baeldung.com/rxjava-observable-operators)
- [Introduction to rxjava-jdbc](http://www.baeldung.com/rxjava-jdbc)
- [Schedulers in RxJava](http://www.baeldung.com/rxjava-schedulers)
+- [Mathematical and Aggregate Operators in RxJava](http://www.baeldung.com/rxjava-math)
diff --git a/spring-5/pom.xml b/spring-5/pom.xml
index e9a65232d2..7e30179f07 100644
--- a/spring-5/pom.xml
+++ b/spring-5/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.0.M3
+ 2.0.0.M6
@@ -99,6 +99,11 @@
spring-boot-starter-test
test
+
+ org.springframework.security
+ spring-security-test
+ test
+
org.apache.commons
@@ -189,7 +194,7 @@
1.0.0
5.0.0
2.20
- 5.0.0.RELEASE
+ 5.0.1.RELEASE
1.0.1.RELEASE
1.1.3
1.0
diff --git a/spring-5/src/main/java/com/baeldung/SpringSecurity5Application.java b/spring-5/src/main/java/com/baeldung/SpringSecurity5Application.java
new file mode 100644
index 0000000000..02c91a1879
--- /dev/null
+++ b/spring-5/src/main/java/com/baeldung/SpringSecurity5Application.java
@@ -0,0 +1,34 @@
+package com.baeldung;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.http.server.reactive.HttpHandler;
+import org.springframework.http.server.reactive.ReactorHttpHandlerAdapter;
+import org.springframework.web.reactive.config.EnableWebFlux;
+import org.springframework.web.server.adapter.WebHttpHandlerBuilder;
+import reactor.ipc.netty.NettyContext;
+import reactor.ipc.netty.http.server.HttpServer;
+
+@ComponentScan(basePackages = {"com.baeldung.security"})
+@EnableWebFlux
+public class SpringSecurity5Application {
+
+ public static void main(String[] args) {
+ try (AnnotationConfigApplicationContext context =
+ new AnnotationConfigApplicationContext(SpringSecurity5Application.class)) {
+ context.getBean(NettyContext.class).onClose().block();
+ }
+ }
+
+ @Bean
+ public NettyContext nettyContext(ApplicationContext context) {
+ HttpHandler handler = WebHttpHandlerBuilder.applicationContext(context)
+ .build();
+ ReactorHttpHandlerAdapter adapter = new ReactorHttpHandlerAdapter(handler);
+ HttpServer httpServer = HttpServer.create("localhost", 8080);
+ return httpServer.newHandler(adapter).block();
+ }
+
+}
diff --git a/spring-5/src/main/java/com/baeldung/security/GreetController.java b/spring-5/src/main/java/com/baeldung/security/GreetController.java
new file mode 100644
index 0000000000..6b69e3bc9b
--- /dev/null
+++ b/spring-5/src/main/java/com/baeldung/security/GreetController.java
@@ -0,0 +1,37 @@
+package com.baeldung.security;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import reactor.core.publisher.Mono;
+
+import java.security.Principal;
+
+@RestController
+public class GreetController {
+
+ private GreetService greetService;
+
+ public GreetController(GreetService greetService) {
+ this.greetService = greetService;
+ }
+
+ @GetMapping("/")
+ public Mono greet(Mono principal) {
+ return principal
+ .map(Principal::getName)
+ .map(name -> String.format("Hello, %s", name));
+ }
+
+ @GetMapping("/admin")
+ public Mono greetAdmin(Mono principal) {
+ return principal
+ .map(Principal::getName)
+ .map(name -> String.format("Admin access: %s", name));
+ }
+
+ @GetMapping("/greetService")
+ public Mono greetService() {
+ return greetService.greet();
+ }
+
+}
diff --git a/spring-5/src/main/java/com/baeldung/security/GreetService.java b/spring-5/src/main/java/com/baeldung/security/GreetService.java
new file mode 100644
index 0000000000..7622b360be
--- /dev/null
+++ b/spring-5/src/main/java/com/baeldung/security/GreetService.java
@@ -0,0 +1,15 @@
+package com.baeldung.security;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Service;
+import reactor.core.publisher.Mono;
+
+@Service
+public class GreetService {
+
+ @PreAuthorize("hasRole('ADMIN')")
+ public Mono greet() {
+ return Mono.just("Hello from service!");
+ }
+
+}
diff --git a/spring-5/src/main/java/com/baeldung/security/SecurityConfig.java b/spring-5/src/main/java/com/baeldung/security/SecurityConfig.java
new file mode 100644
index 0000000000..a9e44a2eee
--- /dev/null
+++ b/spring-5/src/main/java/com/baeldung/security/SecurityConfig.java
@@ -0,0 +1,42 @@
+package com.baeldung.security;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity;
+import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
+import org.springframework.security.config.web.server.ServerHttpSecurity;
+import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.web.server.SecurityWebFilterChain;
+
+@EnableWebFluxSecurity
+@EnableReactiveMethodSecurity
+public class SecurityConfig {
+
+ @Bean
+ public SecurityWebFilterChain securitygWebFilterChain(ServerHttpSecurity http) {
+ return http.authorizeExchange()
+ .pathMatchers("/admin").hasAuthority("ROLE_ADMIN")
+ .anyExchange().authenticated()
+ .and().formLogin()
+ .and().build();
+ }
+
+ @Bean
+ public MapReactiveUserDetailsService userDetailsService() {
+ UserDetails user = User.withDefaultPasswordEncoder()
+ .username("user")
+ .password("password")
+ .roles("USER")
+ .build();
+
+ UserDetails admin = User.withDefaultPasswordEncoder()
+ .username("admin")
+ .password("password")
+ .roles("ADMIN")
+ .build();
+
+ return new MapReactiveUserDetailsService(user, admin);
+ }
+
+}
diff --git a/spring-5/src/main/resources/application.properties b/spring-5/src/main/resources/application.properties
index 886ea1978b..ccec014c2b 100644
--- a/spring-5/src/main/resources/application.properties
+++ b/spring-5/src/main/resources/application.properties
@@ -1,6 +1,3 @@
server.port=8081
-security.user.name=user
-security.user.password=pass
-
logging.level.root=INFO
\ No newline at end of file
diff --git a/spring-5/src/test/java/com/baeldung/security/SecurityTest.java b/spring-5/src/test/java/com/baeldung/security/SecurityTest.java
new file mode 100644
index 0000000000..a1c940a17a
--- /dev/null
+++ b/spring-5/src/test/java/com/baeldung/security/SecurityTest.java
@@ -0,0 +1,48 @@
+package com.baeldung.security;
+
+import com.baeldung.SpringSecurity5Application;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.security.test.context.support.WithMockUser;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = SpringSecurity5Application.class)
+public class SecurityTest {
+
+ @Autowired
+ ApplicationContext context;
+
+ private WebTestClient rest;
+
+ @Before
+ public void setup() {
+ this.rest = WebTestClient
+ .bindToApplicationContext(this.context)
+ .configureClient()
+ .build();
+ }
+
+ @Test
+ public void whenNoCredentials_thenRedirectToLogin() {
+ this.rest.get()
+ .uri("/")
+ .exchange()
+ .expectStatus().is3xxRedirection();
+ }
+
+ @Test
+ @WithMockUser
+ public void whenHasCredentials_thenSeesGreeting() {
+ this.rest.get()
+ .uri("/")
+ .exchange()
+ .expectStatus().isOk()
+ .expectBody(String.class).isEqualTo("Hello, user");
+ }
+}
diff --git a/spring-5/src/test/java/com/baeldung/web/client/WebTestClientTest.java b/spring-5/src/test/java/com/baeldung/web/client/WebTestClientTest.java
index b05f903b4b..43114b5b50 100644
--- a/spring-5/src/test/java/com/baeldung/web/client/WebTestClientTest.java
+++ b/spring-5/src/test/java/com/baeldung/web/client/WebTestClientTest.java
@@ -53,7 +53,7 @@ public class WebTestClientTest {
.uri("/resource")
.exchange()
.expectStatus()
- .is4xxClientError()
+ .is3xxRedirection()
.expectBody();
}
diff --git a/spring-activiti/README.md b/spring-activiti/README.md
index 5007b03ec7..703dfeec52 100644
--- a/spring-activiti/README.md
+++ b/spring-activiti/README.md
@@ -3,3 +3,4 @@
- [A Guide to Activiti with Java](http://www.baeldung.com/java-activiti)
- [Introduction to Activiti with Spring](http://www.baeldung.com/spring-activiti)
- [Activiti with Spring Security](http://www.baeldung.com/activiti-spring-security)
+- [ProcessEngine Configuration in Activiti](http://www.baeldung.com/activiti-process-engine)
diff --git a/spring-all/README.md b/spring-all/README.md
index 36bf7da778..e1504a66db 100644
--- a/spring-all/README.md
+++ b/spring-all/README.md
@@ -23,3 +23,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
- [New in Guava 21 common.util.concurrent](http://www.baeldung.com/guava-21-util-concurrent)
- [A CLI with Spring Shell](http://www.baeldung.com/spring-shell-cli)
- [JasperReports with Spring](http://www.baeldung.com/spring-jasper)
+- [Model, ModelMap, and ModelView in Spring MVC](http://www.baeldung.com/spring-mvc-model-model-map-model-view)
diff --git a/spring-boot-admin/spring-boot-admin-client/src/test/java/com/baeldung/springbootadminclient/SpringBootAdminClientApplicationTests.java b/spring-boot-admin/spring-boot-admin-client/src/test/java/com/baeldung/springbootadminclient/SpringBootAdminClientApplicationIntegrationTest.java
similarity index 97%
rename from spring-boot-admin/spring-boot-admin-client/src/test/java/com/baeldung/springbootadminclient/SpringBootAdminClientApplicationTests.java
rename to spring-boot-admin/spring-boot-admin-client/src/test/java/com/baeldung/springbootadminclient/SpringBootAdminClientApplicationIntegrationTest.java
index d70fb1c7cf..0201deabca 100644
--- a/spring-boot-admin/spring-boot-admin-client/src/test/java/com/baeldung/springbootadminclient/SpringBootAdminClientApplicationTests.java
+++ b/spring-boot-admin/spring-boot-admin-client/src/test/java/com/baeldung/springbootadminclient/SpringBootAdminClientApplicationIntegrationTest.java
@@ -19,7 +19,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = RANDOM_PORT)
-public class SpringBootAdminClientApplicationTests {
+public class SpringBootAdminClientApplicationIntegrationTest {
@Autowired Environment environment;
diff --git a/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/HazelcastConfigTest.java b/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/HazelcastConfigIntegrationTest.java
similarity index 95%
rename from spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/HazelcastConfigTest.java
rename to spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/HazelcastConfigIntegrationTest.java
index 8ca50a6f75..7c1b1881a4 100644
--- a/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/HazelcastConfigTest.java
+++ b/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/HazelcastConfigIntegrationTest.java
@@ -13,7 +13,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { HazelcastConfig.class }, webEnvironment = NONE)
-public class HazelcastConfigTest {
+public class HazelcastConfigIntegrationTest {
@Autowired private ApplicationContext applicationContext;
diff --git a/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/NotifierConfigurationTest.java b/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/NotifierConfigurationIntegrationTest.java
similarity index 96%
rename from spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/NotifierConfigurationTest.java
rename to spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/NotifierConfigurationIntegrationTest.java
index 85f6b374a4..465d079ac3 100644
--- a/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/NotifierConfigurationTest.java
+++ b/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/NotifierConfigurationIntegrationTest.java
@@ -16,7 +16,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { NotifierConfiguration.class }, webEnvironment = NONE)
-public class NotifierConfigurationTest {
+public class NotifierConfigurationIntegrationTest {
@Autowired private ApplicationContext applicationContext;
diff --git a/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/WebSecurityConfigTest.java b/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/WebSecurityConfigIntegrationTest.java
similarity index 97%
rename from spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/WebSecurityConfigTest.java
rename to spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/WebSecurityConfigIntegrationTest.java
index 40611f00f6..0c0695e6c2 100644
--- a/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/WebSecurityConfigTest.java
+++ b/spring-boot-admin/spring-boot-admin-server/src/test/java/com/baeldung/springbootadminserver/WebSecurityConfigIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
-public class WebSecurityConfigTest {
+public class WebSecurityConfigIntegrationTest {
@Autowired WebApplicationContext wac;
diff --git a/spring-boot-keycloak/src/test/java/com/baeldung/keycloak/KeycloakConfigurationTest.java b/spring-boot-keycloak/src/test/java/com/baeldung/keycloak/KeycloakConfigurationIntegrationTest.java
similarity index 97%
rename from spring-boot-keycloak/src/test/java/com/baeldung/keycloak/KeycloakConfigurationTest.java
rename to spring-boot-keycloak/src/test/java/com/baeldung/keycloak/KeycloakConfigurationIntegrationTest.java
index 41662e5c17..e0bbef1c7f 100644
--- a/spring-boot-keycloak/src/test/java/com/baeldung/keycloak/KeycloakConfigurationTest.java
+++ b/spring-boot-keycloak/src/test/java/com/baeldung/keycloak/KeycloakConfigurationIntegrationTest.java
@@ -20,7 +20,7 @@ import static org.mockito.Mockito.when;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = SpringBoot.class)
-public class KeycloakConfigurationTest {
+public class KeycloakConfigurationIntegrationTest {
@Spy
private KeycloakSecurityContextClientRequestInterceptor factory;
diff --git a/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTests.java b/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingIntegrationTest.java
similarity index 97%
rename from spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTests.java
rename to spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingIntegrationTest.java
index 88a142fcde..f81247e3cd 100644
--- a/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTests.java
+++ b/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingIntegrationTest.java
@@ -14,7 +14,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = DataSourceRoutingTestConfiguration.class)
-public class DataSourceRoutingTests {
+public class DataSourceRoutingIntegrationTest {
@Autowired
DataSource routingDatasource;
diff --git a/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTestConfiguration.java b/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTestConfiguration.java
index 595ad6ce0d..dee9d58722 100644
--- a/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTestConfiguration.java
+++ b/spring-boot/src/test/java/org/baeldung/dsrouting/DataSourceRoutingTestConfiguration.java
@@ -35,19 +35,17 @@ public class DataSourceRoutingTestConfiguration {
private DataSource clientADatasource() {
EmbeddedDatabaseBuilder dbBuilder = new EmbeddedDatabaseBuilder();
- EmbeddedDatabase embeddedDb = dbBuilder.setType(EmbeddedDatabaseType.H2)
+ return dbBuilder.setType(EmbeddedDatabaseType.H2)
.setName("CLIENT_A")
.addScript("classpath:dsrouting-db.sql")
.build();
- return embeddedDb;
}
private DataSource clientBDatasource() {
EmbeddedDatabaseBuilder dbBuilder = new EmbeddedDatabaseBuilder();
- EmbeddedDatabase embeddedDb = dbBuilder.setType(EmbeddedDatabaseType.H2)
+ return dbBuilder.setType(EmbeddedDatabaseType.H2)
.setName("CLIENT_B")
.addScript("classpath:dsrouting-db.sql")
.build();
- return embeddedDb;
}
}
diff --git a/spring-boot/src/test/java/org/baeldung/properties/ConfigPropertiesIntegrationTest.java b/spring-boot/src/test/java/org/baeldung/properties/ConfigPropertiesIntegrationTest.java
index a51e3a6884..ffd5bf55d6 100644
--- a/spring-boot/src/test/java/org/baeldung/properties/ConfigPropertiesIntegrationTest.java
+++ b/spring-boot/src/test/java/org/baeldung/properties/ConfigPropertiesIntegrationTest.java
@@ -1,7 +1,5 @@
package org.baeldung.properties;
-import org.baeldung.properties.ConfigProperties;
-import org.baeldung.properties.ConfigPropertiesDemoApplication;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/spring-jpa/src/main/resources/data.sql b/spring-boot/src/test/resources/data.sql
similarity index 100%
rename from spring-jpa/src/main/resources/data.sql
rename to spring-boot/src/test/resources/data.sql
diff --git a/spring-jpa/src/main/resources/schema.sql b/spring-boot/src/test/resources/schema.sql
similarity index 100%
rename from spring-jpa/src/main/resources/schema.sql
rename to spring-boot/src/test/resources/schema.sql
diff --git a/spring-jmeter-jenkins/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationTests.java b/spring-jmeter-jenkins/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java
similarity index 82%
rename from spring-jmeter-jenkins/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationTests.java
rename to spring-jmeter-jenkins/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java
index b39a5605b1..71eec9cf45 100644
--- a/spring-jmeter-jenkins/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationTests.java
+++ b/spring-jmeter-jenkins/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-public class SpringJMeterJenkinsApplicationTests {
+public class SpringJMeterJenkinsApplicationIntegrationTest {
@Test
public void contextLoads() {
diff --git a/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclTest.java b/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclIntegrationTest.java
similarity index 96%
rename from spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclTest.java
rename to spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclIntegrationTest.java
index fd9069d9bc..38e1a2a9e7 100644
--- a/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclTest.java
+++ b/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclIntegrationTest.java
@@ -1,119 +1,119 @@
-package org.baeldung.acl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.List;
-
-import org.baeldung.acl.persistence.dao.NoticeMessageRepository;
-import org.baeldung.acl.persistence.entity.NoticeMessage;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.access.AccessDeniedException;
-import org.springframework.security.test.context.support.WithMockUser;
-import org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestExecutionListeners;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
-import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
-import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
-import org.springframework.test.context.web.ServletTestExecutionListener;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration
-@TestExecutionListeners(listeners={ServletTestExecutionListener.class,
- DependencyInjectionTestExecutionListener.class,
- DirtiesContextTestExecutionListener.class,
- TransactionalTestExecutionListener.class,
- WithSecurityContextTestExecutionListener.class})
-public class SpringAclTest extends AbstractJUnit4SpringContextTests{
-
- private static Integer FIRST_MESSAGE_ID = 1;
- private static Integer SECOND_MESSAGE_ID = 2;
- private static Integer THIRD_MESSAGE_ID = 3;
- private static String EDITTED_CONTENT = "EDITED";
-
- @Configuration
- @ComponentScan("org.baeldung.acl.*")
- public static class SpringConfig {
-
- }
-
- @Autowired
- NoticeMessageRepository repo;
-
- @Test
- @WithMockUser(username="manager")
- public void givenUsernameManager_whenFindAllMessage_thenReturnFirstMessage(){
- List details = repo.findAll();
- assertNotNull(details);
- assertEquals(1,details.size());
- assertEquals(FIRST_MESSAGE_ID,details.get(0).getId());
- }
-
- @Test
- @WithMockUser(username="manager")
- public void givenUsernameManager_whenFindFirstMessageByIdAndUpdateFirstMessageContent_thenOK(){
- NoticeMessage firstMessage = repo.findById(FIRST_MESSAGE_ID);
- assertNotNull(firstMessage);
- assertEquals(FIRST_MESSAGE_ID,firstMessage.getId());
-
- firstMessage.setContent(EDITTED_CONTENT);
- repo.save(firstMessage);
-
- NoticeMessage editedFirstMessage = repo.findById(FIRST_MESSAGE_ID);
- assertNotNull(editedFirstMessage);
- assertEquals(FIRST_MESSAGE_ID,editedFirstMessage.getId());
- assertEquals(EDITTED_CONTENT,editedFirstMessage.getContent());
- }
-
- @Test
- @WithMockUser(username="hr")
- public void givenUsernameHr_whenFindMessageById2_thenOK(){
- NoticeMessage secondMessage = repo.findById(SECOND_MESSAGE_ID);
- assertNotNull(secondMessage);
- assertEquals(SECOND_MESSAGE_ID,secondMessage.getId());
- }
-
- @Test(expected=AccessDeniedException.class)
- @WithMockUser(username="hr")
- public void givenUsernameHr_whenUpdateMessageWithId2_thenFail(){
- NoticeMessage secondMessage = new NoticeMessage();
- secondMessage.setId(SECOND_MESSAGE_ID);
- secondMessage.setContent(EDITTED_CONTENT);
- repo.save(secondMessage);
- }
-
- @Test
- @WithMockUser(roles={"EDITOR"})
- public void givenRoleEditor_whenFindAllMessage_thenReturnThreeMessage(){
- List details = repo.findAll();
- assertNotNull(details);
- assertEquals(3,details.size());
- }
-
- @Test
- @WithMockUser(roles={"EDITOR"})
- public void givenRoleEditor_whenUpdateThirdMessage_thenOK(){
- NoticeMessage thirdMessage = new NoticeMessage();
- thirdMessage.setId(THIRD_MESSAGE_ID);
- thirdMessage.setContent(EDITTED_CONTENT);
- repo.save(thirdMessage);
- }
-
- @Test(expected=AccessDeniedException.class)
- @WithMockUser(roles={"EDITOR"})
- public void givenRoleEditor_whenFindFirstMessageByIdAndUpdateFirstMessageContent_thenFail(){
- NoticeMessage firstMessage = repo.findById(FIRST_MESSAGE_ID);
- assertNotNull(firstMessage);
- assertEquals(FIRST_MESSAGE_ID,firstMessage.getId());
- firstMessage.setContent(EDITTED_CONTENT);
- repo.save(firstMessage);
- }
-}
+package org.baeldung.acl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.List;
+
+import org.baeldung.acl.persistence.dao.NoticeMessageRepository;
+import org.baeldung.acl.persistence.entity.NoticeMessage;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.test.context.support.WithMockUser;
+import org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
+import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
+import org.springframework.test.context.web.ServletTestExecutionListener;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration
+@TestExecutionListeners(listeners={ServletTestExecutionListener.class,
+ DependencyInjectionTestExecutionListener.class,
+ DirtiesContextTestExecutionListener.class,
+ TransactionalTestExecutionListener.class,
+ WithSecurityContextTestExecutionListener.class})
+public class SpringAclIntegrationTest extends AbstractJUnit4SpringContextTests{
+
+ private static Integer FIRST_MESSAGE_ID = 1;
+ private static Integer SECOND_MESSAGE_ID = 2;
+ private static Integer THIRD_MESSAGE_ID = 3;
+ private static String EDITTED_CONTENT = "EDITED";
+
+ @Configuration
+ @ComponentScan("org.baeldung.acl.*")
+ public static class SpringConfig {
+
+ }
+
+ @Autowired
+ NoticeMessageRepository repo;
+
+ @Test
+ @WithMockUser(username="manager")
+ public void givenUsernameManager_whenFindAllMessage_thenReturnFirstMessage(){
+ List details = repo.findAll();
+ assertNotNull(details);
+ assertEquals(1,details.size());
+ assertEquals(FIRST_MESSAGE_ID,details.get(0).getId());
+ }
+
+ @Test
+ @WithMockUser(username="manager")
+ public void givenUsernameManager_whenFindFirstMessageByIdAndUpdateFirstMessageContent_thenOK(){
+ NoticeMessage firstMessage = repo.findById(FIRST_MESSAGE_ID);
+ assertNotNull(firstMessage);
+ assertEquals(FIRST_MESSAGE_ID,firstMessage.getId());
+
+ firstMessage.setContent(EDITTED_CONTENT);
+ repo.save(firstMessage);
+
+ NoticeMessage editedFirstMessage = repo.findById(FIRST_MESSAGE_ID);
+ assertNotNull(editedFirstMessage);
+ assertEquals(FIRST_MESSAGE_ID,editedFirstMessage.getId());
+ assertEquals(EDITTED_CONTENT,editedFirstMessage.getContent());
+ }
+
+ @Test
+ @WithMockUser(username="hr")
+ public void givenUsernameHr_whenFindMessageById2_thenOK(){
+ NoticeMessage secondMessage = repo.findById(SECOND_MESSAGE_ID);
+ assertNotNull(secondMessage);
+ assertEquals(SECOND_MESSAGE_ID,secondMessage.getId());
+ }
+
+ @Test(expected=AccessDeniedException.class)
+ @WithMockUser(username="hr")
+ public void givenUsernameHr_whenUpdateMessageWithId2_thenFail(){
+ NoticeMessage secondMessage = new NoticeMessage();
+ secondMessage.setId(SECOND_MESSAGE_ID);
+ secondMessage.setContent(EDITTED_CONTENT);
+ repo.save(secondMessage);
+ }
+
+ @Test
+ @WithMockUser(roles={"EDITOR"})
+ public void givenRoleEditor_whenFindAllMessage_thenReturnThreeMessage(){
+ List details = repo.findAll();
+ assertNotNull(details);
+ assertEquals(3,details.size());
+ }
+
+ @Test
+ @WithMockUser(roles={"EDITOR"})
+ public void givenRoleEditor_whenUpdateThirdMessage_thenOK(){
+ NoticeMessage thirdMessage = new NoticeMessage();
+ thirdMessage.setId(THIRD_MESSAGE_ID);
+ thirdMessage.setContent(EDITTED_CONTENT);
+ repo.save(thirdMessage);
+ }
+
+ @Test(expected=AccessDeniedException.class)
+ @WithMockUser(roles={"EDITOR"})
+ public void givenRoleEditor_whenFindFirstMessageByIdAndUpdateFirstMessageContent_thenFail(){
+ NoticeMessage firstMessage = repo.findById(FIRST_MESSAGE_ID);
+ assertNotNull(firstMessage);
+ assertEquals(FIRST_MESSAGE_ID,firstMessage.getId());
+ firstMessage.setContent(EDITTED_CONTENT);
+ repo.save(firstMessage);
+ }
+}
\ No newline at end of file