diff --git a/java-rmi/README.md b/core-java-modules/java-rmi/README.md
similarity index 100%
rename from java-rmi/README.md
rename to core-java-modules/java-rmi/README.md
diff --git a/java-rmi/pom.xml b/core-java-modules/java-rmi/pom.xml
similarity index 75%
rename from java-rmi/pom.xml
rename to core-java-modules/java-rmi/pom.xml
index 2256883f84..aa864b49c7 100644
--- a/java-rmi/pom.xml
+++ b/core-java-modules/java-rmi/pom.xml
@@ -9,9 +9,9 @@
jar
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/java-rmi/src/main/java/com/baeldung/rmi/Message.java b/core-java-modules/java-rmi/src/main/java/com/baeldung/rmi/Message.java
similarity index 100%
rename from java-rmi/src/main/java/com/baeldung/rmi/Message.java
rename to core-java-modules/java-rmi/src/main/java/com/baeldung/rmi/Message.java
diff --git a/java-rmi/src/main/java/com/baeldung/rmi/MessengerService.java b/core-java-modules/java-rmi/src/main/java/com/baeldung/rmi/MessengerService.java
similarity index 100%
rename from java-rmi/src/main/java/com/baeldung/rmi/MessengerService.java
rename to core-java-modules/java-rmi/src/main/java/com/baeldung/rmi/MessengerService.java
diff --git a/java-rmi/src/main/java/com/baeldung/rmi/MessengerServiceImpl.java b/core-java-modules/java-rmi/src/main/java/com/baeldung/rmi/MessengerServiceImpl.java
similarity index 100%
rename from java-rmi/src/main/java/com/baeldung/rmi/MessengerServiceImpl.java
rename to core-java-modules/java-rmi/src/main/java/com/baeldung/rmi/MessengerServiceImpl.java
diff --git a/java-rmi/src/main/resources/logback.xml b/core-java-modules/java-rmi/src/main/resources/logback.xml
similarity index 100%
rename from java-rmi/src/main/resources/logback.xml
rename to core-java-modules/java-rmi/src/main/resources/logback.xml
diff --git a/java-rmi/src/test/java/com/baeldung/rmi/JavaRMIIntegrationTest.java b/core-java-modules/java-rmi/src/test/java/com/baeldung/rmi/JavaRMIIntegrationTest.java
similarity index 100%
rename from java-rmi/src/test/java/com/baeldung/rmi/JavaRMIIntegrationTest.java
rename to core-java-modules/java-rmi/src/test/java/com/baeldung/rmi/JavaRMIIntegrationTest.java
diff --git a/java-spi/README.md b/core-java-modules/java-spi/README.md
similarity index 100%
rename from java-spi/README.md
rename to core-java-modules/java-spi/README.md
diff --git a/java-spi/exchange-rate-api/pom.xml b/core-java-modules/java-spi/exchange-rate-api/pom.xml
similarity index 100%
rename from java-spi/exchange-rate-api/pom.xml
rename to core-java-modules/java-spi/exchange-rate-api/pom.xml
diff --git a/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/ExchangeRate.java b/core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/ExchangeRate.java
similarity index 100%
rename from java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/ExchangeRate.java
rename to core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/ExchangeRate.java
diff --git a/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/Quote.java b/core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/Quote.java
similarity index 100%
rename from java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/Quote.java
rename to core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/Quote.java
diff --git a/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/QuoteManager.java b/core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/QuoteManager.java
similarity index 100%
rename from java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/QuoteManager.java
rename to core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/api/QuoteManager.java
diff --git a/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/exception/ProviderNotFoundException.java b/core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/exception/ProviderNotFoundException.java
similarity index 100%
rename from java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/exception/ProviderNotFoundException.java
rename to core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/exception/ProviderNotFoundException.java
diff --git a/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/spi/ExchangeRateProvider.java b/core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/spi/ExchangeRateProvider.java
similarity index 100%
rename from java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/spi/ExchangeRateProvider.java
rename to core-java-modules/java-spi/exchange-rate-api/src/main/java/com/baeldung/rate/spi/ExchangeRateProvider.java
diff --git a/java-spi/exchange-rate-api/src/main/resources/logback.xml b/core-java-modules/java-spi/exchange-rate-api/src/main/resources/logback.xml
similarity index 100%
rename from java-spi/exchange-rate-api/src/main/resources/logback.xml
rename to core-java-modules/java-spi/exchange-rate-api/src/main/resources/logback.xml
diff --git a/java-spi/exchange-rate-app/pom.xml b/core-java-modules/java-spi/exchange-rate-app/pom.xml
similarity index 100%
rename from java-spi/exchange-rate-app/pom.xml
rename to core-java-modules/java-spi/exchange-rate-app/pom.xml
diff --git a/java-spi/exchange-rate-app/src/main/java/com/baeldung/rate/app/MainApp.java b/core-java-modules/java-spi/exchange-rate-app/src/main/java/com/baeldung/rate/app/MainApp.java
similarity index 100%
rename from java-spi/exchange-rate-app/src/main/java/com/baeldung/rate/app/MainApp.java
rename to core-java-modules/java-spi/exchange-rate-app/src/main/java/com/baeldung/rate/app/MainApp.java
diff --git a/java-spi/exchange-rate-app/src/main/resources/logback.xml b/core-java-modules/java-spi/exchange-rate-app/src/main/resources/logback.xml
similarity index 100%
rename from java-spi/exchange-rate-app/src/main/resources/logback.xml
rename to core-java-modules/java-spi/exchange-rate-app/src/main/resources/logback.xml
diff --git a/java-spi/exchange-rate-impl/pom.xml b/core-java-modules/java-spi/exchange-rate-impl/pom.xml
similarity index 100%
rename from java-spi/exchange-rate-impl/pom.xml
rename to core-java-modules/java-spi/exchange-rate-impl/pom.xml
diff --git a/java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooFinanceExchangeRateProvider.java b/core-java-modules/java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooFinanceExchangeRateProvider.java
similarity index 100%
rename from java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooFinanceExchangeRateProvider.java
rename to core-java-modules/java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooFinanceExchangeRateProvider.java
diff --git a/java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooQuoteManagerImpl.java b/core-java-modules/java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooQuoteManagerImpl.java
similarity index 100%
rename from java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooQuoteManagerImpl.java
rename to core-java-modules/java-spi/exchange-rate-impl/src/main/java/com/baeldung/rate/impl/YahooQuoteManagerImpl.java
diff --git a/java-spi/exchange-rate-impl/src/main/resources/META-INF/services/com.baeldung.rate.spi.ExchangeRateProvider b/core-java-modules/java-spi/exchange-rate-impl/src/main/resources/META-INF/services/com.baeldung.rate.spi.ExchangeRateProvider
similarity index 100%
rename from java-spi/exchange-rate-impl/src/main/resources/META-INF/services/com.baeldung.rate.spi.ExchangeRateProvider
rename to core-java-modules/java-spi/exchange-rate-impl/src/main/resources/META-INF/services/com.baeldung.rate.spi.ExchangeRateProvider
diff --git a/java-spi/exchange-rate-impl/src/main/resources/logback.xml b/core-java-modules/java-spi/exchange-rate-impl/src/main/resources/logback.xml
similarity index 100%
rename from java-spi/exchange-rate-impl/src/main/resources/logback.xml
rename to core-java-modules/java-spi/exchange-rate-impl/src/main/resources/logback.xml
diff --git a/java-spi/pom.xml b/core-java-modules/java-spi/pom.xml
similarity index 79%
rename from java-spi/pom.xml
rename to core-java-modules/java-spi/pom.xml
index fac6409b9f..48538f03b5 100644
--- a/java-spi/pom.xml
+++ b/core-java-modules/java-spi/pom.xml
@@ -8,9 +8,9 @@
pom
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
diff --git a/java-websocket/README.md b/core-java-modules/java-websocket/README.md
similarity index 100%
rename from java-websocket/README.md
rename to core-java-modules/java-websocket/README.md
diff --git a/java-websocket/pom.xml b/core-java-modules/java-websocket/pom.xml
similarity index 87%
rename from java-websocket/pom.xml
rename to core-java-modules/java-websocket/pom.xml
index fd97fd9db3..8d8e57b765 100644
--- a/java-websocket/pom.xml
+++ b/core-java-modules/java-websocket/pom.xml
@@ -8,9 +8,9 @@
war
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
diff --git a/java-websocket/src/main/java/com/baeldung/model/Message.java b/core-java-modules/java-websocket/src/main/java/com/baeldung/model/Message.java
similarity index 100%
rename from java-websocket/src/main/java/com/baeldung/model/Message.java
rename to core-java-modules/java-websocket/src/main/java/com/baeldung/model/Message.java
diff --git a/java-websocket/src/main/java/com/baeldung/websocket/ChatEndpoint.java b/core-java-modules/java-websocket/src/main/java/com/baeldung/websocket/ChatEndpoint.java
similarity index 100%
rename from java-websocket/src/main/java/com/baeldung/websocket/ChatEndpoint.java
rename to core-java-modules/java-websocket/src/main/java/com/baeldung/websocket/ChatEndpoint.java
diff --git a/java-websocket/src/main/java/com/baeldung/websocket/MessageDecoder.java b/core-java-modules/java-websocket/src/main/java/com/baeldung/websocket/MessageDecoder.java
similarity index 100%
rename from java-websocket/src/main/java/com/baeldung/websocket/MessageDecoder.java
rename to core-java-modules/java-websocket/src/main/java/com/baeldung/websocket/MessageDecoder.java
diff --git a/java-websocket/src/main/java/com/baeldung/websocket/MessageEncoder.java b/core-java-modules/java-websocket/src/main/java/com/baeldung/websocket/MessageEncoder.java
similarity index 100%
rename from java-websocket/src/main/java/com/baeldung/websocket/MessageEncoder.java
rename to core-java-modules/java-websocket/src/main/java/com/baeldung/websocket/MessageEncoder.java
diff --git a/java-websocket/src/main/resources/logback.xml b/core-java-modules/java-websocket/src/main/resources/logback.xml
similarity index 100%
rename from java-websocket/src/main/resources/logback.xml
rename to core-java-modules/java-websocket/src/main/resources/logback.xml
diff --git a/java-websocket/src/main/webapp/WEB-INF/beans.xml b/core-java-modules/java-websocket/src/main/webapp/WEB-INF/beans.xml
similarity index 100%
rename from java-websocket/src/main/webapp/WEB-INF/beans.xml
rename to core-java-modules/java-websocket/src/main/webapp/WEB-INF/beans.xml
diff --git a/java-websocket/src/main/webapp/WEB-INF/web.xml b/core-java-modules/java-websocket/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from java-websocket/src/main/webapp/WEB-INF/web.xml
rename to core-java-modules/java-websocket/src/main/webapp/WEB-INF/web.xml
diff --git a/java-websocket/src/main/webapp/index.html b/core-java-modules/java-websocket/src/main/webapp/index.html
similarity index 100%
rename from java-websocket/src/main/webapp/index.html
rename to core-java-modules/java-websocket/src/main/webapp/index.html
diff --git a/java-websocket/src/main/webapp/style.css b/core-java-modules/java-websocket/src/main/webapp/style.css
similarity index 100%
rename from java-websocket/src/main/webapp/style.css
rename to core-java-modules/java-websocket/src/main/webapp/style.css
diff --git a/java-websocket/src/main/webapp/websocket.js b/core-java-modules/java-websocket/src/main/webapp/websocket.js
similarity index 100%
rename from java-websocket/src/main/webapp/websocket.js
rename to core-java-modules/java-websocket/src/main/webapp/websocket.js
diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml
index 16d01dd1d3..7b26afbfd5 100644
--- a/core-java-modules/pom.xml
+++ b/core-java-modules/pom.xml
@@ -210,6 +210,9 @@
core-java-datetime-conversion
core-java-httpclient
java-native
+ java-rmi
+ java-spi
+ java-websocket
diff --git a/jib/README.md b/docker-modules/jib/README.md
similarity index 100%
rename from jib/README.md
rename to docker-modules/jib/README.md
diff --git a/jib/pom.xml b/docker-modules/jib/pom.xml
similarity index 96%
rename from jib/pom.xml
rename to docker-modules/jib/pom.xml
index 2bdaa258f5..451f855481 100644
--- a/jib/pom.xml
+++ b/docker-modules/jib/pom.xml
@@ -10,7 +10,7 @@
com.baeldung
parent-boot-2
0.0.1-SNAPSHOT
- ../parent-boot-2
+ ../../parent-boot-2
diff --git a/jib/src/main/java/com/baeldung/Application.java b/docker-modules/jib/src/main/java/com/baeldung/Application.java
similarity index 100%
rename from jib/src/main/java/com/baeldung/Application.java
rename to docker-modules/jib/src/main/java/com/baeldung/Application.java
diff --git a/jib/src/main/java/com/baeldung/Greeting.java b/docker-modules/jib/src/main/java/com/baeldung/Greeting.java
similarity index 100%
rename from jib/src/main/java/com/baeldung/Greeting.java
rename to docker-modules/jib/src/main/java/com/baeldung/Greeting.java
diff --git a/jib/src/main/java/com/baeldung/GreetingController.java b/docker-modules/jib/src/main/java/com/baeldung/GreetingController.java
similarity index 100%
rename from jib/src/main/java/com/baeldung/GreetingController.java
rename to docker-modules/jib/src/main/java/com/baeldung/GreetingController.java
diff --git a/kaniko/README.md b/docker-modules/kaniko/README.md
similarity index 100%
rename from kaniko/README.md
rename to docker-modules/kaniko/README.md
diff --git a/kaniko/dockerfile b/docker-modules/kaniko/dockerfile
similarity index 100%
rename from kaniko/dockerfile
rename to docker-modules/kaniko/dockerfile
diff --git a/kaniko/pod.yaml b/docker-modules/kaniko/pod.yaml
similarity index 100%
rename from kaniko/pod.yaml
rename to docker-modules/kaniko/pod.yaml
diff --git a/kaniko/volume-claim.yaml b/docker-modules/kaniko/volume-claim.yaml
similarity index 100%
rename from kaniko/volume-claim.yaml
rename to docker-modules/kaniko/volume-claim.yaml
diff --git a/kaniko/volume.yaml b/docker-modules/kaniko/volume.yaml
similarity index 100%
rename from kaniko/volume.yaml
rename to docker-modules/kaniko/volume.yaml
diff --git a/docker-modules/pom.xml b/docker-modules/pom.xml
index 4eeab746eb..bf35ef23ab 100644
--- a/docker-modules/pom.xml
+++ b/docker-modules/pom.xml
@@ -22,6 +22,8 @@
docker-spring-boot
docker-spring-boot-postgres
docker-java-jar
+ jib
+
\ No newline at end of file
diff --git a/lagom/greeting-impl/bin/classes/application.conf b/lagom/greeting-impl/bin/classes/application.conf
deleted file mode 100644
index 3fd21ae72b..0000000000
--- a/lagom/greeting-impl/bin/classes/application.conf
+++ /dev/null
@@ -1 +0,0 @@
-play.modules.enabled += com.baeldung.lagom.helloworld.greeting.impl.GreetingServiceModule
\ No newline at end of file
diff --git a/lagom/greeting-impl/src/main/resources/application.conf b/lagom/greeting-impl/src/main/resources/application.conf
deleted file mode 100644
index 3fd21ae72b..0000000000
--- a/lagom/greeting-impl/src/main/resources/application.conf
+++ /dev/null
@@ -1 +0,0 @@
-play.modules.enabled += com.baeldung.lagom.helloworld.greeting.impl.GreetingServiceModule
\ No newline at end of file
diff --git a/lagom/weather-impl/src/main/resources/application.conf b/lagom/weather-impl/src/main/resources/application.conf
deleted file mode 100644
index 53d2dff8f2..0000000000
--- a/lagom/weather-impl/src/main/resources/application.conf
+++ /dev/null
@@ -1 +0,0 @@
-play.modules.enabled += com.baeldung.lagom.helloworld.weather.impl.WeatherServiceModule
\ No newline at end of file
diff --git a/lagom/.gitignore b/microservices-modules/lagom/.gitignore
similarity index 100%
rename from lagom/.gitignore
rename to microservices-modules/lagom/.gitignore
diff --git a/lagom/README.md b/microservices-modules/lagom/README.md
similarity index 100%
rename from lagom/README.md
rename to microservices-modules/lagom/README.md
diff --git a/lagom/build.sbt b/microservices-modules/lagom/build.sbt
similarity index 100%
rename from lagom/build.sbt
rename to microservices-modules/lagom/build.sbt
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/api/GreetingService.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/api/GreetingService.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/api/GreetingService.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/api/GreetingService.java
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingCommand.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingCommand.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingCommand.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingCommand.java
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEntity.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEntity.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEntity.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEntity.java
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEvent.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEvent.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEvent.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingEvent.java
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceImpl.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceImpl.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceImpl.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceImpl.java
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceModule.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceModule.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceModule.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingServiceModule.java
diff --git a/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingState.java b/microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingState.java
similarity index 100%
rename from lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingState.java
rename to microservices-modules/lagom/greeting-api/src/main/java/com/baeldung/lagom/helloworld/greeting/impl/GreetingState.java
diff --git a/jersey/src/main/resources/logback.xml b/microservices-modules/lagom/greeting-api/src/main/resources/logback.xml
similarity index 100%
rename from jersey/src/main/resources/logback.xml
rename to microservices-modules/lagom/greeting-api/src/main/resources/logback.xml
diff --git a/lagom/greeting-impl/bin/application.conf b/microservices-modules/lagom/greeting-impl/src/main/resources/application.conf
similarity index 100%
rename from lagom/greeting-impl/bin/application.conf
rename to microservices-modules/lagom/greeting-impl/src/main/resources/application.conf
diff --git a/jmeter/src/main/resources/logback.xml b/microservices-modules/lagom/greeting-impl/src/main/resources/logback.xml
similarity index 100%
rename from jmeter/src/main/resources/logback.xml
rename to microservices-modules/lagom/greeting-impl/src/main/resources/logback.xml
diff --git a/lagom/project/build.properties b/microservices-modules/lagom/project/build.properties
similarity index 100%
rename from lagom/project/build.properties
rename to microservices-modules/lagom/project/build.properties
diff --git a/lagom/project/plugins.sbt b/microservices-modules/lagom/project/plugins.sbt
similarity index 100%
rename from lagom/project/plugins.sbt
rename to microservices-modules/lagom/project/plugins.sbt
diff --git a/lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherService.java b/microservices-modules/lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherService.java
similarity index 100%
rename from lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherService.java
rename to microservices-modules/lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherService.java
diff --git a/lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherStats.java b/microservices-modules/lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherStats.java
similarity index 100%
rename from lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherStats.java
rename to microservices-modules/lagom/weather-api/src/main/java/com/baeldung/lagom/helloworld/weather/api/WeatherStats.java
diff --git a/lagom/greeting-api/src/main/resources/logback.xml b/microservices-modules/lagom/weather-api/src/main/resources/logback.xml
similarity index 100%
rename from lagom/greeting-api/src/main/resources/logback.xml
rename to microservices-modules/lagom/weather-api/src/main/resources/logback.xml
diff --git a/lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceImpl.java b/microservices-modules/lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceImpl.java
similarity index 100%
rename from lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceImpl.java
rename to microservices-modules/lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceImpl.java
diff --git a/lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceModule.java b/microservices-modules/lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceModule.java
similarity index 100%
rename from lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceModule.java
rename to microservices-modules/lagom/weather-impl/src/main/java/com/baeldung/lagom/helloworld/weather/impl/WeatherServiceModule.java
diff --git a/lagom/weather-impl/bin/application.conf b/microservices-modules/lagom/weather-impl/src/main/resources/application.conf
similarity index 100%
rename from lagom/weather-impl/bin/application.conf
rename to microservices-modules/lagom/weather-impl/src/main/resources/application.conf
diff --git a/lagom/greeting-impl/src/main/resources/logback.xml b/microservices-modules/lagom/weather-impl/src/main/resources/logback.xml
similarity index 100%
rename from lagom/greeting-impl/src/main/resources/logback.xml
rename to microservices-modules/lagom/weather-impl/src/main/resources/logback.xml
diff --git a/microservices-modules/pom.xml b/microservices-modules/pom.xml
index a9cd8d2cd9..4b46e7cd1b 100644
--- a/microservices-modules/pom.xml
+++ b/microservices-modules/pom.xml
@@ -15,6 +15,7 @@
helidon
+
micronaut
microprofile
msf4j
diff --git a/pom.xml b/pom.xml
index 69049d5402..62d33aca8e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -350,7 +350,6 @@
-
libraries-jdk8
@@ -520,8 +519,6 @@
-
-
libraries-jdk8
lombok-modules/lombok-custom
@@ -735,22 +732,15 @@
java-blockchain
java-jdi
- java-rmi
- java-spi
- java-websocket
javafx
javax-sound
javaxval-2
javaxval
jaxb
- jersey
jetbrains
jgit
- jib
- jmeter
jmh
- jsf
json-modules
jsoup
jws
@@ -985,22 +975,15 @@
java-blockchain
java-jdi
- java-rmi
- java-spi
- java-websocket
javafx
javax-sound
javaxval-2
javaxval
jaxb
- jersey
jetbrains
jgit
- jib
- jmeter
jmh
- jsf
json-modules
jsoup
jws
diff --git a/jmeter/.gitignore b/testing-modules/jmeter/.gitignore
similarity index 100%
rename from jmeter/.gitignore
rename to testing-modules/jmeter/.gitignore
diff --git a/jmeter/.mvn/wrapper/maven-wrapper.jar b/testing-modules/jmeter/.mvn/wrapper/maven-wrapper.jar
similarity index 100%
rename from jmeter/.mvn/wrapper/maven-wrapper.jar
rename to testing-modules/jmeter/.mvn/wrapper/maven-wrapper.jar
diff --git a/jmeter/.mvn/wrapper/maven-wrapper.properties b/testing-modules/jmeter/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from jmeter/.mvn/wrapper/maven-wrapper.properties
rename to testing-modules/jmeter/.mvn/wrapper/maven-wrapper.properties
diff --git a/jmeter/README.md b/testing-modules/jmeter/README.md
similarity index 100%
rename from jmeter/README.md
rename to testing-modules/jmeter/README.md
diff --git a/jmeter/jmeter.log b/testing-modules/jmeter/jmeter.log
similarity index 100%
rename from jmeter/jmeter.log
rename to testing-modules/jmeter/jmeter.log
diff --git a/jmeter/mvnw b/testing-modules/jmeter/mvnw
old mode 100755
new mode 100644
similarity index 100%
rename from jmeter/mvnw
rename to testing-modules/jmeter/mvnw
diff --git a/jmeter/mvnw.cmd b/testing-modules/jmeter/mvnw.cmd
similarity index 100%
rename from jmeter/mvnw.cmd
rename to testing-modules/jmeter/mvnw.cmd
diff --git a/jmeter/pom.xml b/testing-modules/jmeter/pom.xml
similarity index 99%
rename from jmeter/pom.xml
rename to testing-modules/jmeter/pom.xml
index 5f4105d282..67a21f6c86 100644
--- a/jmeter/pom.xml
+++ b/testing-modules/jmeter/pom.xml
@@ -12,7 +12,7 @@
com.baeldung
parent-boot-2
0.0.1-SNAPSHOT
- ../parent-boot-2
+ ../../parent-boot-2
diff --git a/jmeter/src/main/java/com/baeldung/SpringJMeterJenkinsApplication.java b/testing-modules/jmeter/src/main/java/com/baeldung/SpringJMeterJenkinsApplication.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/SpringJMeterJenkinsApplication.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/SpringJMeterJenkinsApplication.java
diff --git a/jmeter/src/main/java/com/baeldung/configuration/WebSecurityConfiguration.java b/testing-modules/jmeter/src/main/java/com/baeldung/configuration/WebSecurityConfiguration.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/configuration/WebSecurityConfiguration.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/configuration/WebSecurityConfiguration.java
diff --git a/jmeter/src/main/java/com/baeldung/controller/RetrieveUuidController.java b/testing-modules/jmeter/src/main/java/com/baeldung/controller/RetrieveUuidController.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/controller/RetrieveUuidController.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/controller/RetrieveUuidController.java
diff --git a/jmeter/src/main/java/com/baeldung/controller/SecuredUuidController.java b/testing-modules/jmeter/src/main/java/com/baeldung/controller/SecuredUuidController.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/controller/SecuredUuidController.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/controller/SecuredUuidController.java
diff --git a/jmeter/src/main/java/com/baeldung/dashboard/DashboardApplication.java b/testing-modules/jmeter/src/main/java/com/baeldung/dashboard/DashboardApplication.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/dashboard/DashboardApplication.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/dashboard/DashboardApplication.java
diff --git a/jmeter/src/main/java/com/baeldung/dashboard/controllers/Dashboard.java b/testing-modules/jmeter/src/main/java/com/baeldung/dashboard/controllers/Dashboard.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/dashboard/controllers/Dashboard.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/dashboard/controllers/Dashboard.java
diff --git a/jmeter/src/main/java/com/baeldung/dashboard/models/Quotes.java b/testing-modules/jmeter/src/main/java/com/baeldung/dashboard/models/Quotes.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/dashboard/models/Quotes.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/dashboard/models/Quotes.java
diff --git a/jmeter/src/main/java/com/baeldung/domain/Student.java b/testing-modules/jmeter/src/main/java/com/baeldung/domain/Student.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/domain/Student.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/domain/Student.java
diff --git a/jmeter/src/main/java/com/baeldung/model/Response.java b/testing-modules/jmeter/src/main/java/com/baeldung/model/Response.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/model/Response.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/model/Response.java
diff --git a/jmeter/src/main/java/com/baeldung/repository/StudentRepository.java b/testing-modules/jmeter/src/main/java/com/baeldung/repository/StudentRepository.java
similarity index 100%
rename from jmeter/src/main/java/com/baeldung/repository/StudentRepository.java
rename to testing-modules/jmeter/src/main/java/com/baeldung/repository/StudentRepository.java
diff --git a/jmeter/src/main/resources/20171213-JMeter.csv b/testing-modules/jmeter/src/main/resources/20171213-JMeter.csv
similarity index 100%
rename from jmeter/src/main/resources/20171213-JMeter.csv
rename to testing-modules/jmeter/src/main/resources/20171213-JMeter.csv
diff --git a/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - JSR223.csv b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - JSR223.csv
new file mode 100644
index 0000000000..e5cd1ee8da
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - JSR223.csv
@@ -0,0 +1,8 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
+1676710986043,566,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,565
diff --git a/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - authorization manager with CSV.csv b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - authorization manager with CSV.csv
new file mode 100644
index 0000000000..f8f7b1c4aa
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - authorization manager with CSV.csv
@@ -0,0 +1 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
diff --git a/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - authorization manager.csv b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - authorization manager.csv
new file mode 100644
index 0000000000..046a8b6952
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication - authorization manager.csv
@@ -0,0 +1,8 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
+1676711042893,242,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,241
diff --git a/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication.csv b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication.csv
new file mode 100644
index 0000000000..437a166983
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20230218-Basic Authentication.csv
@@ -0,0 +1,71 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
+1676711056693,272,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,271
+1676711056996,4,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,4
+1676711057419,14,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-2,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,13
+1676711057445,5,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-2,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,4
+1676711058459,4,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-3,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,4
+1676711058467,3,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-3,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,3
+1676711059400,3,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-4,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,3
+1676711059405,2,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-4,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,2
+1676711060398,3,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-5,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,3
+1676711060404,3,Soap Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Number of Users 1-5,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: java.net.ConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2215,0,1,1,0,0,3
diff --git a/testing-modules/jmeter/src/main/resources/20230218-JMeter - Latency Vs Load Time.csv b/testing-modules/jmeter/src/main/resources/20230218-JMeter - Latency Vs Load Time.csv
new file mode 100644
index 0000000000..af582e356d
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20230218-JMeter - Latency Vs Load Time.csv
@@ -0,0 +1,2 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
+1676711079234,183,HTTP Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Thread Group 1-1,text,false,,2215,0,1,1,0,0,183
diff --git a/testing-modules/jmeter/src/main/resources/20230218-JMeter.csv b/testing-modules/jmeter/src/main/resources/20230218-JMeter.csv
new file mode 100644
index 0000000000..5b3af58dd9
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20230218-JMeter.csv
@@ -0,0 +1,6 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
+1676711094371,176,HTTP Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Thread Group 1-1,text,false,"The operation lasted too long: It took 176 milliseconds, but should not have lasted longer than 10 milliseconds.",2215,0,3,3,0,0,175
+1676711094372,176,HTTP Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Thread Group 1-2,text,false,"The operation lasted too long: It took 176 milliseconds, but should not have lasted longer than 10 milliseconds.",2215,0,3,3,0,0,175
+1676711094556,10,HTTP Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Thread Group 1-3,text,false,,2215,0,1,1,0,0,9
+1676711094755,3,HTTP Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Thread Group 1-4,text,false,,2215,0,1,1,0,0,3
+1676711094954,3,HTTP Request,Non HTTP response code: java.net.ConnectException,Non HTTP response message: Connection refused: connect,Thread Group 1-5,text,false,,2215,0,1,1,0,0,3
diff --git a/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - JSR223.csv b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - JSR223.csv
new file mode 100644
index 0000000000..3c58509da1
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - JSR223.csv
@@ -0,0 +1,8 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684618895,36,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,36
diff --git a/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - authorization manager with CSV.csv b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - authorization manager with CSV.csv
new file mode 100644
index 0000000000..d9ef28eda1
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - authorization manager with CSV.csv
@@ -0,0 +1 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
diff --git a/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - authorization manager.csv b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - authorization manager.csv
new file mode 100644
index 0000000000..b6cf8a4eb5
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication - authorization manager.csv
@@ -0,0 +1,8 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684613746,78,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,78
diff --git a/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication.csv b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication.csv
new file mode 100644
index 0000000000..9d300b8c7a
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-Basic Authentication.csv
@@ -0,0 +1,71 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684622694,46,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,46
+1703684622755,2,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-1,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,2
+1703684623515,4,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-2,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,4
+1703684623524,3,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-2,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,3
+1703684624513,4,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-3,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,4
+1703684624522,5,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-3,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,5
+1703684625514,5,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-4,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,5
+1703684625523,5,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-4,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,5
+1703684626512,6,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-5,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,6
+1703684626522,3,Soap Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Number of Users 1-5,text,false,"Test failed: code expected to equal /
+
+****** received : [[[Non HTTP response code: org.apache.http.conn.HttpHostConnectException]]]
+
+****** comparison: [[[200 ]]]
+
+/",2630,0,1,1,http://localhost:8080/secured/uuid,0,0,3
diff --git a/testing-modules/jmeter/src/main/resources/20231227-FileExtractionExample.csv b/testing-modules/jmeter/src/main/resources/20231227-FileExtractionExample.csv
new file mode 100644
index 0000000000..7a20e9996b
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-FileExtractionExample.csv
@@ -0,0 +1,2 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684634069,50,Call GET Test endpoint ,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-1,text,false,,2630,0,1,1,http://localhost:8080/api/test,0,0,50
diff --git a/testing-modules/jmeter/src/main/resources/20231227-JMeter - Latency Vs Load Time.csv b/testing-modules/jmeter/src/main/resources/20231227-JMeter - Latency Vs Load Time.csv
new file mode 100644
index 0000000000..b96a0282df
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-JMeter - Latency Vs Load Time.csv
@@ -0,0 +1,2 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684637458,61,HTTP Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:3000 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-1,text,false,,2630,0,1,1,http://localhost:3000,0,0,60
diff --git a/testing-modules/jmeter/src/main/resources/20231227-JMeter.csv b/testing-modules/jmeter/src/main/resources/20231227-JMeter.csv
new file mode 100644
index 0000000000..81b3054cde
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-JMeter.csv
@@ -0,0 +1,6 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684641070,57,HTTP Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8989 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-2,text,false,"The operation lasted too long: It took 57 milliseconds, but should not have lasted longer than 10 milliseconds.",2630,0,2,2,http://localhost:8989/students,0,0,56
+1703684641072,55,HTTP Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8989 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-1,text,false,"The operation lasted too long: It took 55 milliseconds, but should not have lasted longer than 10 milliseconds.",2630,0,2,2,http://localhost:8989/students,0,0,54
+1703684641237,2,HTTP Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8989 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-3,text,false,,2630,0,1,1,http://localhost:8989/students,0,0,2
+1703684641433,1,HTTP Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8989 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-4,text,false,,2630,0,1,1,http://localhost:8989/students,0,0,1
+1703684641635,5,HTTP Request,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8989 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-5,text,false,,2630,0,1,1,http://localhost:8989/students,0,0,5
diff --git a/testing-modules/jmeter/src/main/resources/20231227-dashboard_ReportsDashboard.csv b/testing-modules/jmeter/src/main/resources/20231227-dashboard_ReportsDashboard.csv
new file mode 100644
index 0000000000..e119f6f08e
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-dashboard_ReportsDashboard.csv
@@ -0,0 +1,16 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684629839,26,HTTP Request (/greeting),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-2,text,false,,2630,0,2,2,http://localhost:8080/greeting,0,0,26
+1703684629818,46,HTTP Request (/greeting),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-1,text,false,,2630,0,2,2,http://localhost:8080/greeting,0,0,46
+1703684629871,2,HTTP Request (/quote),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-1,text,false,,2630,0,2,2,http://localhost:8080/quote,0,0,2
+1703684629871,3,HTTP Request (/quote),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-2,text,false,,2630,0,2,2,http://localhost:8080/quote,0,0,3
+1703684629875,2,HTTP Request (/time),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-1,text,false,,2630,0,2,2,http://localhost:8080/time,0,0,2
+1703684629878,5,HTTP Request (/time),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-2,text,false,,2630,0,1,1,http://localhost:8080/time,0,0,4
+1703684630036,5,HTTP Request (/greeting),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-3,text,false,,2630,0,1,1,http://localhost:8080/greeting,0,0,5
+1703684630045,3,HTTP Request (/quote),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-3,text,false,,2630,0,1,1,http://localhost:8080/quote,0,0,3
+1703684630051,3,HTTP Request (/time),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-3,text,false,,2630,0,1,1,http://localhost:8080/time,0,0,3
+1703684630238,8,HTTP Request (/greeting),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-4,text,false,,2630,0,1,1,http://localhost:8080/greeting,0,0,8
+1703684630257,9,HTTP Request (/quote),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-4,text,false,,2630,0,1,1,http://localhost:8080/quote,0,0,6
+1703684630275,10,HTTP Request (/time),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-4,text,false,,2630,0,1,1,http://localhost:8080/time,0,0,9
+1703684630435,3,HTTP Request (/greeting),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-5,text,false,,2630,0,1,1,http://localhost:8080/greeting,0,0,3
+1703684630443,5,HTTP Request (/quote),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-5,text,false,,2630,0,1,1,http://localhost:8080/quote,0,0,5
+1703684630451,4,HTTP Request (/time),Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",Thread Group 1-5,text,false,,2630,0,1,1,http://localhost:8080/time,0,0,4
diff --git a/testing-modules/jmeter/src/main/resources/20231227-summary-report_Summary-Report.csv b/testing-modules/jmeter/src/main/resources/20231227-summary-report_Summary-Report.csv
new file mode 100644
index 0000000000..61a9e9ea27
--- /dev/null
+++ b/testing-modules/jmeter/src/main/resources/20231227-summary-report_Summary-Report.csv
@@ -0,0 +1,51 @@
+timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
+1703684645545,2050,HTTP Request,200,OK,Thread Group 1-3,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,1860,0,1606
+1703684645851,1744,HTTP Request,200,OK,Thread Group 1-5,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,1555,0,1304
+1703684645291,2304,HTTP Request,200,OK,Thread Group 1-2,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,2144,0,1867
+1703684645290,2304,HTTP Request,200,OK,Thread Group 1-1,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,2162,0,1904
+1703684645662,1933,HTTP Request,200,OK,Thread Group 1-4,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,1772,0,1500
+1703684647606,223,HTTP Request,200,OK,Thread Group 1-3,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,223,0,0
+1703684647602,235,HTTP Request,200,OK,Thread Group 1-5,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,234,0,0
+1703684647602,234,HTTP Request,200,OK,Thread Group 1-4,text,true,,685,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,233,0,0
+1703684647603,238,HTTP Request,200,OK,Thread Group 1-2,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,235,0,0
+1703684647604,245,HTTP Request,200,OK,Thread Group 1-1,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,244,0,0
+1703684647831,230,HTTP Request,200,OK,Thread Group 1-3,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,229,0,0
+1703684647839,257,HTTP Request,200,OK,Thread Group 1-4,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,256,0,0
+1703684647838,258,HTTP Request,200,OK,Thread Group 1-5,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,257,0,0
+1703684647842,256,HTTP Request,200,OK,Thread Group 1-2,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,255,0,0
+1703684647851,251,HTTP Request,200,OK,Thread Group 1-1,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,251,0,0
+1703684648063,227,HTTP Request,200,OK,Thread Group 1-3,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,226,0,0
+1703684648097,246,HTTP Request,200,OK,Thread Group 1-4,text,true,,681,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,245,0,0
+1703684648100,243,HTTP Request,200,OK,Thread Group 1-2,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,242,0,0
+1703684648097,250,HTTP Request,200,OK,Thread Group 1-5,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,247,0,0
+1703684648103,261,HTTP Request,200,OK,Thread Group 1-1,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,260,0,0
+1703684648292,224,HTTP Request,200,OK,Thread Group 1-3,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,224,0,0
+1703684648345,234,HTTP Request,200,OK,Thread Group 1-4,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,234,0,0
+1703684648345,253,HTTP Request,200,OK,Thread Group 1-2,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,252,0,0
+1703684648349,254,HTTP Request,200,OK,Thread Group 1-5,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,253,0,0
+1703684648366,247,HTTP Request,200,OK,Thread Group 1-1,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,246,0,0
+1703684648518,227,HTTP Request,200,OK,Thread Group 1-3,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,226,0,0
+1703684648580,237,HTTP Request,200,OK,Thread Group 1-4,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,237,0,0
+1703684648599,234,HTTP Request,200,OK,Thread Group 1-2,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,234,0,0
+1703684648604,238,HTTP Request,200,OK,Thread Group 1-5,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,238,0,0
+1703684648614,244,HTTP Request,200,OK,Thread Group 1-1,text,true,,681,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,244,0,0
+1703684648746,222,HTTP Request,200,OK,Thread Group 1-3,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,222,0,0
+1703684648818,232,HTTP Request,200,OK,Thread Group 1-4,text,true,,685,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,232,0,0
+1703684648834,235,HTTP Request,200,OK,Thread Group 1-2,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,235,0,0
+1703684648844,229,HTTP Request,200,OK,Thread Group 1-5,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,229,0,0
+1703684648859,243,HTTP Request,200,OK,Thread Group 1-1,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,242,0,0
+1703684648969,225,HTTP Request,200,OK,Thread Group 1-3,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,224,0,0
+1703684649051,232,HTTP Request,200,OK,Thread Group 1-4,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,232,0,0
+1703684649070,231,HTTP Request,200,OK,Thread Group 1-2,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,231,0,0
+1703684649074,230,HTTP Request,200,OK,Thread Group 1-5,text,true,,681,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,230,0,0
+1703684649103,242,HTTP Request,200,OK,Thread Group 1-1,text,true,,679,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,241,0,0
+1703684649194,227,HTTP Request,200,OK,Thread Group 1-3,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,226,0,0
+1703684649284,233,HTTP Request,200,OK,Thread Group 1-4,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,232,0,0
+1703684649303,232,HTTP Request,200,OK,Thread Group 1-2,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,231,0,0
+1703684649305,233,HTTP Request,200,OK,Thread Group 1-5,text,true,,675,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,233,0,0
+1703684649346,242,HTTP Request,200,OK,Thread Group 1-1,text,true,,681,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,242,0,0
+1703684649422,227,HTTP Request,200,OK,Thread Group 1-3,text,true,,677,141,5,5,https://postman-echo.com/get?foo1=bar1&foo2=bar2,227,0,0
+1703684649518,232,HTTP Request,200,OK,Thread Group 1-4,text,true,,683,141,4,4,https://postman-echo.com/get?foo1=bar1&foo2=bar2,232,0,0
+1703684649536,234,HTTP Request,200,OK,Thread Group 1-2,text,true,,679,141,3,3,https://postman-echo.com/get?foo1=bar1&foo2=bar2,234,0,0
+1703684649539,234,HTTP Request,200,OK,Thread Group 1-5,text,true,,675,141,2,2,https://postman-echo.com/get?foo1=bar1&foo2=bar2,234,0,0
+1703684649589,249,HTTP Request,200,OK,Thread Group 1-1,text,true,,675,141,1,1,https://postman-echo.com/get?foo1=bar1&foo2=bar2,249,0,0
diff --git a/jmeter/src/main/resources/Basic Authentication - JSR223.jmx b/testing-modules/jmeter/src/main/resources/Basic Authentication - JSR223.jmx
similarity index 100%
rename from jmeter/src/main/resources/Basic Authentication - JSR223.jmx
rename to testing-modules/jmeter/src/main/resources/Basic Authentication - JSR223.jmx
diff --git a/jmeter/src/main/resources/Basic Authentication - authorization manager with CSV.jmx b/testing-modules/jmeter/src/main/resources/Basic Authentication - authorization manager with CSV.jmx
similarity index 100%
rename from jmeter/src/main/resources/Basic Authentication - authorization manager with CSV.jmx
rename to testing-modules/jmeter/src/main/resources/Basic Authentication - authorization manager with CSV.jmx
diff --git a/jmeter/src/main/resources/Basic Authentication - authorization manager.jmx b/testing-modules/jmeter/src/main/resources/Basic Authentication - authorization manager.jmx
similarity index 100%
rename from jmeter/src/main/resources/Basic Authentication - authorization manager.jmx
rename to testing-modules/jmeter/src/main/resources/Basic Authentication - authorization manager.jmx
diff --git a/jmeter/src/main/resources/Basic Authentication.jmx b/testing-modules/jmeter/src/main/resources/Basic Authentication.jmx
similarity index 100%
rename from jmeter/src/main/resources/Basic Authentication.jmx
rename to testing-modules/jmeter/src/main/resources/Basic Authentication.jmx
diff --git a/jmeter/src/main/resources/FileExtractionExample.jmx b/testing-modules/jmeter/src/main/resources/FileExtractionExample.jmx
similarity index 100%
rename from jmeter/src/main/resources/FileExtractionExample.jmx
rename to testing-modules/jmeter/src/main/resources/FileExtractionExample.jmx
diff --git a/jmeter/src/main/resources/JMeter - Latency Vs Load Time.jmx b/testing-modules/jmeter/src/main/resources/JMeter - Latency Vs Load Time.jmx
similarity index 100%
rename from jmeter/src/main/resources/JMeter - Latency Vs Load Time.jmx
rename to testing-modules/jmeter/src/main/resources/JMeter - Latency Vs Load Time.jmx
diff --git a/jmeter/src/main/resources/JMeter.jmx b/testing-modules/jmeter/src/main/resources/JMeter.jmx
similarity index 100%
rename from jmeter/src/main/resources/JMeter.jmx
rename to testing-modules/jmeter/src/main/resources/JMeter.jmx
diff --git a/jmeter/src/main/resources/JMeter.jtl b/testing-modules/jmeter/src/main/resources/JMeter.jtl
similarity index 100%
rename from jmeter/src/main/resources/JMeter.jtl
rename to testing-modules/jmeter/src/main/resources/JMeter.jtl
diff --git a/jmeter/src/main/resources/application.properties b/testing-modules/jmeter/src/main/resources/application.properties
similarity index 100%
rename from jmeter/src/main/resources/application.properties
rename to testing-modules/jmeter/src/main/resources/application.properties
diff --git a/jmeter/src/main/resources/credentials.csv b/testing-modules/jmeter/src/main/resources/credentials.csv
similarity index 100%
rename from jmeter/src/main/resources/credentials.csv
rename to testing-modules/jmeter/src/main/resources/credentials.csv
diff --git a/jmeter/src/main/resources/dashboard/ReportsDashboard.csv b/testing-modules/jmeter/src/main/resources/dashboard/ReportsDashboard.csv
similarity index 100%
rename from jmeter/src/main/resources/dashboard/ReportsDashboard.csv
rename to testing-modules/jmeter/src/main/resources/dashboard/ReportsDashboard.csv
diff --git a/jmeter/src/main/resources/dashboard/ReportsDashboard.jmx b/testing-modules/jmeter/src/main/resources/dashboard/ReportsDashboard.jmx
similarity index 100%
rename from jmeter/src/main/resources/dashboard/ReportsDashboard.jmx
rename to testing-modules/jmeter/src/main/resources/dashboard/ReportsDashboard.jmx
diff --git a/lagom/weather-api/src/main/resources/logback.xml b/testing-modules/jmeter/src/main/resources/logback.xml
similarity index 100%
rename from lagom/weather-api/src/main/resources/logback.xml
rename to testing-modules/jmeter/src/main/resources/logback.xml
diff --git a/jmeter/src/main/resources/static/index.html b/testing-modules/jmeter/src/main/resources/static/index.html
similarity index 100%
rename from jmeter/src/main/resources/static/index.html
rename to testing-modules/jmeter/src/main/resources/static/index.html
diff --git a/jmeter/src/main/resources/summary-report/Summary-Report.jmx b/testing-modules/jmeter/src/main/resources/summary-report/Summary-Report.jmx
similarity index 100%
rename from jmeter/src/main/resources/summary-report/Summary-Report.jmx
rename to testing-modules/jmeter/src/main/resources/summary-report/Summary-Report.jmx
diff --git a/jmeter/src/main/resources/summary-report/Summary-Report.jtl b/testing-modules/jmeter/src/main/resources/summary-report/Summary-Report.jtl
similarity index 100%
rename from jmeter/src/main/resources/summary-report/Summary-Report.jtl
rename to testing-modules/jmeter/src/main/resources/summary-report/Summary-Report.jtl
diff --git a/jmeter/src/main/resources/templates/greeting.html b/testing-modules/jmeter/src/main/resources/templates/greeting.html
similarity index 100%
rename from jmeter/src/main/resources/templates/greeting.html
rename to testing-modules/jmeter/src/main/resources/templates/greeting.html
diff --git a/jmeter/src/main/resources/templates/quote.html b/testing-modules/jmeter/src/main/resources/templates/quote.html
similarity index 100%
rename from jmeter/src/main/resources/templates/quote.html
rename to testing-modules/jmeter/src/main/resources/templates/quote.html
diff --git a/jmeter/src/main/resources/templates/time.html b/testing-modules/jmeter/src/main/resources/templates/time.html
similarity index 100%
rename from jmeter/src/main/resources/templates/time.html
rename to testing-modules/jmeter/src/main/resources/templates/time.html
diff --git a/jmeter/src/test/java/com/baeldung/JmeterIntegrationTest.java b/testing-modules/jmeter/src/test/java/com/baeldung/JmeterIntegrationTest.java
similarity index 100%
rename from jmeter/src/test/java/com/baeldung/JmeterIntegrationTest.java
rename to testing-modules/jmeter/src/test/java/com/baeldung/JmeterIntegrationTest.java
diff --git a/jmeter/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java b/testing-modules/jmeter/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java
similarity index 100%
rename from jmeter/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java
rename to testing-modules/jmeter/src/test/java/com/baeldung/SpringJMeterJenkinsApplicationIntegrationTest.java
diff --git a/testing-modules/pom.xml b/testing-modules/pom.xml
index b2e73570d5..ad20a65afc 100644
--- a/testing-modules/pom.xml
+++ b/testing-modules/pom.xml
@@ -23,6 +23,7 @@
groovy-spock
hamcrest
instancio
+ jmeter
jqwik
junit-4
junit-5-advanced
diff --git a/jersey/README.md b/web-modules/jersey/README.md
similarity index 100%
rename from jersey/README.md
rename to web-modules/jersey/README.md
diff --git a/jersey/pom.xml b/web-modules/jersey/pom.xml
similarity index 98%
rename from jersey/pom.xml
rename to web-modules/jersey/pom.xml
index d279406e9a..779403e8c1 100644
--- a/jersey/pom.xml
+++ b/web-modules/jersey/pom.xml
@@ -9,7 +9,7 @@
com.baeldung
- parent-modules
+ web-modules
1.0.0-SNAPSHOT
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/JerseyClient.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/JerseyClient.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/JerseyClient.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/JerseyClient.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/JerseyClientHeaders.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/JerseyClientHeaders.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/JerseyClientHeaders.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/JerseyClientHeaders.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/filter/AddHeaderOnRequestFilter.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/filter/AddHeaderOnRequestFilter.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/filter/AddHeaderOnRequestFilter.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/filter/AddHeaderOnRequestFilter.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/filter/RequestClientFilter.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/filter/RequestClientFilter.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/filter/RequestClientFilter.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/filter/RequestClientFilter.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/filter/ResponseClientFilter.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/filter/ResponseClientFilter.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/filter/ResponseClientFilter.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/filter/ResponseClientFilter.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/interceptor/RequestClientWriterInterceptor.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/interceptor/RequestClientWriterInterceptor.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/interceptor/RequestClientWriterInterceptor.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/interceptor/RequestClientWriterInterceptor.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/listdemo/JerseyListDemo.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/listdemo/JerseyListDemo.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/listdemo/JerseyListDemo.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/listdemo/JerseyListDemo.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/client/listdemo/ListDemoApp.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/client/listdemo/ListDemoApp.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/client/listdemo/ListDemoApp.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/client/listdemo/ListDemoApp.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/ExceptionHandlingConfig.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/ExceptionHandlingConfig.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/ExceptionHandlingConfig.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/ExceptionHandlingConfig.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Stock.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Stock.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Stock.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Stock.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Wallet.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Wallet.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Wallet.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/data/Wallet.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Db.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Db.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Db.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Db.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Identifiable.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Identifiable.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Identifiable.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/repo/Identifiable.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/StocksResource.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/StocksResource.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/StocksResource.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/StocksResource.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/WalletsResource.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/WalletsResource.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/WalletsResource.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/WalletsResource.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/IllegalArgumentExceptionMapper.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/IllegalArgumentExceptionMapper.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/IllegalArgumentExceptionMapper.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/IllegalArgumentExceptionMapper.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/InvalidTradeException.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/InvalidTradeException.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/InvalidTradeException.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/InvalidTradeException.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/RestErrorResponse.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/RestErrorResponse.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/RestErrorResponse.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/RestErrorResponse.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/ServerExceptionMapper.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/ServerExceptionMapper.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/ServerExceptionMapper.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/rest/exceptions/ServerExceptionMapper.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/service/Repository.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/service/Repository.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/exceptionhandling/service/Repository.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/exceptionhandling/service/Repository.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/EchoHeaders.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/EchoHeaders.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/EchoHeaders.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/EchoHeaders.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/Greetings.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/Greetings.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/Greetings.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/Greetings.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/ItemParam.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/ItemParam.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/ItemParam.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/ItemParam.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/Items.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/Items.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/Items.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/Items.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/Responder.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/Responder.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/Responder.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/Responder.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/config/HelloBinding.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/HelloBinding.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/config/HelloBinding.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/HelloBinding.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/config/HelloDynamicBinding.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/HelloDynamicBinding.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/config/HelloDynamicBinding.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/HelloDynamicBinding.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/config/ServerConfig.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/ServerConfig.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/config/ServerConfig.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/ServerConfig.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/config/ViewApplicationConfig.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/ViewApplicationConfig.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/config/ViewApplicationConfig.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/config/ViewApplicationConfig.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/constraints/SerialNumber.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/constraints/SerialNumber.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/constraints/SerialNumber.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/constraints/SerialNumber.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/filter/PrematchingRequestFilter.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/filter/PrematchingRequestFilter.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/filter/PrematchingRequestFilter.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/filter/PrematchingRequestFilter.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/filter/ResponseServerFilter.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/filter/ResponseServerFilter.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/filter/ResponseServerFilter.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/filter/ResponseServerFilter.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/filter/RestrictedOperationsRequestFilter.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/filter/RestrictedOperationsRequestFilter.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/filter/RestrictedOperationsRequestFilter.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/filter/RestrictedOperationsRequestFilter.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/form/FormExampleResource.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/form/FormExampleResource.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/form/FormExampleResource.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/form/FormExampleResource.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/http/EmbeddedHttpServer.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/http/EmbeddedHttpServer.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/http/EmbeddedHttpServer.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/http/EmbeddedHttpServer.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/interceptor/RequestServerReaderInterceptor.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/interceptor/RequestServerReaderInterceptor.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/interceptor/RequestServerReaderInterceptor.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/interceptor/RequestServerReaderInterceptor.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/model/Fruit.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/model/Fruit.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/model/Fruit.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/model/Fruit.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/model/Person.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/model/Person.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/model/Person.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/model/Person.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/providers/FruitExceptionMapper.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/providers/FruitExceptionMapper.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/providers/FruitExceptionMapper.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/providers/FruitExceptionMapper.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/server/rest/FruitResource.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/server/rest/FruitResource.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/server/rest/FruitResource.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/server/rest/FruitResource.java
diff --git a/jersey/src/main/java/com/baeldung/jersey/service/SimpleStorageService.java b/web-modules/jersey/src/main/java/com/baeldung/jersey/service/SimpleStorageService.java
similarity index 100%
rename from jersey/src/main/java/com/baeldung/jersey/service/SimpleStorageService.java
rename to web-modules/jersey/src/main/java/com/baeldung/jersey/service/SimpleStorageService.java
diff --git a/jersey/src/main/resources/formexamples/example1.html b/web-modules/jersey/src/main/resources/formexamples/example1.html
similarity index 100%
rename from jersey/src/main/resources/formexamples/example1.html
rename to web-modules/jersey/src/main/resources/formexamples/example1.html
diff --git a/jersey/src/main/resources/formexamples/example2.html b/web-modules/jersey/src/main/resources/formexamples/example2.html
similarity index 100%
rename from jersey/src/main/resources/formexamples/example2.html
rename to web-modules/jersey/src/main/resources/formexamples/example2.html
diff --git a/lagom/weather-impl/src/main/resources/logback.xml b/web-modules/jersey/src/main/resources/logback.xml
similarity index 100%
rename from lagom/weather-impl/src/main/resources/logback.xml
rename to web-modules/jersey/src/main/resources/logback.xml
diff --git a/jersey/src/main/resources/templates/freemarker/all.ftl b/web-modules/jersey/src/main/resources/templates/freemarker/all.ftl
similarity index 100%
rename from jersey/src/main/resources/templates/freemarker/all.ftl
rename to web-modules/jersey/src/main/resources/templates/freemarker/all.ftl
diff --git a/jersey/src/main/resources/templates/freemarker/error.ftl b/web-modules/jersey/src/main/resources/templates/freemarker/error.ftl
similarity index 100%
rename from jersey/src/main/resources/templates/freemarker/error.ftl
rename to web-modules/jersey/src/main/resources/templates/freemarker/error.ftl
diff --git a/jersey/src/main/resources/templates/freemarker/index.ftl b/web-modules/jersey/src/main/resources/templates/freemarker/index.ftl
similarity index 100%
rename from jersey/src/main/resources/templates/freemarker/index.ftl
rename to web-modules/jersey/src/main/resources/templates/freemarker/index.ftl
diff --git a/jersey/src/main/resources/templates/freemarker/named.ftl b/web-modules/jersey/src/main/resources/templates/freemarker/named.ftl
similarity index 100%
rename from jersey/src/main/resources/templates/freemarker/named.ftl
rename to web-modules/jersey/src/main/resources/templates/freemarker/named.ftl
diff --git a/jersey/src/test/java/com/baeldung/jersey/client/JerseyClientIntegrationTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/client/JerseyClientIntegrationTest.java
similarity index 100%
rename from jersey/src/test/java/com/baeldung/jersey/client/JerseyClientIntegrationTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/client/JerseyClientIntegrationTest.java
diff --git a/jersey/src/test/java/com/baeldung/jersey/client/listdemo/JerseyListDemoUnitTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/client/listdemo/JerseyListDemoUnitTest.java
similarity index 100%
rename from jersey/src/test/java/com/baeldung/jersey/client/listdemo/JerseyListDemoUnitTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/client/listdemo/JerseyListDemoUnitTest.java
diff --git a/jersey/src/test/java/com/baeldung/jersey/exceptionhandling/rest/StocksResourceIntegrationTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/exceptionhandling/rest/StocksResourceIntegrationTest.java
similarity index 97%
rename from jersey/src/test/java/com/baeldung/jersey/exceptionhandling/rest/StocksResourceIntegrationTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/exceptionhandling/rest/StocksResourceIntegrationTest.java
index eff5d5ae6e..92f2e77670 100644
--- a/jersey/src/test/java/com/baeldung/jersey/exceptionhandling/rest/StocksResourceIntegrationTest.java
+++ b/web-modules/jersey/src/test/java/com/baeldung/jersey/exceptionhandling/rest/StocksResourceIntegrationTest.java
@@ -1,105 +1,105 @@
-package com.baeldung.jersey.exceptionhandling.rest;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.startsWith;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.util.HashMap;
-
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
-import org.glassfish.jersey.test.TestProperties;
-import org.junit.jupiter.api.Test;
-
-import com.baeldung.jersey.exceptionhandling.data.Stock;
-import com.baeldung.jersey.exceptionhandling.data.Wallet;
-import com.baeldung.jersey.exceptionhandling.rest.exceptions.IllegalArgumentExceptionMapper;
-import com.baeldung.jersey.exceptionhandling.rest.exceptions.RestErrorResponse;
-import com.baeldung.jersey.exceptionhandling.rest.exceptions.ServerExceptionMapper;
-
-import jakarta.ws.rs.client.Entity;
-import jakarta.ws.rs.client.Invocation;
-import jakarta.ws.rs.core.Application;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response;
-
-public class StocksResourceIntegrationTest extends JerseyTest {
- private static final Entity EMPTY_BODY = Entity.json("");
- private static final Stock STOCK = new Stock("BAEL", 51.57);
- private static final String MY_WALLET = "MY-WALLET";
- private static final Wallet WALLET = new Wallet(MY_WALLET);
- private static final int INSUFFICIENT_AMOUNT = (int) (Wallet.MIN_CHARGE - 1);
-
- @Override
- protected Application configure() {
- final ResourceConfig resourceConfig = new ResourceConfig();
- resourceConfig.register(StocksResource.class);
- resourceConfig.register(WalletsResource.class);
- resourceConfig.register(IllegalArgumentExceptionMapper.class);
- resourceConfig.register(ServerExceptionMapper.class);
- resourceConfig.packages("com.baeldung.jersey.exceptionhandling.rest");
- return resourceConfig;
- }
-
- private Invocation.Builder stocks(String path) {
- return target("/stocks" + path).request();
- }
-
- private Invocation.Builder wallets(String path, Object... args) {
- return target("/wallets" + String.format(path, args)).request();
- }
-
- private Entity> entity(Object object) {
- return Entity.entity(object, MediaType.APPLICATION_JSON_TYPE);
- }
-
- @Test
- public void whenMethodNotAllowed_thenCustomMessage() {
- Response response = stocks("").get();
-
- assertEquals(Response.Status.METHOD_NOT_ALLOWED.getStatusCode(), response.getStatus());
-
- String content = response.readEntity(String.class);
- assertThat(content, containsString(ServerExceptionMapper.HTTP_405_MESSAGE));
- }
-
- @Test
- public void whenTickerNotExists_thenRestErrorResponse() {
- Response response = stocks("/TEST").get();
-
- assertEquals(Response.Status.EXPECTATION_FAILED.getStatusCode(), response.getStatus());
-
- RestErrorResponse content = response.readEntity(RestErrorResponse.class);
- assertThat(content.getMessage(), startsWith(IllegalArgumentExceptionMapper.DEFAULT_MESSAGE));
- }
-
- @Test
- public void givenAmountLessThanMinimum_whenAddingToWallet_thenInvalidTradeException() {
- wallets("").post(entity(WALLET));
- Response response = wallets("/%s/%d", MY_WALLET, INSUFFICIENT_AMOUNT).put(EMPTY_BODY);
-
- assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), response.getStatus());
-
- String content = response.readEntity(String.class);
- assertThat(content, containsString(Wallet.MIN_CHARGE_MSG));
- }
-
- @Test
- public void givenInsifficientFunds_whenBuyingStock_thenWebApplicationException() {
- stocks("").post(entity(STOCK));
- wallets("").post(entity(WALLET));
-
- Response response = wallets("/%s/buy/%s", MY_WALLET, STOCK.getId()).post(EMPTY_BODY);
- assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), response.getStatus());
-
- RestErrorResponse content = response.readEntity(RestErrorResponse.class);
- assertNotNull(content.getSubject());
-
- HashMap, ?> subject = (HashMap, ?>) content.getSubject();
- assertEquals(subject.get("id"), WALLET.getId());
- assertTrue(WALLET.getBalance() < Wallet.MIN_CHARGE);
- }
-}
+package com.baeldung.jersey.exceptionhandling.rest;
+
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.HashMap;
+
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.glassfish.jersey.test.TestProperties;
+import org.junit.jupiter.api.Test;
+
+import com.baeldung.jersey.exceptionhandling.data.Stock;
+import com.baeldung.jersey.exceptionhandling.data.Wallet;
+import com.baeldung.jersey.exceptionhandling.rest.exceptions.IllegalArgumentExceptionMapper;
+import com.baeldung.jersey.exceptionhandling.rest.exceptions.RestErrorResponse;
+import com.baeldung.jersey.exceptionhandling.rest.exceptions.ServerExceptionMapper;
+
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.Application;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+
+public class StocksResourceIntegrationTest extends JerseyTest {
+ private static final Entity EMPTY_BODY = Entity.json("");
+ private static final Stock STOCK = new Stock("BAEL", 51.57);
+ private static final String MY_WALLET = "MY-WALLET";
+ private static final Wallet WALLET = new Wallet(MY_WALLET);
+ private static final int INSUFFICIENT_AMOUNT = (int) (Wallet.MIN_CHARGE - 1);
+
+ @Override
+ protected Application configure() {
+ final ResourceConfig resourceConfig = new ResourceConfig();
+ resourceConfig.register(StocksResource.class);
+ resourceConfig.register(WalletsResource.class);
+ resourceConfig.register(IllegalArgumentExceptionMapper.class);
+ resourceConfig.register(ServerExceptionMapper.class);
+ resourceConfig.packages("com.baeldung.jersey.exceptionhandling.rest");
+ return resourceConfig;
+ }
+
+ private Invocation.Builder stocks(String path) {
+ return target("/stocks" + path).request();
+ }
+
+ private Invocation.Builder wallets(String path, Object... args) {
+ return target("/wallets" + String.format(path, args)).request();
+ }
+
+ private Entity> entity(Object object) {
+ return Entity.entity(object, MediaType.APPLICATION_JSON_TYPE);
+ }
+
+ @Test
+ public void whenMethodNotAllowed_thenCustomMessage() {
+ Response response = stocks("").get();
+
+ assertEquals(Response.Status.METHOD_NOT_ALLOWED.getStatusCode(), response.getStatus());
+
+ String content = response.readEntity(String.class);
+ assertThat(content, containsString(ServerExceptionMapper.HTTP_405_MESSAGE));
+ }
+
+ @Test
+ public void whenTickerNotExists_thenRestErrorResponse() {
+ Response response = stocks("/TEST").get();
+
+ assertEquals(Response.Status.EXPECTATION_FAILED.getStatusCode(), response.getStatus());
+
+ RestErrorResponse content = response.readEntity(RestErrorResponse.class);
+ assertThat(content.getMessage(), startsWith(IllegalArgumentExceptionMapper.DEFAULT_MESSAGE));
+ }
+
+ @Test
+ public void givenAmountLessThanMinimum_whenAddingToWallet_thenInvalidTradeException() {
+ wallets("").post(entity(WALLET));
+ Response response = wallets("/%s/%d", MY_WALLET, INSUFFICIENT_AMOUNT).put(EMPTY_BODY);
+
+ assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), response.getStatus());
+
+ String content = response.readEntity(String.class);
+ assertThat(content, containsString(Wallet.MIN_CHARGE_MSG));
+ }
+
+ @Test
+ public void givenInsifficientFunds_whenBuyingStock_thenWebApplicationException() {
+ stocks("").post(entity(STOCK));
+ wallets("").post(entity(WALLET));
+
+ Response response = wallets("/%s/buy/%s", MY_WALLET, STOCK.getId()).post(EMPTY_BODY);
+ assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), response.getStatus());
+
+ RestErrorResponse content = response.readEntity(RestErrorResponse.class);
+ assertNotNull(content.getSubject());
+
+ HashMap, ?> subject = (HashMap, ?>) content.getSubject();
+ assertEquals(subject.get("id"), WALLET.getId());
+ assertTrue(WALLET.getBalance() < Wallet.MIN_CHARGE);
+ }
+}
diff --git a/jersey/src/test/java/com/baeldung/jersey/server/EchoHeadersIntegrationTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/server/EchoHeadersIntegrationTest.java
similarity index 100%
rename from jersey/src/test/java/com/baeldung/jersey/server/EchoHeadersIntegrationTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/server/EchoHeadersIntegrationTest.java
diff --git a/jersey/src/test/java/com/baeldung/jersey/server/GreetingsResourceIntegrationTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/server/GreetingsResourceIntegrationTest.java
similarity index 97%
rename from jersey/src/test/java/com/baeldung/jersey/server/GreetingsResourceIntegrationTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/server/GreetingsResourceIntegrationTest.java
index 97934369e2..5f23209c16 100644
--- a/jersey/src/test/java/com/baeldung/jersey/server/GreetingsResourceIntegrationTest.java
+++ b/web-modules/jersey/src/test/java/com/baeldung/jersey/server/GreetingsResourceIntegrationTest.java
@@ -1,32 +1,32 @@
-package com.baeldung.jersey.server;
-
-import static org.junit.Assert.assertEquals;
-
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
-import org.junit.Test;
-
-import jakarta.ws.rs.core.Application;
-import jakarta.ws.rs.core.HttpHeaders;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response;
-
-public class GreetingsResourceIntegrationTest extends JerseyTest {
-
- @Override
- protected Application configure() {
- return new ResourceConfig(Greetings.class);
- }
-
- @Test
- public void givenGetHiGreeting_whenCorrectRequest_thenResponseIsOkAndContainsHi() {
- Response response = target("/greetings/hi").request()
- .get();
-
- assertEquals("Http Response should be 200: ", Response.Status.OK.getStatusCode(), response.getStatus());
- assertEquals("Http Content-Type should be: ", MediaType.TEXT_HTML, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
-
- String content = response.readEntity(String.class);
- assertEquals("Content of ressponse is: ", "hi", content);
- }
-}
+package com.baeldung.jersey.server;
+
+import static org.junit.Assert.assertEquals;
+
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.junit.Test;
+
+import jakarta.ws.rs.core.Application;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+
+public class GreetingsResourceIntegrationTest extends JerseyTest {
+
+ @Override
+ protected Application configure() {
+ return new ResourceConfig(Greetings.class);
+ }
+
+ @Test
+ public void givenGetHiGreeting_whenCorrectRequest_thenResponseIsOkAndContainsHi() {
+ Response response = target("/greetings/hi").request()
+ .get();
+
+ assertEquals("Http Response should be 200: ", Response.Status.OK.getStatusCode(), response.getStatus());
+ assertEquals("Http Content-Type should be: ", MediaType.TEXT_HTML, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+
+ String content = response.readEntity(String.class);
+ assertEquals("Content of ressponse is: ", "hi", content);
+ }
+}
diff --git a/jersey/src/test/java/com/baeldung/jersey/server/ItemsUnitTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/server/ItemsUnitTest.java
similarity index 100%
rename from jersey/src/test/java/com/baeldung/jersey/server/ItemsUnitTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/server/ItemsUnitTest.java
diff --git a/jersey/src/test/java/com/baeldung/jersey/server/rest/FruitResourceIntegrationTest.java b/web-modules/jersey/src/test/java/com/baeldung/jersey/server/rest/FruitResourceIntegrationTest.java
similarity index 100%
rename from jersey/src/test/java/com/baeldung/jersey/server/rest/FruitResourceIntegrationTest.java
rename to web-modules/jersey/src/test/java/com/baeldung/jersey/server/rest/FruitResourceIntegrationTest.java
diff --git a/jsf/.gitignore b/web-modules/jsf/.gitignore
similarity index 100%
rename from jsf/.gitignore
rename to web-modules/jsf/.gitignore
diff --git a/jsf/README.md b/web-modules/jsf/README.md
similarity index 100%
rename from jsf/README.md
rename to web-modules/jsf/README.md
diff --git a/jsf/pom.xml b/web-modules/jsf/pom.xml
similarity index 98%
rename from jsf/pom.xml
rename to web-modules/jsf/pom.xml
index ec014540a0..2a1c6ad353 100644
--- a/jsf/pom.xml
+++ b/web-modules/jsf/pom.xml
@@ -9,7 +9,7 @@
com.baeldung
- parent-modules
+ web-modules
1.0.0-SNAPSHOT
diff --git a/jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFBean.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFBean.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFBean.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFBean.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFMBean.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFMBean.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFMBean.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/HelloPFMBean.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java
diff --git a/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java b/web-modules/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java
similarity index 100%
rename from jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java
rename to web-modules/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java
diff --git a/jsf/src/main/resources/logback.xml b/web-modules/jsf/src/main/resources/logback.xml
similarity index 100%
rename from jsf/src/main/resources/logback.xml
rename to web-modules/jsf/src/main/resources/logback.xml
diff --git a/jsf/src/main/resources/messages.properties b/web-modules/jsf/src/main/resources/messages.properties
similarity index 100%
rename from jsf/src/main/resources/messages.properties
rename to web-modules/jsf/src/main/resources/messages.properties
diff --git a/jsf/src/main/webapp/META-INF/context.xml b/web-modules/jsf/src/main/webapp/META-INF/context.xml
similarity index 100%
rename from jsf/src/main/webapp/META-INF/context.xml
rename to web-modules/jsf/src/main/webapp/META-INF/context.xml
diff --git a/jsf/src/main/webapp/WEB-INF/faces-config.xml b/web-modules/jsf/src/main/webapp/WEB-INF/faces-config.xml
similarity index 100%
rename from jsf/src/main/webapp/WEB-INF/faces-config.xml
rename to web-modules/jsf/src/main/webapp/WEB-INF/faces-config.xml
diff --git a/jsf/src/main/webapp/el3_intro.xhtml b/web-modules/jsf/src/main/webapp/el3_intro.xhtml
similarity index 100%
rename from jsf/src/main/webapp/el3_intro.xhtml
rename to web-modules/jsf/src/main/webapp/el3_intro.xhtml
diff --git a/jsf/src/main/webapp/el_intro.xhtml b/web-modules/jsf/src/main/webapp/el_intro.xhtml
similarity index 97%
rename from jsf/src/main/webapp/el_intro.xhtml
rename to web-modules/jsf/src/main/webapp/el_intro.xhtml
index 446647497f..b3e573fb37 100644
--- a/jsf/src/main/webapp/el_intro.xhtml
+++ b/web-modules/jsf/src/main/webapp/el_intro.xhtml
@@ -1,52 +1,52 @@
-
-
-
-
- Baeldung | The EL Intro
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Key |
- Value |
-
-
- #{header.key} |
- #{header.value} |
-
-
-
-
-
-
-
-
+
+
+
+
+ Baeldung | The EL Intro
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Key |
+ Value |
+
+
+ #{header.key} |
+ #{header.value} |
+
+
+
+
+
+
+
+
diff --git a/jsf/src/main/webapp/index.xhtml b/web-modules/jsf/src/main/webapp/index.xhtml
similarity index 100%
rename from jsf/src/main/webapp/index.xhtml
rename to web-modules/jsf/src/main/webapp/index.xhtml
diff --git a/jsf/src/main/webapp/pf_intro.xhtml b/web-modules/jsf/src/main/webapp/pf_intro.xhtml
similarity index 100%
rename from jsf/src/main/webapp/pf_intro.xhtml
rename to web-modules/jsf/src/main/webapp/pf_intro.xhtml
diff --git a/jsf/src/main/webapp/pfm_intro.xhtml b/web-modules/jsf/src/main/webapp/pfm_intro.xhtml
similarity index 100%
rename from jsf/src/main/webapp/pfm_intro.xhtml
rename to web-modules/jsf/src/main/webapp/pfm_intro.xhtml
diff --git a/web-modules/pom.xml b/web-modules/pom.xml
index b0792b3653..6119316a62 100644
--- a/web-modules/pom.xml
+++ b/web-modules/pom.xml
@@ -26,7 +26,9 @@
javax-servlets
javax-servlets-2
jee-7
+ jersey
jooby
+ jsf
linkrest