diff --git a/.local-db/todos.mv.db b/.local-db/todos.mv.db
deleted file mode 100644
index c081aa5aad..0000000000
Binary files a/.local-db/todos.mv.db and /dev/null differ
diff --git a/.local-db/topics.mv.db b/.local-db/topics.mv.db
deleted file mode 100644
index 204bc60d70..0000000000
Binary files a/.local-db/topics.mv.db and /dev/null differ
diff --git a/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/inputstreamtobase64/InputStreamToBase64UnitTest.java b/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/inputstreamtobase64/InputStreamToBase64UnitTest.java
new file mode 100644
index 0000000000..d8de202ba3
--- /dev/null
+++ b/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/inputstreamtobase64/InputStreamToBase64UnitTest.java
@@ -0,0 +1,49 @@
+package com.baeldung.inputstreamtobase64;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.InputStream;
+import java.util.Base64;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+/**
+ * Test the Stream to base64 conversion
+ */
+public class InputStreamToBase64UnitTest {
+
+ /**
+ * Test stream to base64 conversion
+ * @throws Exception
+ */
+ @Test
+ public void givenABinaryInputStream_whenItIsConvertedToBase64_thenItCanBeDecoded() throws Exception {
+ // given a binary input stream
+ InputStream sourceStream = getClass().getClassLoader().getResourceAsStream("logo.png");
+ byte[] sourceBytes = IOUtils.toByteArray(sourceStream);
+
+ // when it is converted to base64
+ String encodedString = Base64.getEncoder().encodeToString(sourceBytes);
+ assertNotNull(encodedString);
+
+ // then it can be decoded
+ byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
+ assertNotNull(decodedBytes);
+ assertTrue(decodedBytes.length == sourceBytes.length);
+ assertTrue(calculateChecksum(decodedBytes) == calculateChecksum(sourceBytes));
+ }
+
+ /**
+ * Calculate a checksum
+ * @param bytes array of bytes to check
+ * @return the total sum of all bytes
+ */
+ private int calculateChecksum(byte[] bytes) {
+ int checksum = 0;
+ for(int index=0; index < bytes.length; index++) {
+ checksum+=bytes[index];
+ }
+ return checksum;
+ }
+}
diff --git a/core-java-modules/core-java-io-conversions-2/src/test/resources/logo.png b/core-java-modules/core-java-io-conversions-2/src/test/resources/logo.png
new file mode 100644
index 0000000000..dc6d7c8340
Binary files /dev/null and b/core-java-modules/core-java-io-conversions-2/src/test/resources/logo.png differ
diff --git a/core-java-modules/core-java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java b/core-java-modules/core-java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java
index 5323dcbe11..ade3421ee7 100644
--- a/core-java-modules/core-java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java
+++ b/core-java-modules/core-java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java
@@ -7,7 +7,7 @@ public class EvenOdd {
}
static boolean isOdd(int x) {
- return x % 2 == 1;
+ return x % 2 != 0;
}
static boolean isOrEven(int x) {
diff --git a/core-java-modules/core-java-streams-4/pom.xml b/core-java-modules/core-java-streams-4/pom.xml
index 110ec50b8c..8c4d98979c 100644
--- a/core-java-modules/core-java-streams-4/pom.xml
+++ b/core-java-modules/core-java-streams-4/pom.xml
@@ -15,6 +15,16 @@
+
+ io.reactivex
+ rxjava
+ ${rx.java.version}
+
+
+ io.reactivex.rxjava2
+ rxjava
+ ${rx.java2.version}
+
log4j
log4j
@@ -27,6 +37,13 @@
pom
import
+
+ org.assertj
+ assertj-core
+ 3.23.1
+ test
+
+
@@ -54,8 +71,10 @@
3.1
- 1.8
- 1.8
+ 12
+ 12
+ 1.2.5
+ 2.2.2
\ No newline at end of file
diff --git a/core-java-modules/core-java-streams-4/src/test/java/splitting/Article.java b/core-java-modules/core-java-streams-4/src/test/java/splitting/Article.java
new file mode 100644
index 0000000000..fe1265df19
--- /dev/null
+++ b/core-java-modules/core-java-streams-4/src/test/java/splitting/Article.java
@@ -0,0 +1,37 @@
+package splitting;
+
+class Article {
+ private final String target;
+ private final boolean featured;
+
+ public Article(String target, boolean featured) {
+ this.target = target;
+ this.featured = featured;
+ }
+
+ public String getTarget() {
+ return target;
+ }
+
+ public boolean isFeatured() {
+ return featured;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Article article = (Article) o;
+
+ if (featured != article.featured) return false;
+ return target.equals(article.target);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = target.hashCode();
+ result = 31 * result + (featured ? 1 : 0);
+ return result;
+ }
+}
diff --git a/core-java-modules/core-java-streams-4/src/test/java/splitting/StreamSplittingUnitTest.java b/core-java-modules/core-java-streams-4/src/test/java/splitting/StreamSplittingUnitTest.java
new file mode 100644
index 0000000000..75c60af4ac
--- /dev/null
+++ b/core-java-modules/core-java-streams-4/src/test/java/splitting/StreamSplittingUnitTest.java
@@ -0,0 +1,95 @@
+package splitting;
+
+import com.google.common.collect.Lists;
+import org.junit.Test;
+import rx.Observable;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class StreamSplittingUnitTest {
+ private final static List articles = Lists.newArrayList(
+ new Article("Baeldung", true),
+ new Article("Baeldung", false),
+ new Article("Programming Daily", false),
+ new Article("The Code", false)
+ );
+
+ @Test
+ public void givenListOfArticles_shouldSplitListInTwoCategories_usingPartitioningBy() {
+ Map> groupedArticles = articles.stream().collect(Collectors.partitioningBy(a -> a.getTarget().equals("Baeldung")));
+
+ assertThat(groupedArticles.get(true)).containsExactly(
+ new Article("Baeldung", true),
+ new Article("Baeldung", false));
+ assertThat(groupedArticles.get(false)).containsExactly(
+ new Article("Programming Daily", false),
+ new Article("The Code", false));
+ }
+
+ @Test
+ public void givenListOfArticles_shouldSplitListInMultipleCategories_usingGroupingBy() {
+ Map> groupedArticles = articles.stream().collect(Collectors.groupingBy(Article::getTarget));
+
+ assertThat(groupedArticles.get("Baeldung")).hasSize(2);
+ assertThat(groupedArticles.get("Programming Daily")).hasSize(1);
+ assertThat(groupedArticles.get("The Code")).hasSize(1);
+
+ assertThat(groupedArticles.get("Baeldung")).containsExactly(
+ new Article("Baeldung", true),
+ new Article("Baeldung", false));
+ assertThat(groupedArticles.get("Programming Daily")).containsExactly(new Article("Programming Daily", false));
+ assertThat(groupedArticles.get("The Code")).containsExactly(new Article("The Code", false));
+ }
+
+ @Test
+ public void givenListOfArticles_shouldSplitListInTwoCategories_usingTeeing() {
+ List countedArticles = articles.stream().collect(Collectors.teeing(
+ Collectors.filtering(article -> article.getTarget().equals("Baeldung"), Collectors.counting()),
+ Collectors.filtering(article -> !article.getTarget().equals("Baeldung"), Collectors.counting()),
+ List::of));
+
+ assertThat(countedArticles.get(0)).isEqualTo(2);
+ assertThat(countedArticles.get(1)).isEqualTo(2);
+ }
+
+ @Test
+ public void givenListOfArticles_shouldSplitListInTwoOVerlappingCategories_usingTeeing() {
+ List> groupedArticles = articles.stream().collect(Collectors.teeing(
+ Collectors.filtering(article -> article.getTarget().equals("Baeldung"), Collectors.toList()),
+ Collectors.filtering(Article::isFeatured, Collectors.toList()),
+ List::of));
+
+ assertThat(groupedArticles.get(0)).hasSize(2);
+ assertThat(groupedArticles.get(1)).hasSize(1);
+
+ assertThat(groupedArticles.get(0)).containsExactly(
+ new Article("Baeldung", true),
+ new Article("Baeldung", false));
+ assertThat(groupedArticles.get(1)).containsExactly(new Article("Baeldung", true));
+ }
+
+ @Test
+ public void givenListOfArticles_shouldSplitStreamInMultipleCategories_usingRxJava() {
+ Observable observableArticles = Observable.from(articles);
+
+ Observable baeldungObservable = observableArticles.filter(article -> article.getTarget().equals("Baeldung"));
+ Observable featuredObservable = observableArticles.filter(Article::isFeatured);
+ List baeldungArticles = new ArrayList<>();
+ List featuredArticles = new ArrayList<>();
+ baeldungObservable.subscribe(baeldungArticles::add);
+ featuredObservable.subscribe(featuredArticles::add);
+
+ assertThat(baeldungArticles).hasSize(2);
+ assertThat(featuredArticles).hasSize(1);
+
+ assertThat(baeldungArticles).containsExactly(
+ new Article("Baeldung", true),
+ new Article("Baeldung", false));
+ assertThat(featuredArticles).containsExactly(new Article("Baeldung", true));
+ }
+}
diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml
index e44c508ce2..6911ace6eb 100644
--- a/core-java-modules/pom.xml
+++ b/core-java-modules/pom.xml
@@ -115,7 +115,6 @@
core-java-streams
core-java-streams-2
core-java-streams-3
- core-java-streams-4
core-java-string-algorithms
core-java-string-algorithms-2
core-java-string-apis
@@ -147,4 +146,4 @@
-
\ No newline at end of file
+
diff --git a/pom.xml b/pom.xml
index 5ecd457f7b..0801fbab46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -504,9 +504,8 @@
protobuffer
- quarkus
- quarkus-extension
-
+ quarkus-modules
+
rabbitmq
ratpack
@@ -941,8 +940,7 @@
protobuffer
- quarkus
- quarkus-extension
+ quarkus-modules
rabbitmq
@@ -1240,6 +1238,7 @@
core-java-modules/core-java-io-conversions-2
core-java-modules/core-java-jpms
core-java-modules/core-java-os
+ core-java-modules/core-java-streams-4
core-java-modules/core-java-string-algorithms-3
core-java-modules/core-java-string-operations-3
core-java-modules/core-java-string-operations-4
@@ -1254,8 +1253,8 @@
maven-modules/multimodulemavenproject
persistence-modules/sirix
persistence-modules/spring-data-cassandra-2
- quarkus-vs-springboot
- quarkus-jandex
+ quarkus-modules/quarkus-vs-springboot
+ quarkus-modules/quarkus-jandex
spring-boot-modules/spring-boot-cassandre
spring-boot-modules/spring-boot-camel
testing-modules/testing-assertions
@@ -1322,8 +1321,8 @@
maven-modules/multimodulemavenproject
persistence-modules/sirix
persistence-modules/spring-data-cassandra-2
- quarkus-vs-springboot
- quarkus-jandex
+ quarkus-modules/quarkus-vs-springboot
+ quarkus-modules/quarkus-jandex
spring-boot-modules/spring-boot-cassandre
spring-boot-modules/spring-boot-camel
testing-modules/testing-assertions
diff --git a/quarkus-modules/README.md b/quarkus-modules/README.md
new file mode 100644
index 0000000000..aa45f710d0
--- /dev/null
+++ b/quarkus-modules/README.md
@@ -0,0 +1,3 @@
+## Quarkus Modules
+
+This module contains articles about quarkus. Actual articles go into its submodules.
diff --git a/quarkus-modules/pom.xml b/quarkus-modules/pom.xml
new file mode 100644
index 0000000000..86e2132035
--- /dev/null
+++ b/quarkus-modules/pom.xml
@@ -0,0 +1,25 @@
+
+
+ 4.0.0
+ quarkus-modules
+ quarkus-modules
+ pom
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+ quarkus
+ quarkus-extension
+
+
+
+
diff --git a/quarkus-extension/README.md b/quarkus-modules/quarkus-extension/README.md
similarity index 100%
rename from quarkus-extension/README.md
rename to quarkus-modules/quarkus-extension/README.md
diff --git a/quarkus-extension/pom.xml b/quarkus-modules/quarkus-extension/pom.xml
similarity index 92%
rename from quarkus-extension/pom.xml
rename to quarkus-modules/quarkus-extension/pom.xml
index c2ae66a3a0..a40d83e6ce 100644
--- a/quarkus-extension/pom.xml
+++ b/quarkus-modules/quarkus-extension/pom.xml
@@ -11,7 +11,7 @@
com.baeldung
- parent-modules
+ quarkus-modules
1.0.0-SNAPSHOT
diff --git a/quarkus-extension/quarkus-app/pom.xml b/quarkus-modules/quarkus-extension/quarkus-app/pom.xml
similarity index 100%
rename from quarkus-extension/quarkus-app/pom.xml
rename to quarkus-modules/quarkus-extension/quarkus-app/pom.xml
diff --git a/quarkus-extension/quarkus-app/src/main/resources/application.properties b/quarkus-modules/quarkus-extension/quarkus-app/src/main/resources/application.properties
similarity index 100%
rename from quarkus-extension/quarkus-app/src/main/resources/application.properties
rename to quarkus-modules/quarkus-extension/quarkus-app/src/main/resources/application.properties
diff --git a/quarkus-extension/quarkus-app/src/main/resources/db/liquibase-changelog-master.xml b/quarkus-modules/quarkus-extension/quarkus-app/src/main/resources/db/liquibase-changelog-master.xml
similarity index 100%
rename from quarkus-extension/quarkus-app/src/main/resources/db/liquibase-changelog-master.xml
rename to quarkus-modules/quarkus-extension/quarkus-app/src/main/resources/db/liquibase-changelog-master.xml
diff --git a/quarkus-extension/quarkus-liquibase/deployment/pom.xml b/quarkus-modules/quarkus-extension/quarkus-liquibase/deployment/pom.xml
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/deployment/pom.xml
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/deployment/pom.xml
diff --git a/quarkus-extension/quarkus-liquibase/deployment/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProcessor.java b/quarkus-modules/quarkus-extension/quarkus-liquibase/deployment/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProcessor.java
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/deployment/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProcessor.java
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/deployment/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProcessor.java
diff --git a/quarkus-extension/quarkus-liquibase/pom.xml b/quarkus-modules/quarkus-extension/quarkus-liquibase/pom.xml
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/pom.xml
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/pom.xml
diff --git a/quarkus-extension/quarkus-liquibase/runtime/pom.xml b/quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/pom.xml
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/runtime/pom.xml
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/pom.xml
diff --git a/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseConfig.java b/quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseConfig.java
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseConfig.java
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseConfig.java
diff --git a/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProducer.java b/quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProducer.java
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProducer.java
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseProducer.java
diff --git a/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseRecorder.java b/quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseRecorder.java
similarity index 100%
rename from quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseRecorder.java
rename to quarkus-modules/quarkus-extension/quarkus-liquibase/runtime/src/main/java/com/baeldung/quarkus/liquibase/LiquibaseRecorder.java
diff --git a/quarkus-jandex/README.md b/quarkus-modules/quarkus-jandex/README.md
similarity index 100%
rename from quarkus-jandex/README.md
rename to quarkus-modules/quarkus-jandex/README.md
diff --git a/quarkus-jandex/hello-app/.dockerignore b/quarkus-modules/quarkus-jandex/hello-app/.dockerignore
similarity index 100%
rename from quarkus-jandex/hello-app/.dockerignore
rename to quarkus-modules/quarkus-jandex/hello-app/.dockerignore
diff --git a/quarkus-jandex/hello-app/.gitignore b/quarkus-modules/quarkus-jandex/hello-app/.gitignore
similarity index 100%
rename from quarkus-jandex/hello-app/.gitignore
rename to quarkus-modules/quarkus-jandex/hello-app/.gitignore
diff --git a/quarkus-jandex/hello-app/.mvn/wrapper/MavenWrapperDownloader.java b/quarkus-modules/quarkus-jandex/hello-app/.mvn/wrapper/MavenWrapperDownloader.java
similarity index 100%
rename from quarkus-jandex/hello-app/.mvn/wrapper/MavenWrapperDownloader.java
rename to quarkus-modules/quarkus-jandex/hello-app/.mvn/wrapper/MavenWrapperDownloader.java
diff --git a/quarkus-jandex/hello-app/.mvn/wrapper/maven-wrapper.properties b/quarkus-modules/quarkus-jandex/hello-app/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from quarkus-jandex/hello-app/.mvn/wrapper/maven-wrapper.properties
rename to quarkus-modules/quarkus-jandex/hello-app/.mvn/wrapper/maven-wrapper.properties
diff --git a/quarkus-jandex/hello-app/README.md b/quarkus-modules/quarkus-jandex/hello-app/README.md
similarity index 100%
rename from quarkus-jandex/hello-app/README.md
rename to quarkus-modules/quarkus-jandex/hello-app/README.md
diff --git a/quarkus-jandex/hello-app/mvnw b/quarkus-modules/quarkus-jandex/hello-app/mvnw
similarity index 100%
rename from quarkus-jandex/hello-app/mvnw
rename to quarkus-modules/quarkus-jandex/hello-app/mvnw
diff --git a/quarkus-jandex/hello-app/mvnw.cmd b/quarkus-modules/quarkus-jandex/hello-app/mvnw.cmd
similarity index 100%
rename from quarkus-jandex/hello-app/mvnw.cmd
rename to quarkus-modules/quarkus-jandex/hello-app/mvnw.cmd
diff --git a/quarkus-jandex/hello-app/pom.xml b/quarkus-modules/quarkus-jandex/hello-app/pom.xml
similarity index 100%
rename from quarkus-jandex/hello-app/pom.xml
rename to quarkus-modules/quarkus-jandex/hello-app/pom.xml
diff --git a/quarkus-jandex/hello-app/src/main/docker/Dockerfile.jvm b/quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.jvm
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/docker/Dockerfile.jvm
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.jvm
diff --git a/quarkus-jandex/hello-app/src/main/docker/Dockerfile.legacy-jar b/quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.legacy-jar
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/docker/Dockerfile.legacy-jar
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.legacy-jar
diff --git a/quarkus-jandex/hello-app/src/main/docker/Dockerfile.native b/quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.native
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/docker/Dockerfile.native
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.native
diff --git a/quarkus-jandex/hello-app/src/main/docker/Dockerfile.native-distroless b/quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.native-distroless
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/docker/Dockerfile.native-distroless
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/docker/Dockerfile.native-distroless
diff --git a/quarkus-jandex/hello-app/src/main/java/com/baeldung/quarkus/hello/HelloResource.java b/quarkus-modules/quarkus-jandex/hello-app/src/main/java/com/baeldung/quarkus/hello/HelloResource.java
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/java/com/baeldung/quarkus/hello/HelloResource.java
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/java/com/baeldung/quarkus/hello/HelloResource.java
diff --git a/quarkus-jandex/hello-app/src/main/resources/META-INF/resources/index.html b/quarkus-modules/quarkus-jandex/hello-app/src/main/resources/META-INF/resources/index.html
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/resources/META-INF/resources/index.html
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/resources/META-INF/resources/index.html
diff --git a/quarkus-jandex/hello-app/src/main/resources/application.properties b/quarkus-modules/quarkus-jandex/hello-app/src/main/resources/application.properties
similarity index 100%
rename from quarkus-jandex/hello-app/src/main/resources/application.properties
rename to quarkus-modules/quarkus-jandex/hello-app/src/main/resources/application.properties
diff --git a/quarkus-jandex/hello-sender-application-properties/pom.xml b/quarkus-modules/quarkus-jandex/hello-sender-application-properties/pom.xml
similarity index 100%
rename from quarkus-jandex/hello-sender-application-properties/pom.xml
rename to quarkus-modules/quarkus-jandex/hello-sender-application-properties/pom.xml
diff --git a/quarkus-jandex/hello-sender-application-properties/src/main/java/com/baeldung/quarkus/hello/sender/applicationproperties/ApplicationPropertiesHelloSender.java b/quarkus-modules/quarkus-jandex/hello-sender-application-properties/src/main/java/com/baeldung/quarkus/hello/sender/applicationproperties/ApplicationPropertiesHelloSender.java
similarity index 100%
rename from quarkus-jandex/hello-sender-application-properties/src/main/java/com/baeldung/quarkus/hello/sender/applicationproperties/ApplicationPropertiesHelloSender.java
rename to quarkus-modules/quarkus-jandex/hello-sender-application-properties/src/main/java/com/baeldung/quarkus/hello/sender/applicationproperties/ApplicationPropertiesHelloSender.java
diff --git a/quarkus-jandex/hello-sender-beans-xml/pom.xml b/quarkus-modules/quarkus-jandex/hello-sender-beans-xml/pom.xml
similarity index 100%
rename from quarkus-jandex/hello-sender-beans-xml/pom.xml
rename to quarkus-modules/quarkus-jandex/hello-sender-beans-xml/pom.xml
diff --git a/quarkus-jandex/hello-sender-beans-xml/src/main/java/com/baeldung/quarkus/hello/sender/beansxml/BeansXmlHelloSender.java b/quarkus-modules/quarkus-jandex/hello-sender-beans-xml/src/main/java/com/baeldung/quarkus/hello/sender/beansxml/BeansXmlHelloSender.java
similarity index 100%
rename from quarkus-jandex/hello-sender-beans-xml/src/main/java/com/baeldung/quarkus/hello/sender/beansxml/BeansXmlHelloSender.java
rename to quarkus-modules/quarkus-jandex/hello-sender-beans-xml/src/main/java/com/baeldung/quarkus/hello/sender/beansxml/BeansXmlHelloSender.java
diff --git a/quarkus-jandex/hello-sender-beans-xml/src/main/resources/META-INF/beans.xml b/quarkus-modules/quarkus-jandex/hello-sender-beans-xml/src/main/resources/META-INF/beans.xml
similarity index 100%
rename from quarkus-jandex/hello-sender-beans-xml/src/main/resources/META-INF/beans.xml
rename to quarkus-modules/quarkus-jandex/hello-sender-beans-xml/src/main/resources/META-INF/beans.xml
diff --git a/quarkus-jandex/hello-sender-maven-plugin/pom.xml b/quarkus-modules/quarkus-jandex/hello-sender-maven-plugin/pom.xml
similarity index 100%
rename from quarkus-jandex/hello-sender-maven-plugin/pom.xml
rename to quarkus-modules/quarkus-jandex/hello-sender-maven-plugin/pom.xml
diff --git a/quarkus-jandex/hello-sender-maven-plugin/src/main/java/com/baeldung/quarkus/hello/sender/mavenplugin/MavenPluginHelloSender.java b/quarkus-modules/quarkus-jandex/hello-sender-maven-plugin/src/main/java/com/baeldung/quarkus/hello/sender/mavenplugin/MavenPluginHelloSender.java
similarity index 100%
rename from quarkus-jandex/hello-sender-maven-plugin/src/main/java/com/baeldung/quarkus/hello/sender/mavenplugin/MavenPluginHelloSender.java
rename to quarkus-modules/quarkus-jandex/hello-sender-maven-plugin/src/main/java/com/baeldung/quarkus/hello/sender/mavenplugin/MavenPluginHelloSender.java
diff --git a/quarkus-jandex/hello-sender-undetected/pom.xml b/quarkus-modules/quarkus-jandex/hello-sender-undetected/pom.xml
similarity index 100%
rename from quarkus-jandex/hello-sender-undetected/pom.xml
rename to quarkus-modules/quarkus-jandex/hello-sender-undetected/pom.xml
diff --git a/quarkus-jandex/hello-sender-undetected/src/main/java/com/baeldung/quarkus/hello/sender/undetected/UndetectedHelloSender.java b/quarkus-modules/quarkus-jandex/hello-sender-undetected/src/main/java/com/baeldung/quarkus/hello/sender/undetected/UndetectedHelloSender.java
similarity index 100%
rename from quarkus-jandex/hello-sender-undetected/src/main/java/com/baeldung/quarkus/hello/sender/undetected/UndetectedHelloSender.java
rename to quarkus-modules/quarkus-jandex/hello-sender-undetected/src/main/java/com/baeldung/quarkus/hello/sender/undetected/UndetectedHelloSender.java
diff --git a/quarkus-jandex/hello-service/pom.xml b/quarkus-modules/quarkus-jandex/hello-service/pom.xml
similarity index 100%
rename from quarkus-jandex/hello-service/pom.xml
rename to quarkus-modules/quarkus-jandex/hello-service/pom.xml
diff --git a/quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloRetrieving.java b/quarkus-modules/quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloRetrieving.java
similarity index 100%
rename from quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloRetrieving.java
rename to quarkus-modules/quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloRetrieving.java
diff --git a/quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloService.java b/quarkus-modules/quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloService.java
similarity index 100%
rename from quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloService.java
rename to quarkus-modules/quarkus-jandex/hello-service/src/main/java/com/baeldung/quarkus/hello/service/HelloService.java
diff --git a/quarkus-jandex/hello-service/src/main/resources/META-INF/beans.xml b/quarkus-modules/quarkus-jandex/hello-service/src/main/resources/META-INF/beans.xml
similarity index 100%
rename from quarkus-jandex/hello-service/src/main/resources/META-INF/beans.xml
rename to quarkus-modules/quarkus-jandex/hello-service/src/main/resources/META-INF/beans.xml
diff --git a/quarkus-jandex/pom.xml b/quarkus-modules/quarkus-jandex/pom.xml
similarity index 92%
rename from quarkus-jandex/pom.xml
rename to quarkus-modules/quarkus-jandex/pom.xml
index e3cdfa3835..a254716e42 100644
--- a/quarkus-jandex/pom.xml
+++ b/quarkus-modules/quarkus-jandex/pom.xml
@@ -8,6 +8,12 @@
1.0.0-SNAPSHOT
pom
+
+ com.baeldung
+ quarkus-modules
+ 1.0.0-SNAPSHOT
+
+
hello-service
hello-sender-beans-xml
diff --git a/quarkus-vs-springboot/README.md b/quarkus-modules/quarkus-vs-springboot/README.md
similarity index 100%
rename from quarkus-vs-springboot/README.md
rename to quarkus-modules/quarkus-vs-springboot/README.md
diff --git a/quarkus-vs-springboot/cities.csv b/quarkus-modules/quarkus-vs-springboot/cities.csv
similarity index 100%
rename from quarkus-vs-springboot/cities.csv
rename to quarkus-modules/quarkus-vs-springboot/cities.csv
diff --git a/quarkus-vs-springboot/load_test.jmx b/quarkus-modules/quarkus-vs-springboot/load_test.jmx
similarity index 100%
rename from quarkus-vs-springboot/load_test.jmx
rename to quarkus-modules/quarkus-vs-springboot/load_test.jmx
diff --git a/quarkus-vs-springboot/pom.xml b/quarkus-modules/quarkus-vs-springboot/pom.xml
similarity index 91%
rename from quarkus-vs-springboot/pom.xml
rename to quarkus-modules/quarkus-vs-springboot/pom.xml
index 1726d076da..2e9d0b8a7f 100644
--- a/quarkus-vs-springboot/pom.xml
+++ b/quarkus-modules/quarkus-vs-springboot/pom.xml
@@ -9,8 +9,8 @@
pom
- parent-modules
com.baeldung
+ quarkus-modules
1.0.0-SNAPSHOT
diff --git a/quarkus-vs-springboot/quarkus-project/.mvn/wrapper/maven-wrapper.properties b/quarkus-modules/quarkus-vs-springboot/quarkus-project/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/.mvn/wrapper/maven-wrapper.properties
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/.mvn/wrapper/maven-wrapper.properties
diff --git a/quarkus-vs-springboot/quarkus-project/build.sh b/quarkus-modules/quarkus-vs-springboot/quarkus-project/build.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/build.sh
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/build.sh
diff --git a/quarkus-vs-springboot/quarkus-project/mvnw b/quarkus-modules/quarkus-vs-springboot/quarkus-project/mvnw
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/mvnw
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/mvnw
diff --git a/quarkus-vs-springboot/quarkus-project/mvnw.cmd b/quarkus-modules/quarkus-vs-springboot/quarkus-project/mvnw.cmd
similarity index 97%
rename from quarkus-vs-springboot/quarkus-project/mvnw.cmd
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/mvnw.cmd
index 23b7079a3d..8a15b7f311 100644
--- a/quarkus-vs-springboot/quarkus-project/mvnw.cmd
+++ b/quarkus-modules/quarkus-vs-springboot/quarkus-project/mvnw.cmd
@@ -1,188 +1,188 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
-if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
-
-FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
- IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
-if exist %WRAPPER_JAR% (
- if "%MVNW_VERBOSE%" == "true" (
- echo Found %WRAPPER_JAR%
- )
-) else (
- if not "%MVNW_REPOURL%" == "" (
- SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
- )
- if "%MVNW_VERBOSE%" == "true" (
- echo Couldn't find %WRAPPER_JAR%, downloading it ...
- echo Downloading from: %DOWNLOAD_URL%
- )
-
- powershell -Command "&{"^
- "$webclient = new-object System.Net.WebClient;"^
- "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
- "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
- "}"^
- "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
- "}"
- if "%MVNW_VERBOSE%" == "true" (
- echo Finished downloading %WRAPPER_JAR%
- )
-)
-@REM End of extension
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% ^
- %JVM_CONFIG_MAVEN_PROPS% ^
- %MAVEN_OPTS% ^
- %MAVEN_DEBUG_OPTS% ^
- -classpath %WRAPPER_JAR% ^
- "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
- %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
-if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%"=="on" pause
-
-if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
-
-cmd /C exit /B %ERROR_CODE%
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+ IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Found %WRAPPER_JAR%
+ )
+) else (
+ if not "%MVNW_REPOURL%" == "" (
+ SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+ )
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Couldn't find %WRAPPER_JAR%, downloading it ...
+ echo Downloading from: %DOWNLOAD_URL%
+ )
+
+ powershell -Command "&{"^
+ "$webclient = new-object System.Net.WebClient;"^
+ "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+ "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+ "}"^
+ "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+ "}"
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Finished downloading %WRAPPER_JAR%
+ )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+ %JVM_CONFIG_MAVEN_PROPS% ^
+ %MAVEN_OPTS% ^
+ %MAVEN_DEBUG_OPTS% ^
+ -classpath %WRAPPER_JAR% ^
+ "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+ %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/quarkus-vs-springboot/quarkus-project/pom.xml b/quarkus-modules/quarkus-vs-springboot/quarkus-project/pom.xml
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/pom.xml
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/pom.xml
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.jvm b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.jvm
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.jvm
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.jvm
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.legacy-jar b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.legacy-jar
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.legacy-jar
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.legacy-jar
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native-distroless b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native-distroless
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native-distroless
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/Dockerfile.native-distroless
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/docker/quarkus.yml b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/quarkus.yml
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/docker/quarkus.yml
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/docker/quarkus.yml
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ReactiveGreetingResource.java b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ReactiveGreetingResource.java
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ReactiveGreetingResource.java
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ReactiveGreetingResource.java
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCode.java b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCode.java
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCode.java
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCode.java
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeRepo.java b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeRepo.java
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeRepo.java
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeRepo.java
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeResource.java b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeResource.java
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeResource.java
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/java/com/baeldung/quarkus_project/ZipCodeResource.java
diff --git a/quarkus-vs-springboot/quarkus-project/src/main/resources/application.properties b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/resources/application.properties
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/main/resources/application.properties
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/main/resources/application.properties
diff --git a/quarkus-vs-springboot/quarkus-project/src/test/java/com/baeldung/quarkus_project/NativeGreetingResourceIT.java b/quarkus-modules/quarkus-vs-springboot/quarkus-project/src/test/java/com/baeldung/quarkus_project/NativeGreetingResourceIT.java
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/src/test/java/com/baeldung/quarkus_project/NativeGreetingResourceIT.java
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/src/test/java/com/baeldung/quarkus_project/NativeGreetingResourceIT.java
diff --git a/quarkus-vs-springboot/quarkus-project/start_app.sh b/quarkus-modules/quarkus-vs-springboot/quarkus-project/start_app.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/start_app.sh
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/start_app.sh
diff --git a/quarkus-vs-springboot/quarkus-project/start_jvm.sh b/quarkus-modules/quarkus-vs-springboot/quarkus-project/start_jvm.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/quarkus-project/start_jvm.sh
rename to quarkus-modules/quarkus-vs-springboot/quarkus-project/start_jvm.sh
diff --git a/quarkus-vs-springboot/run_test.sh b/quarkus-modules/quarkus-vs-springboot/run_test.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/run_test.sh
rename to quarkus-modules/quarkus-vs-springboot/run_test.sh
diff --git a/quarkus-vs-springboot/spring-project/.mvn/wrapper/maven-wrapper.properties b/quarkus-modules/quarkus-vs-springboot/spring-project/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from quarkus-vs-springboot/spring-project/.mvn/wrapper/maven-wrapper.properties
rename to quarkus-modules/quarkus-vs-springboot/spring-project/.mvn/wrapper/maven-wrapper.properties
diff --git a/quarkus-vs-springboot/spring-project/build_jvm_docker.sh b/quarkus-modules/quarkus-vs-springboot/spring-project/build_jvm_docker.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/spring-project/build_jvm_docker.sh
rename to quarkus-modules/quarkus-vs-springboot/spring-project/build_jvm_docker.sh
diff --git a/quarkus-vs-springboot/spring-project/mvnw b/quarkus-modules/quarkus-vs-springboot/spring-project/mvnw
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/spring-project/mvnw
rename to quarkus-modules/quarkus-vs-springboot/spring-project/mvnw
diff --git a/quarkus-vs-springboot/spring-project/mvnw.cmd b/quarkus-modules/quarkus-vs-springboot/spring-project/mvnw.cmd
similarity index 97%
rename from quarkus-vs-springboot/spring-project/mvnw.cmd
rename to quarkus-modules/quarkus-vs-springboot/spring-project/mvnw.cmd
index 23b7079a3d..8a15b7f311 100644
--- a/quarkus-vs-springboot/spring-project/mvnw.cmd
+++ b/quarkus-modules/quarkus-vs-springboot/spring-project/mvnw.cmd
@@ -1,188 +1,188 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
-if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
-
-FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
- IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
-if exist %WRAPPER_JAR% (
- if "%MVNW_VERBOSE%" == "true" (
- echo Found %WRAPPER_JAR%
- )
-) else (
- if not "%MVNW_REPOURL%" == "" (
- SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
- )
- if "%MVNW_VERBOSE%" == "true" (
- echo Couldn't find %WRAPPER_JAR%, downloading it ...
- echo Downloading from: %DOWNLOAD_URL%
- )
-
- powershell -Command "&{"^
- "$webclient = new-object System.Net.WebClient;"^
- "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
- "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
- "}"^
- "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
- "}"
- if "%MVNW_VERBOSE%" == "true" (
- echo Finished downloading %WRAPPER_JAR%
- )
-)
-@REM End of extension
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% ^
- %JVM_CONFIG_MAVEN_PROPS% ^
- %MAVEN_OPTS% ^
- %MAVEN_DEBUG_OPTS% ^
- -classpath %WRAPPER_JAR% ^
- "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
- %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
-if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%"=="on" pause
-
-if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
-
-cmd /C exit /B %ERROR_CODE%
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+ IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Found %WRAPPER_JAR%
+ )
+) else (
+ if not "%MVNW_REPOURL%" == "" (
+ SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+ )
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Couldn't find %WRAPPER_JAR%, downloading it ...
+ echo Downloading from: %DOWNLOAD_URL%
+ )
+
+ powershell -Command "&{"^
+ "$webclient = new-object System.Net.WebClient;"^
+ "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+ "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+ "}"^
+ "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+ "}"
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Finished downloading %WRAPPER_JAR%
+ )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+ %JVM_CONFIG_MAVEN_PROPS% ^
+ %MAVEN_OPTS% ^
+ %MAVEN_DEBUG_OPTS% ^
+ -classpath %WRAPPER_JAR% ^
+ "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+ %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/quarkus-vs-springboot/spring-project/pom.xml b/quarkus-modules/quarkus-vs-springboot/spring-project/pom.xml
similarity index 100%
rename from quarkus-vs-springboot/spring-project/pom.xml
rename to quarkus-modules/quarkus-vs-springboot/spring-project/pom.xml
diff --git a/quarkus-vs-springboot/spring-project/src/main/docker/Dockerfile.jvm b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/docker/Dockerfile.jvm
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/docker/Dockerfile.jvm
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/docker/Dockerfile.jvm
diff --git a/quarkus-vs-springboot/spring-project/src/main/docker/spring.yml b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/docker/spring.yml
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/docker/spring.yml
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/docker/spring.yml
diff --git a/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/Startup.java b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/Startup.java
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/Startup.java
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/Startup.java
diff --git a/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/ZipCodeApi.java b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/ZipCodeApi.java
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/ZipCodeApi.java
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/ZipCodeApi.java
diff --git a/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZIPRepo.java b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZIPRepo.java
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZIPRepo.java
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZIPRepo.java
diff --git a/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZipCode.java b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZipCode.java
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZipCode.java
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/java/com/baeldung/spring_project/domain/ZipCode.java
diff --git a/quarkus-vs-springboot/spring-project/src/main/resources/application.properties b/quarkus-modules/quarkus-vs-springboot/spring-project/src/main/resources/application.properties
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/main/resources/application.properties
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/main/resources/application.properties
diff --git a/quarkus-vs-springboot/spring-project/src/test/java/com/baeldung/spring_project/StartupIT.java b/quarkus-modules/quarkus-vs-springboot/spring-project/src/test/java/com/baeldung/spring_project/StartupIT.java
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/test/java/com/baeldung/spring_project/StartupIT.java
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/test/java/com/baeldung/spring_project/StartupIT.java
diff --git a/quarkus-vs-springboot/spring-project/src/test/resources/access-filter.json b/quarkus-modules/quarkus-vs-springboot/spring-project/src/test/resources/access-filter.json
similarity index 100%
rename from quarkus-vs-springboot/spring-project/src/test/resources/access-filter.json
rename to quarkus-modules/quarkus-vs-springboot/spring-project/src/test/resources/access-filter.json
diff --git a/quarkus-vs-springboot/spring-project/start_app.sh b/quarkus-modules/quarkus-vs-springboot/spring-project/start_app.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/spring-project/start_app.sh
rename to quarkus-modules/quarkus-vs-springboot/spring-project/start_app.sh
diff --git a/quarkus-vs-springboot/spring-project/start_jvm.sh b/quarkus-modules/quarkus-vs-springboot/spring-project/start_jvm.sh
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus-vs-springboot/spring-project/start_jvm.sh
rename to quarkus-modules/quarkus-vs-springboot/spring-project/start_jvm.sh
diff --git a/quarkus/.dockerignore b/quarkus-modules/quarkus/.dockerignore
similarity index 100%
rename from quarkus/.dockerignore
rename to quarkus-modules/quarkus/.dockerignore
diff --git a/quarkus/.mvn/wrapper/MavenWrapperDownloader.java b/quarkus-modules/quarkus/.mvn/wrapper/MavenWrapperDownloader.java
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus/.mvn/wrapper/MavenWrapperDownloader.java
rename to quarkus-modules/quarkus/.mvn/wrapper/MavenWrapperDownloader.java
diff --git a/quarkus/.mvn/wrapper/maven-wrapper.properties b/quarkus-modules/quarkus/.mvn/wrapper/maven-wrapper.properties
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus/.mvn/wrapper/maven-wrapper.properties
rename to quarkus-modules/quarkus/.mvn/wrapper/maven-wrapper.properties
diff --git a/quarkus/README.md b/quarkus-modules/quarkus/README.md
similarity index 100%
rename from quarkus/README.md
rename to quarkus-modules/quarkus/README.md
diff --git a/quarkus/mvnw b/quarkus-modules/quarkus/mvnw
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus/mvnw
rename to quarkus-modules/quarkus/mvnw
diff --git a/quarkus/mvnw.cmd b/quarkus-modules/quarkus/mvnw.cmd
old mode 100755
new mode 100644
similarity index 100%
rename from quarkus/mvnw.cmd
rename to quarkus-modules/quarkus/mvnw.cmd
diff --git a/quarkus/pom.xml b/quarkus-modules/quarkus/pom.xml
similarity index 99%
rename from quarkus/pom.xml
rename to quarkus-modules/quarkus/pom.xml
index 9342b1a4af..65c0cec603 100644
--- a/quarkus/pom.xml
+++ b/quarkus-modules/quarkus/pom.xml
@@ -10,7 +10,7 @@
com.baeldung
- parent-modules
+ quarkus-modules
1.0.0-SNAPSHOT
diff --git a/quarkus/src/main/docker/Dockerfile.jvm b/quarkus-modules/quarkus/src/main/docker/Dockerfile.jvm
similarity index 100%
rename from quarkus/src/main/docker/Dockerfile.jvm
rename to quarkus-modules/quarkus/src/main/docker/Dockerfile.jvm
diff --git a/quarkus/src/main/docker/Dockerfile.native b/quarkus-modules/quarkus/src/main/docker/Dockerfile.native
similarity index 100%
rename from quarkus/src/main/docker/Dockerfile.native
rename to quarkus-modules/quarkus/src/main/docker/Dockerfile.native
diff --git a/quarkus/src/main/java/com/baeldung/quarkus/HelloResource.java b/quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/HelloResource.java
similarity index 100%
rename from quarkus/src/main/java/com/baeldung/quarkus/HelloResource.java
rename to quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/HelloResource.java
diff --git a/quarkus/src/main/java/com/baeldung/quarkus/HelloService.java b/quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/HelloService.java
similarity index 100%
rename from quarkus/src/main/java/com/baeldung/quarkus/HelloService.java
rename to quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/HelloService.java
diff --git a/quarkus/src/main/java/com/baeldung/quarkus/LibraryResource.java b/quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/LibraryResource.java
similarity index 100%
rename from quarkus/src/main/java/com/baeldung/quarkus/LibraryResource.java
rename to quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/LibraryResource.java
diff --git a/quarkus/src/main/java/com/baeldung/quarkus/model/Book.java b/quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/model/Book.java
similarity index 100%
rename from quarkus/src/main/java/com/baeldung/quarkus/model/Book.java
rename to quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/model/Book.java
diff --git a/quarkus/src/main/java/com/baeldung/quarkus/repository/BookRepository.java b/quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/repository/BookRepository.java
similarity index 100%
rename from quarkus/src/main/java/com/baeldung/quarkus/repository/BookRepository.java
rename to quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/repository/BookRepository.java
diff --git a/quarkus/src/main/java/com/baeldung/quarkus/service/LibraryService.java b/quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/service/LibraryService.java
similarity index 100%
rename from quarkus/src/main/java/com/baeldung/quarkus/service/LibraryService.java
rename to quarkus-modules/quarkus/src/main/java/com/baeldung/quarkus/service/LibraryService.java
diff --git a/quarkus/src/main/resources/META-INF/resources/index.html b/quarkus-modules/quarkus/src/main/resources/META-INF/resources/index.html
similarity index 100%
rename from quarkus/src/main/resources/META-INF/resources/index.html
rename to quarkus-modules/quarkus/src/main/resources/META-INF/resources/index.html
diff --git a/quarkus/src/main/resources/application.properties b/quarkus-modules/quarkus/src/main/resources/application.properties
similarity index 100%
rename from quarkus/src/main/resources/application.properties
rename to quarkus-modules/quarkus/src/main/resources/application.properties
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/CustomLibraryResourceManualTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/CustomLibraryResourceManualTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/CustomLibraryResourceManualTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/CustomLibraryResourceManualTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/HelloResourceUnitTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/HelloResourceUnitTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/HelloResourceUnitTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/HelloResourceUnitTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/LibraryHttpEndpointIntegrationTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryHttpEndpointIntegrationTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/LibraryHttpEndpointIntegrationTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryHttpEndpointIntegrationTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceHttpResourceIntegrationTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceHttpResourceIntegrationTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceHttpResourceIntegrationTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceHttpResourceIntegrationTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceInjectSpyIntegrationTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceInjectSpyIntegrationTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceInjectSpyIntegrationTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceInjectSpyIntegrationTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceIntegrationTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceIntegrationTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceIntegrationTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/LibraryResourceIntegrationTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/NativeHelloResourceIT.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/NativeHelloResourceIT.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/NativeHelloResourceIT.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/NativeHelloResourceIT.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/NativeLibraryResourceIT.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/NativeLibraryResourceIT.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/NativeLibraryResourceIT.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/NativeLibraryResourceIT.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/repository/BookRepositoryIntegrationTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/repository/BookRepositoryIntegrationTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/repository/BookRepositoryIntegrationTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/repository/BookRepositoryIntegrationTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceInjectMockUnitTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceInjectMockUnitTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceInjectMockUnitTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceInjectMockUnitTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceIntegrationTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceIntegrationTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceIntegrationTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceIntegrationTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceQuarkusMockUnitTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceQuarkusMockUnitTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceQuarkusMockUnitTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/service/LibraryServiceQuarkusMockUnitTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/utils/CustomTestProfile.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/utils/CustomTestProfile.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/utils/CustomTestProfile.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/utils/CustomTestProfile.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/utils/QuarkusTransactionalTest.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/utils/QuarkusTransactionalTest.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/utils/QuarkusTransactionalTest.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/utils/QuarkusTransactionalTest.java
diff --git a/quarkus/src/test/java/com/baeldung/quarkus/utils/TestBookRepository.java b/quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/utils/TestBookRepository.java
similarity index 100%
rename from quarkus/src/test/java/com/baeldung/quarkus/utils/TestBookRepository.java
rename to quarkus-modules/quarkus/src/test/java/com/baeldung/quarkus/utils/TestBookRepository.java
diff --git a/quarkus/.mvn/wrapper/maven-wrapper.jar b/quarkus/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100755
index e89f07c229..0000000000
Binary files a/quarkus/.mvn/wrapper/maven-wrapper.jar and /dev/null differ