From 8daf19c9ec9595c41120404a4bf22122c4918344 Mon Sep 17 00:00:00 2001
From: panos-kakos <102670093+panos-kakos@users.noreply.github.com>
Date: Wed, 13 Dec 2023 09:40:13 +0200
Subject: [PATCH] [JAVA-22519] Created new module libraries-stream and added 5
articles (#15403)
---
asm/README.md | 7 -
asm/pom.xml | 54 ---
libraries-2/README.md | 3 -
libraries-2/pom.xml | 24 --
libraries-3/README.md | 2 -
libraries-3/pom.xml | 19 +-
libraries-4/README.md | 2 -
libraries-4/pom.xml | 36 +-
libraries-5/README.md | 2 -
libraries-5/pom.xml | 16 -
libraries-6/README.md | 1 -
libraries-6/pom.xml | 6 -
libraries-bytecode/.gitignore | 9 +
libraries-bytecode/README.md | 9 +
libraries-bytecode/pom.xml | 85 +++++
.../com/baeldung}/asm/CustomClassWriter.java | 320 +++++++++---------
.../asm/instrumentation/Premain.java | 4 +-
.../main/java/com/baeldung/bytebuddy/Bar.java | 0
.../main/java/com/baeldung/bytebuddy/Foo.java | 0
.../java/com/baeldung/javasisst/Point.java | 0
.../javasisst/ThreeDimensionalPoint.java | 0
.../src/main/resources/logback.xml | 0
.../baeldung/bytebuddy/ByteBuddyUnitTest.java | 19 +-
.../baeldung/javassist/JavasisstUnitTest.java | 0
libraries-cli/.gitignore | 9 +
libraries-cli/README.md | 9 +
libraries-cli/pom.xml | 69 ++++
.../com/baeldung/airline/CommandLine.java | 0
.../airline/DatabaseSetupCommand.java | 0
.../com/baeldung/airline/LoggingCommand.java | 0
.../jcommander/helloworld/HelloWorldApp.java | 0
.../usagebilling/UsageBasedBillingApp.java | 0
.../cli/FetchCurrentChargesCommand.java | 11 +-
.../usagebilling/cli/SubmitUsageCommand.java | 13 +-
.../usagebilling/cli/UsageBasedBilling.java | 0
.../converter/ISO8601TimestampConverter.java | 6 +-
.../cli/splitter/ColonParameterSplitter.java | 4 +-
.../cli/validator/UUIDValidator.java | 4 +-
.../model/CurrentChargesRequest.java | 8 +-
.../model/CurrentChargesResponse.java | 8 +-
.../usagebilling/model/UsageRequest.java | 8 +-
.../DefaultFetchCurrentChargesService.java | 16 +-
.../service/DefaultSubmitUsageService.java | 4 +-
.../service/FetchCurrentChargesService.java | 0
.../service/SubmitUsageService.java | 0
.../com/baeldung/picocli/git/Application.java | 10 +-
.../git/commands/declarative/GitCommand.java | 13 +-
.../git/commands/methods/GitCommand.java | 4 +-
.../commands/programmative/GitCommand.java | 12 +-
.../commands/subcommands/GitAddCommand.java | 4 +-
.../subcommands/GitCommitCommand.java | 4 +-
.../subcommands/GitConfigCommand.java | 7 +-
.../picocli/git/model/ConfigElement.java | 0
.../picocli/helloworld/HelloWorldCommand.java | 4 +-
libraries-cli/src/main/resources/logback.xml | 13 +
.../helloworld/HelloWorldAppUnitTest.java | 5 +-
.../FetchCurrentChargesCommandUnitTest.java | 7 +-
.../cli/SubmitUsageCommandUnitTest.java | 9 +-
libraries-reporting/.gitignore | 9 +
libraries-reporting/README.md | 8 +
libraries-reporting/pom.xml | 75 ++++
.../java/com/baeldung/jasperreports/Main.java | 0
.../jasperreports/SimpleReportExporter.java | 0
.../jasperreports/SimpleReportFiller.java | 0
.../config/JasperRerportsSimpleConfig.java | 0
.../com/baeldung/yarg/DocumentController.java | 17 +-
.../src/main/resources/employee-schema.sql | 0
.../main/resources/employeeEmailReport.jrxml | 0
.../src/main/resources/employeeReport.jrxml | 0
.../src/main/resources/logback.xml | 13 +
libraries-stream/.gitignore | 9 +
libraries-stream/README.md | 11 +
libraries-stream/pom.xml | 59 ++++
.../distinct/DistinctWithJavaFunction.java | 0
.../java/com/baeldung/distinct/Person.java | 0
.../main/java/com/baeldung/streamex/Role.java | 0
.../java/com/baeldung/streamex/StreamEX.java | 1 +
.../main/java/com/baeldung/streamex/User.java | 0
.../src/main/resources/logback.xml | 13 +
...istinctWithEclipseCollectionsUnitTest.java | 0
.../DistinctWithJavaFunctionUnitTest.java | 2 +-
.../DistinctWithStreamexUnitTest.java | 0
.../distinct/DistinctWithVavrUnitTest.java | 0
.../distinct/PersonDataGenerator.java | 0
.../ParallelCollectorsUnitTest.java | 0
.../protonpack/ProtonpackUnitTest.java | 21 +-
.../stream/JoolMergeStreamsUnitTest.java | 0
.../baeldung/stream/MergeStreamsUnitTest.java | 0
.../StreamExMergeStreamsUnitTest.java | 7 +-
libraries/README.md | 2 -
libraries/pom.xml | 12 -
pom.xml | 10 +-
92 files changed, 718 insertions(+), 430 deletions(-)
delete mode 100644 asm/README.md
delete mode 100644 asm/pom.xml
create mode 100644 libraries-bytecode/.gitignore
create mode 100644 libraries-bytecode/README.md
create mode 100644 libraries-bytecode/pom.xml
rename {asm/src/main/java/com/baeldung/examples => libraries-bytecode/src/main/java/com/baeldung}/asm/CustomClassWriter.java (96%)
rename {asm/src/main/java/com/baeldung/examples => libraries-bytecode/src/main/java/com/baeldung}/asm/instrumentation/Premain.java (88%)
rename {libraries-5 => libraries-bytecode}/src/main/java/com/baeldung/bytebuddy/Bar.java (100%)
rename {libraries-5 => libraries-bytecode}/src/main/java/com/baeldung/bytebuddy/Foo.java (100%)
rename {libraries => libraries-bytecode}/src/main/java/com/baeldung/javasisst/Point.java (100%)
rename {libraries => libraries-bytecode}/src/main/java/com/baeldung/javasisst/ThreeDimensionalPoint.java (100%)
rename {asm => libraries-bytecode}/src/main/resources/logback.xml (100%)
rename {libraries-5 => libraries-bytecode}/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java (93%)
rename {libraries => libraries-bytecode}/src/test/java/com/baeldung/javassist/JavasisstUnitTest.java (100%)
create mode 100644 libraries-cli/.gitignore
create mode 100644 libraries-cli/README.md
create mode 100644 libraries-cli/pom.xml
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/airline/CommandLine.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/airline/DatabaseSetupCommand.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/airline/LoggingCommand.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/helloworld/HelloWorldApp.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/UsageBasedBillingApp.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java (99%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java (99%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/cli/UsageBasedBilling.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java (70%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java (91%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java (89%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/service/FetchCurrentChargesService.java (100%)
rename {libraries-3 => libraries-cli}/src/main/java/com/baeldung/jcommander/usagebilling/service/SubmitUsageService.java (100%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/Application.java (99%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java (99%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java (100%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java (99%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java (100%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java (100%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java (99%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/git/model/ConfigElement.java (100%)
rename {libraries-2 => libraries-cli}/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java (100%)
create mode 100644 libraries-cli/src/main/resources/logback.xml
rename {libraries-3 => libraries-cli}/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java (99%)
rename {libraries-3 => libraries-cli}/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java (99%)
rename {libraries-3 => libraries-cli}/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java (95%)
create mode 100644 libraries-reporting/.gitignore
create mode 100644 libraries-reporting/README.md
create mode 100644 libraries-reporting/pom.xml
rename {libraries-2 => libraries-reporting}/src/main/java/com/baeldung/jasperreports/Main.java (100%)
rename {libraries-2 => libraries-reporting}/src/main/java/com/baeldung/jasperreports/SimpleReportExporter.java (100%)
rename {libraries-2 => libraries-reporting}/src/main/java/com/baeldung/jasperreports/SimpleReportFiller.java (100%)
rename {libraries-2 => libraries-reporting}/src/main/java/com/baeldung/jasperreports/config/JasperRerportsSimpleConfig.java (100%)
rename {libraries-4 => libraries-reporting}/src/main/java/com/baeldung/yarg/DocumentController.java (99%)
rename {libraries-2 => libraries-reporting}/src/main/resources/employee-schema.sql (100%)
rename {libraries-2 => libraries-reporting}/src/main/resources/employeeEmailReport.jrxml (100%)
rename {libraries-2 => libraries-reporting}/src/main/resources/employeeReport.jrxml (100%)
create mode 100644 libraries-reporting/src/main/resources/logback.xml
create mode 100644 libraries-stream/.gitignore
create mode 100644 libraries-stream/README.md
create mode 100644 libraries-stream/pom.xml
rename {libraries-4 => libraries-stream}/src/main/java/com/baeldung/distinct/DistinctWithJavaFunction.java (100%)
rename {libraries-4 => libraries-stream}/src/main/java/com/baeldung/distinct/Person.java (100%)
rename {libraries-5 => libraries-stream}/src/main/java/com/baeldung/streamex/Role.java (100%)
rename {libraries-5 => libraries-stream}/src/main/java/com/baeldung/streamex/StreamEX.java (99%)
rename {libraries-5 => libraries-stream}/src/main/java/com/baeldung/streamex/User.java (100%)
create mode 100644 libraries-stream/src/main/resources/logback.xml
rename {libraries-4 => libraries-stream}/src/test/java/com/baeldung/distinct/DistinctWithEclipseCollectionsUnitTest.java (100%)
rename {libraries-4 => libraries-stream}/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java (100%)
rename {libraries-4 => libraries-stream}/src/test/java/com/baeldung/distinct/DistinctWithStreamexUnitTest.java (100%)
rename {libraries-4 => libraries-stream}/src/test/java/com/baeldung/distinct/DistinctWithVavrUnitTest.java (100%)
rename {libraries-4 => libraries-stream}/src/test/java/com/baeldung/distinct/PersonDataGenerator.java (100%)
rename {libraries-2 => libraries-stream}/src/test/java/com/baeldung/parallel_collectors/ParallelCollectorsUnitTest.java (100%)
rename {libraries-6 => libraries-stream}/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java (99%)
rename {libraries => libraries-stream}/src/test/java/com/baeldung/stream/JoolMergeStreamsUnitTest.java (100%)
rename {libraries => libraries-stream}/src/test/java/com/baeldung/stream/MergeStreamsUnitTest.java (100%)
rename {libraries-5 => libraries-stream}/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java (99%)
diff --git a/asm/README.md b/asm/README.md
deleted file mode 100644
index e10cdc45bd..0000000000
--- a/asm/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## ASM
-
-This module contains articles about ASM
-
-### Relevant Articles:
-
-- [A Guide to Java Bytecode Manipulation with ASM](https://www.baeldung.com/java-asm)
diff --git a/asm/pom.xml b/asm/pom.xml
deleted file mode 100644
index 4edfe86ae5..0000000000
--- a/asm/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
- 4.0.0
- com.baeldung.examples
- asm
- 1.0
- asm
- jar
-
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
-
-
-
-
- org.ow2.asm
- asm
- ${asm.version}
-
-
- org.ow2.asm
- asm-util
- ${asm.version}
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- ${maven-jar-plugin.version}
-
-
-
-
- com.baeldung.examples.asm.instrumentation.Premain
-
-
-
-
-
-
-
-
-
- 5.2
-
-
-
\ No newline at end of file
diff --git a/libraries-2/README.md b/libraries-2/README.md
index 8dae12a1cf..3eb788a34a 100644
--- a/libraries-2/README.md
+++ b/libraries-2/README.md
@@ -10,13 +10,10 @@ Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-m
### Relevant articles
- [A Guide to jBPM with Java](https://www.baeldung.com/jbpm-java)
- [Guide to Classgraph Library](https://www.baeldung.com/classgraph)
-- [Create a Java Command Line Program with Picocli](https://www.baeldung.com/java-picocli-create-command-line-program)
-- [Guide to Java Parallel Collectors Library](https://www.baeldung.com/java-parallel-collectors)
- [Templating with Handlebars](https://www.baeldung.com/handlebars)
- [A Guide to Crawler4j](https://www.baeldung.com/crawler4j)
- [Key Value Store with Chronicle Map](https://www.baeldung.com/java-chronicle-map)
- [Guide to MapDB](https://www.baeldung.com/mapdb)
- [A Guide to Apache Mesos](https://www.baeldung.com/apache-mesos)
-- [JasperReports with Spring](https://www.baeldung.com/spring-jasper)
- More articles [[<-- prev]](/libraries) [[next -->]](/libraries-3)
diff --git a/libraries-2/pom.xml b/libraries-2/pom.xml
index d9b0545d54..9eff129a63 100644
--- a/libraries-2/pom.xml
+++ b/libraries-2/pom.xml
@@ -18,11 +18,6 @@
mapdb
${mapdb.version}
-
- com.pivovarit
- parallel-collectors
- ${parallel-collectors.version}
-
io.github.classgraph
classgraph
@@ -41,11 +36,6 @@
-
- info.picocli
- picocli
- ${picocli.version}
-
org.springframework.boot
spring-boot-starter
@@ -83,17 +73,6 @@
mesos
${mesos.library.version}
-
- net.sf.jasperreports
- jasperreports
- ${jasperreports.version}
-
-
- commons-logging
- commons-logging
-
-
-
org.hsqldb
hsqldb
@@ -133,14 +112,11 @@
3.0.8
4.8.153
7.20.0.Final
- 4.7.0
3.24ea1
4.4.0
2.7.8
1.11.0
- 1.1.0
4.3.1
- 6.20.0
5.3.25
2.7.1
diff --git a/libraries-3/README.md b/libraries-3/README.md
index 99b1b60a0a..faef721a22 100644
--- a/libraries-3/README.md
+++ b/libraries-3/README.md
@@ -8,9 +8,7 @@ The code examples related to different libraries are each in their own module.
Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-modules) we already have separate modules. Please make sure to have a look at the existing modules in such cases.
### Relevant Articles:
-- [Parsing Command-Line Parameters with JCommander](https://www.baeldung.com/jcommander-parsing-command-line-parameters)
- [Guide to the Cactoos Library](https://www.baeldung.com/java-cactoos)
-- [Parsing Command-Line Parameters with Airline](https://www.baeldung.com/java-airline)
- [Introduction to cache2k](https://www.baeldung.com/java-cache2k)
- [Introduction to the jcabi-aspects AOP Annotations Library](https://www.baeldung.com/java-jcabi-aspects)
- [Introduction to Takes](https://www.baeldung.com/java-takes)
diff --git a/libraries-3/pom.xml b/libraries-3/pom.xml
index 9923e46267..bff0a654c6 100644
--- a/libraries-3/pom.xml
+++ b/libraries-3/pom.xml
@@ -13,21 +13,11 @@
-
- com.beust
- jcommander
- ${jcommander.version}
-
org.projectlombok
lombok
${lombok.version}
-
- com.github.rvesse
- airline
- ${airline.version}
-
org.cactoos
cactoos
@@ -125,7 +115,7 @@
javax.annotation
javax.annotation-api
- 1.3.2
+ ${javax.annotation-api.version}
@@ -159,10 +149,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
- 11
- 11
-
@@ -214,9 +200,7 @@
- 1.78
0.43
- 2.7.2
1.2.3.Final
0.22.6
1.9.20.1
@@ -233,6 +217,7 @@
1.0.0
2.5.6
0.9.6
+ 1.3.2
\ No newline at end of file
diff --git a/libraries-4/README.md b/libraries-4/README.md
index 0dee9f1c1e..102f17acdb 100644
--- a/libraries-4/README.md
+++ b/libraries-4/README.md
@@ -11,9 +11,7 @@ Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-m
- [Quick Guide to RSS with Rome](https://www.baeldung.com/rome-rss)
- [Introduction to PCollections](https://www.baeldung.com/java-pcollections)
- [Introduction to Eclipse Collections](https://www.baeldung.com/eclipse-collections)
-- [DistinctBy in the Java Stream API](https://www.baeldung.com/java-streams-distinct-by)
- [Introduction to NoException](https://www.baeldung.com/no-exception)
-- [Spring Yarg Integration](https://www.baeldung.com/spring-yarg)
- [Delete a Directory Recursively in Java](https://www.baeldung.com/java-delete-directory)
- [Guide to JDeferred](https://www.baeldung.com/jdeferred)
- [Introduction to MBassador](https://www.baeldung.com/mbassador)
diff --git a/libraries-4/pom.xml b/libraries-4/pom.xml
index 3949d50875..6b818be9c2 100644
--- a/libraries-4/pom.xml
+++ b/libraries-4/pom.xml
@@ -22,17 +22,6 @@
eclipse-collections
${eclipse-collections.version}
-
- com.haulmont.yarg
- yarg
- ${yarg.version}
-
-
- org.olap4j
- olap4j
-
-
-
org.olap4j
olap4j
@@ -68,11 +57,6 @@
servlet-api
${javax.servlet.version}
-
- io.vavr
- vavr
- ${vavr.version}
-
org.pcollections
pcollections
@@ -119,21 +103,33 @@
jackson-annotations
${jackson-annotations.version}
+
+ io.vavr
+ vavr
+ ${vavr.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ commons-io
+ commons-io
+ ${commons-io.version}
+
2.14.2
2.14.2
1.2.6
- 8.2.0
1.1.0
- 2.0.12
1.3.1
1.0
4.3.8.RELEASE
2.5
3.2.0-m7
- 0.9.0
2.1.2
3.0.0
0.6.5
@@ -142,6 +138,8 @@
1.2.0
19
10.3.0
+ 8.2.0
+ 0.9.0
\ No newline at end of file
diff --git a/libraries-5/README.md b/libraries-5/README.md
index f1e749b293..50fb70bd05 100644
--- a/libraries-5/README.md
+++ b/libraries-5/README.md
@@ -9,10 +9,8 @@ Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-m
### Relevant articles
- [Introduction to Caffeine](https://www.baeldung.com/java-caching-caffeine)
-- [Introduction to StreamEx](https://www.baeldung.com/streamex)
- [A Docker Guide for Java](https://www.baeldung.com/docker-java-api)
- [Introduction to Akka Actors in Java](https://www.baeldung.com/akka-actors-java)
-- [A Guide to Byte Buddy](https://www.baeldung.com/byte-buddy)
- [Introduction to jOOL](https://www.baeldung.com/jool)
- [Consumer Driven Contracts with Pact](https://www.baeldung.com/pact-junit-consumer-driven-contracts)
- [Introduction to Atlassian Fugue](https://www.baeldung.com/java-fugue)
diff --git a/libraries-5/pom.xml b/libraries-5/pom.xml
index a043b4bfa8..85f8896890 100644
--- a/libraries-5/pom.xml
+++ b/libraries-5/pom.xml
@@ -49,21 +49,6 @@
${typesafe-akka.version}
test
-
- one.util
- streamex
- ${streamex.version}
-
-
- net.bytebuddy
- byte-buddy
- ${byte-buddy.version}
-
-
- net.bytebuddy
- byte-buddy-agent
- ${byte-buddy.version}
-
com.github.docker-java
@@ -139,7 +124,6 @@
4.3.8.RELEASE
2.12
2.5.11
- 0.8.1
3.0.14
3.1.8
3.0.2
diff --git a/libraries-6/README.md b/libraries-6/README.md
index bbebcbc1e0..4236a65d95 100644
--- a/libraries-6/README.md
+++ b/libraries-6/README.md
@@ -12,7 +12,6 @@ Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-m
- [Guide to Resilience4j](https://www.baeldung.com/resilience4j)
- [Implementing a FTP-Client in Java](https://www.baeldung.com/java-ftp-client)
- [Introduction to Functional Java](https://www.baeldung.com/java-functional-library)
-- [Introduction to Protonpack](https://www.baeldung.com/java-protonpack)
- [Guide to Simple Binary Encoding](https://www.baeldung.com/java-sbe)
- [Java-R Integration](https://www.baeldung.com/java-r-integration)
- [Using libphonenumber to Validate Phone Numbers](https://www.baeldung.com/java-libphonenumber)
diff --git a/libraries-6/pom.xml b/libraries-6/pom.xml
index f073ca424c..372c5b1cc7 100644
--- a/libraries-6/pom.xml
+++ b/libraries-6/pom.xml
@@ -17,11 +17,6 @@
functionaljava-java8
${functionaljava.version}
-
- com.codepoetics
- protonpack
- ${protonpack.version}
-
io.github.resilience4j
resilience4j-circuitbreaker
@@ -198,7 +193,6 @@
2.7.1
4.8.1
2.1.0
- 1.15
3.6
3.5-beta72
3.0
diff --git a/libraries-bytecode/.gitignore b/libraries-bytecode/.gitignore
new file mode 100644
index 0000000000..e594daf27a
--- /dev/null
+++ b/libraries-bytecode/.gitignore
@@ -0,0 +1,9 @@
+*.class
+
+# Folders #
+/gensrc
+/target
+
+# Packaged files #
+*.jar
+/bin/
diff --git a/libraries-bytecode/README.md b/libraries-bytecode/README.md
new file mode 100644
index 0000000000..cc30511ad1
--- /dev/null
+++ b/libraries-bytecode/README.md
@@ -0,0 +1,9 @@
+## Server
+
+This module contains articles about bytecode libraries.
+
+### Relevant Articles:
+
+- [Introduction to Javassist](https://www.baeldung.com/javassist)
+- [A Guide to Byte Buddy](https://www.baeldung.com/byte-buddy)
+- [A Guide to Java Bytecode Manipulation with ASM](https://www.baeldung.com/java-asm)
\ No newline at end of file
diff --git a/libraries-bytecode/pom.xml b/libraries-bytecode/pom.xml
new file mode 100644
index 0000000000..f21911d77e
--- /dev/null
+++ b/libraries-bytecode/pom.xml
@@ -0,0 +1,85 @@
+
+
+ 4.0.0
+ libraries-bytecode
+ 0.0.1-SNAPSHOT
+ libraries-bytecode
+ jar
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.javassist
+ javassist
+ ${javaassist.version}
+
+
+ net.bytebuddy
+ byte-buddy
+ ${byte-buddy.version}
+
+
+ net.bytebuddy
+ byte-buddy-agent
+ ${byte-buddy.version}
+
+
+ org.ow2.asm
+ asm
+ ${asm.version}
+
+
+ org.ow2.asm
+ asm-util
+ ${asm.version}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED
+ --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
+ --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
+ --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+ --add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED
+ --add-opens=java.base/java.lang=ALL-UNNAMED
+ --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
+ --add-opens=java.base/java.io=ALL-UNNAMED
+ --add-opens=java.base/java.util=ALL-UNNAMED
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven-jar-plugin.version}
+
+
+
+
+ com.baeldung.examples.asm.instrumentation.Premain
+
+
+
+
+
+
+
+
+
+ 3.29.2-GA
+ 5.2
+
+
+
\ No newline at end of file
diff --git a/asm/src/main/java/com/baeldung/examples/asm/CustomClassWriter.java b/libraries-bytecode/src/main/java/com/baeldung/asm/CustomClassWriter.java
similarity index 96%
rename from asm/src/main/java/com/baeldung/examples/asm/CustomClassWriter.java
rename to libraries-bytecode/src/main/java/com/baeldung/asm/CustomClassWriter.java
index d41a1a16a3..f05a753320 100644
--- a/asm/src/main/java/com/baeldung/examples/asm/CustomClassWriter.java
+++ b/libraries-bytecode/src/main/java/com/baeldung/asm/CustomClassWriter.java
@@ -1,160 +1,160 @@
-package com.baeldung.examples.asm;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.MethodVisitor;
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.ACC_STATIC;
-import static org.objectweb.asm.Opcodes.ASM4;
-import static org.objectweb.asm.Opcodes.V1_5;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.util.TraceClassVisitor;
-
-/**
- *
- * @author baeldung
- * @param
- */
-public class CustomClassWriter {
-
- ClassReader reader;
- ClassWriter writer;
- AddFieldAdapter addFieldAdapter;
- AddInterfaceAdapter addInterfaceAdapter;
- PublicizeMethodAdapter pubMethAdapter;
- final static String CLASSNAME = "java.lang.Integer";
- final static String CLONEABLE = "java/lang/Cloneable";
-
- public CustomClassWriter() {
-
- try {
- reader = new ClassReader(CLASSNAME);
- writer = new ClassWriter(reader, 0);
-
- } catch (IOException ex) {
- Logger.getLogger(CustomClassWriter.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-
- public CustomClassWriter(byte[] contents) {
- reader = new ClassReader(contents);
- writer = new ClassWriter(reader, 0);
- }
-
- public static void main(String[] args) {
- CustomClassWriter ccw = new CustomClassWriter();
- ccw.publicizeMethod();
- }
-
- public byte[] addField() {
- addFieldAdapter = new AddFieldAdapter("aNewBooleanField", org.objectweb.asm.Opcodes.ACC_PUBLIC, writer);
- reader.accept(addFieldAdapter, 0);
- return writer.toByteArray();
- }
-
- public byte[] publicizeMethod() {
- pubMethAdapter = new PublicizeMethodAdapter(writer);
- reader.accept(pubMethAdapter, 0);
- return writer.toByteArray();
- }
-
- public byte[] addInterface() {
- addInterfaceAdapter = new AddInterfaceAdapter(writer);
- reader.accept(addInterfaceAdapter, 0);
- return writer.toByteArray();
- }
-
- public class AddInterfaceAdapter extends ClassVisitor {
-
- public AddInterfaceAdapter(ClassVisitor cv) {
- super(ASM4, cv);
- }
-
- @Override
- public void visit(int version, int access, String name,
- String signature, String superName, String[] interfaces) {
- String[] holding = new String[interfaces.length + 1];
- holding[holding.length - 1] = CLONEABLE;
- System.arraycopy(interfaces, 0, holding, 0, interfaces.length);
-
- cv.visit(V1_5, access, name, signature, superName, holding);
- }
-
- }
-
- public class PublicizeMethodAdapter extends ClassVisitor {
-
- final Logger logger = Logger.getLogger("PublicizeMethodAdapter");
- TraceClassVisitor tracer;
- PrintWriter pw = new PrintWriter(System.out);
-
- public PublicizeMethodAdapter(ClassVisitor cv) {
- super(ASM4, cv);
- this.cv = cv;
- tracer = new TraceClassVisitor(cv, pw);
- }
-
- @Override
- public MethodVisitor visitMethod(int access,
- String name,
- String desc,
- String signature,
- String[] exceptions) {
-
- if (name.equals("toUnsignedString0")) {
- logger.info("Visiting unsigned method");
- return tracer.visitMethod(ACC_PUBLIC + ACC_STATIC, name, desc, signature, exceptions);
- }
- return tracer.visitMethod(access, name, desc, signature, exceptions);
-
- }
-
- public void visitEnd() {
- tracer.visitEnd();
- System.out.println(tracer.p.getText());
- }
-
- }
-
- public class AddFieldAdapter extends ClassVisitor {
-
- String fieldName;
- int access;
- boolean isFieldPresent;
-
- public AddFieldAdapter(String fieldName, int access, ClassVisitor cv) {
- super(ASM4, cv);
- this.cv = cv;
- this.access = access;
- this.fieldName = fieldName;
- }
-
- @Override
- public FieldVisitor visitField(int access, String name, String desc,
- String signature, Object value) {
- if (name.equals(fieldName)) {
- isFieldPresent = true;
- }
- return cv.visitField(access, name, desc, signature, value);
- }
-
- @Override
- public void visitEnd() {
- if (!isFieldPresent) {
- FieldVisitor fv = cv.visitField(access, fieldName, Type.BOOLEAN_TYPE.toString(), null, null);
- if (fv != null) {
- fv.visitEnd();
- }
- }
- cv.visitEnd();
- }
-
- }
-
-}
+package com.baeldung.asm;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.MethodVisitor;
+import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
+import static org.objectweb.asm.Opcodes.ACC_STATIC;
+import static org.objectweb.asm.Opcodes.ASM4;
+import static org.objectweb.asm.Opcodes.V1_5;
+import org.objectweb.asm.Type;
+import org.objectweb.asm.util.TraceClassVisitor;
+
+/**
+ *
+ * @author baeldung
+ * @param
+ */
+public class CustomClassWriter {
+
+ ClassReader reader;
+ ClassWriter writer;
+ AddFieldAdapter addFieldAdapter;
+ AddInterfaceAdapter addInterfaceAdapter;
+ PublicizeMethodAdapter pubMethAdapter;
+ final static String CLASSNAME = "java.lang.Integer";
+ final static String CLONEABLE = "java/lang/Cloneable";
+
+ public CustomClassWriter() {
+
+ try {
+ reader = new ClassReader(CLASSNAME);
+ writer = new ClassWriter(reader, 0);
+
+ } catch (IOException ex) {
+ Logger.getLogger(CustomClassWriter.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ public CustomClassWriter(byte[] contents) {
+ reader = new ClassReader(contents);
+ writer = new ClassWriter(reader, 0);
+ }
+
+ public static void main(String[] args) {
+ CustomClassWriter ccw = new CustomClassWriter();
+ ccw.publicizeMethod();
+ }
+
+ public byte[] addField() {
+ addFieldAdapter = new AddFieldAdapter("aNewBooleanField", org.objectweb.asm.Opcodes.ACC_PUBLIC, writer);
+ reader.accept(addFieldAdapter, 0);
+ return writer.toByteArray();
+ }
+
+ public byte[] publicizeMethod() {
+ pubMethAdapter = new PublicizeMethodAdapter(writer);
+ reader.accept(pubMethAdapter, 0);
+ return writer.toByteArray();
+ }
+
+ public byte[] addInterface() {
+ addInterfaceAdapter = new AddInterfaceAdapter(writer);
+ reader.accept(addInterfaceAdapter, 0);
+ return writer.toByteArray();
+ }
+
+ public class AddInterfaceAdapter extends ClassVisitor {
+
+ public AddInterfaceAdapter(ClassVisitor cv) {
+ super(ASM4, cv);
+ }
+
+ @Override
+ public void visit(int version, int access, String name,
+ String signature, String superName, String[] interfaces) {
+ String[] holding = new String[interfaces.length + 1];
+ holding[holding.length - 1] = CLONEABLE;
+ System.arraycopy(interfaces, 0, holding, 0, interfaces.length);
+
+ cv.visit(V1_5, access, name, signature, superName, holding);
+ }
+
+ }
+
+ public class PublicizeMethodAdapter extends ClassVisitor {
+
+ final Logger logger = Logger.getLogger("PublicizeMethodAdapter");
+ TraceClassVisitor tracer;
+ PrintWriter pw = new PrintWriter(System.out);
+
+ public PublicizeMethodAdapter(ClassVisitor cv) {
+ super(ASM4, cv);
+ this.cv = cv;
+ tracer = new TraceClassVisitor(cv, pw);
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access,
+ String name,
+ String desc,
+ String signature,
+ String[] exceptions) {
+
+ if (name.equals("toUnsignedString0")) {
+ logger.info("Visiting unsigned method");
+ return tracer.visitMethod(ACC_PUBLIC + ACC_STATIC, name, desc, signature, exceptions);
+ }
+ return tracer.visitMethod(access, name, desc, signature, exceptions);
+
+ }
+
+ public void visitEnd() {
+ tracer.visitEnd();
+ System.out.println(tracer.p.getText());
+ }
+
+ }
+
+ public class AddFieldAdapter extends ClassVisitor {
+
+ String fieldName;
+ int access;
+ boolean isFieldPresent;
+
+ public AddFieldAdapter(String fieldName, int access, ClassVisitor cv) {
+ super(ASM4, cv);
+ this.cv = cv;
+ this.access = access;
+ this.fieldName = fieldName;
+ }
+
+ @Override
+ public FieldVisitor visitField(int access, String name, String desc,
+ String signature, Object value) {
+ if (name.equals(fieldName)) {
+ isFieldPresent = true;
+ }
+ return cv.visitField(access, name, desc, signature, value);
+ }
+
+ @Override
+ public void visitEnd() {
+ if (!isFieldPresent) {
+ FieldVisitor fv = cv.visitField(access, fieldName, Type.BOOLEAN_TYPE.toString(), null, null);
+ if (fv != null) {
+ fv.visitEnd();
+ }
+ }
+ cv.visitEnd();
+ }
+
+ }
+
+}
diff --git a/asm/src/main/java/com/baeldung/examples/asm/instrumentation/Premain.java b/libraries-bytecode/src/main/java/com/baeldung/asm/instrumentation/Premain.java
similarity index 88%
rename from asm/src/main/java/com/baeldung/examples/asm/instrumentation/Premain.java
rename to libraries-bytecode/src/main/java/com/baeldung/asm/instrumentation/Premain.java
index a3e69b6785..502137bd3d 100644
--- a/asm/src/main/java/com/baeldung/examples/asm/instrumentation/Premain.java
+++ b/libraries-bytecode/src/main/java/com/baeldung/asm/instrumentation/Premain.java
@@ -1,6 +1,6 @@
-package com.baeldung.examples.asm.instrumentation;
+package com.baeldung.asm.instrumentation;
-import com.baeldung.examples.asm.CustomClassWriter;
+import com.baeldung.asm.CustomClassWriter;
import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
import java.lang.instrument.Instrumentation;
diff --git a/libraries-5/src/main/java/com/baeldung/bytebuddy/Bar.java b/libraries-bytecode/src/main/java/com/baeldung/bytebuddy/Bar.java
similarity index 100%
rename from libraries-5/src/main/java/com/baeldung/bytebuddy/Bar.java
rename to libraries-bytecode/src/main/java/com/baeldung/bytebuddy/Bar.java
diff --git a/libraries-5/src/main/java/com/baeldung/bytebuddy/Foo.java b/libraries-bytecode/src/main/java/com/baeldung/bytebuddy/Foo.java
similarity index 100%
rename from libraries-5/src/main/java/com/baeldung/bytebuddy/Foo.java
rename to libraries-bytecode/src/main/java/com/baeldung/bytebuddy/Foo.java
diff --git a/libraries/src/main/java/com/baeldung/javasisst/Point.java b/libraries-bytecode/src/main/java/com/baeldung/javasisst/Point.java
similarity index 100%
rename from libraries/src/main/java/com/baeldung/javasisst/Point.java
rename to libraries-bytecode/src/main/java/com/baeldung/javasisst/Point.java
diff --git a/libraries/src/main/java/com/baeldung/javasisst/ThreeDimensionalPoint.java b/libraries-bytecode/src/main/java/com/baeldung/javasisst/ThreeDimensionalPoint.java
similarity index 100%
rename from libraries/src/main/java/com/baeldung/javasisst/ThreeDimensionalPoint.java
rename to libraries-bytecode/src/main/java/com/baeldung/javasisst/ThreeDimensionalPoint.java
diff --git a/asm/src/main/resources/logback.xml b/libraries-bytecode/src/main/resources/logback.xml
similarity index 100%
rename from asm/src/main/resources/logback.xml
rename to libraries-bytecode/src/main/resources/logback.xml
diff --git a/libraries-5/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java b/libraries-bytecode/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java
similarity index 93%
rename from libraries-5/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java
rename to libraries-bytecode/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java
index 5f721025c3..398e873223 100644
--- a/libraries-5/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java
+++ b/libraries-bytecode/src/test/java/com/baeldung/bytebuddy/ByteBuddyUnitTest.java
@@ -1,5 +1,16 @@
package com.baeldung.bytebuddy;
+import static net.bytebuddy.matcher.ElementMatchers.isDeclaredBy;
+import static net.bytebuddy.matcher.ElementMatchers.named;
+import static net.bytebuddy.matcher.ElementMatchers.returns;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.junit.Test;
+
import net.bytebuddy.ByteBuddy;
import net.bytebuddy.agent.ByteBuddyAgent;
import net.bytebuddy.dynamic.DynamicType;
@@ -8,14 +19,6 @@ import net.bytebuddy.dynamic.loading.ClassReloadingStrategy;
import net.bytebuddy.implementation.FixedValue;
import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.matcher.ElementMatchers;
-import org.junit.Test;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import static net.bytebuddy.matcher.ElementMatchers.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
public class ByteBuddyUnitTest {
diff --git a/libraries/src/test/java/com/baeldung/javassist/JavasisstUnitTest.java b/libraries-bytecode/src/test/java/com/baeldung/javassist/JavasisstUnitTest.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/javassist/JavasisstUnitTest.java
rename to libraries-bytecode/src/test/java/com/baeldung/javassist/JavasisstUnitTest.java
diff --git a/libraries-cli/.gitignore b/libraries-cli/.gitignore
new file mode 100644
index 0000000000..e594daf27a
--- /dev/null
+++ b/libraries-cli/.gitignore
@@ -0,0 +1,9 @@
+*.class
+
+# Folders #
+/gensrc
+/target
+
+# Packaged files #
+*.jar
+/bin/
diff --git a/libraries-cli/README.md b/libraries-cli/README.md
new file mode 100644
index 0000000000..b31bb2853d
--- /dev/null
+++ b/libraries-cli/README.md
@@ -0,0 +1,9 @@
+## Server
+
+This module contains articles about cli libraries.
+
+### Relevant Articles:
+
+- [Create a Java Command Line Program with Picocli](https://www.baeldung.com/java-picocli-create-command-line-program)
+- [Parsing Command-Line Parameters with JCommander](https://www.baeldung.com/jcommander-parsing-command-line-parameters)
+- [Parsing Command-Line Parameters with Airline](https://www.baeldung.com/java-airline)
\ No newline at end of file
diff --git a/libraries-cli/pom.xml b/libraries-cli/pom.xml
new file mode 100644
index 0000000000..d204f3c735
--- /dev/null
+++ b/libraries-cli/pom.xml
@@ -0,0 +1,69 @@
+
+
+ 4.0.0
+ libraries-cli
+ 0.0.1-SNAPSHOT
+ libraries-cli
+ jar
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+ ${spring-boot-starter.version}
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+ org.springframework
+ spring-jdbc
+ ${spring.version}
+
+
+ info.picocli
+ picocli
+ ${picocli.version}
+
+
+ com.beust
+ jcommander
+ ${jcommander.version}
+
+
+ com.github.rvesse
+ airline
+ ${airline.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+
+
+
+
+
+
+
+
+ 4.7.0
+ 1.78
+ 2.7.2
+ 2.7.8
+ 5.3.25
+
+
+
\ No newline at end of file
diff --git a/libraries-3/src/main/java/com/baeldung/airline/CommandLine.java b/libraries-cli/src/main/java/com/baeldung/airline/CommandLine.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/airline/CommandLine.java
rename to libraries-cli/src/main/java/com/baeldung/airline/CommandLine.java
diff --git a/libraries-3/src/main/java/com/baeldung/airline/DatabaseSetupCommand.java b/libraries-cli/src/main/java/com/baeldung/airline/DatabaseSetupCommand.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/airline/DatabaseSetupCommand.java
rename to libraries-cli/src/main/java/com/baeldung/airline/DatabaseSetupCommand.java
diff --git a/libraries-3/src/main/java/com/baeldung/airline/LoggingCommand.java b/libraries-cli/src/main/java/com/baeldung/airline/LoggingCommand.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/airline/LoggingCommand.java
rename to libraries-cli/src/main/java/com/baeldung/airline/LoggingCommand.java
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/helloworld/HelloWorldApp.java b/libraries-cli/src/main/java/com/baeldung/jcommander/helloworld/HelloWorldApp.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/helloworld/HelloWorldApp.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/helloworld/HelloWorldApp.java
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/UsageBasedBillingApp.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/UsageBasedBillingApp.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/UsageBasedBillingApp.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/UsageBasedBillingApp.java
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java
similarity index 99%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java
index ea6b18af53..a28066ac3d 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommand.java
@@ -1,5 +1,10 @@
package com.baeldung.jcommander.usagebilling.cli;
+import static com.baeldung.jcommander.usagebilling.cli.UsageBasedBilling.FETCH_CMD;
+import static com.baeldung.jcommander.usagebilling.service.FetchCurrentChargesService.getDefault;
+
+import java.util.List;
+
import com.baeldung.jcommander.usagebilling.cli.splitter.ColonParameterSplitter;
import com.baeldung.jcommander.usagebilling.cli.validator.UUIDValidator;
import com.baeldung.jcommander.usagebilling.model.CurrentChargesRequest;
@@ -7,13 +12,9 @@ import com.baeldung.jcommander.usagebilling.model.CurrentChargesResponse;
import com.baeldung.jcommander.usagebilling.service.FetchCurrentChargesService;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
+
import lombok.Getter;
-import java.util.List;
-
-import static com.baeldung.jcommander.usagebilling.cli.UsageBasedBilling.*;
-import static com.baeldung.jcommander.usagebilling.service.FetchCurrentChargesService.getDefault;
-
@Parameters(
commandNames = { FETCH_CMD },
commandDescription = "Fetch charges for a customer in the current month, can be itemized or aggregated"
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java
similarity index 99%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java
index d3516b19d3..5c12ac665c 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommand.java
@@ -1,5 +1,11 @@
package com.baeldung.jcommander.usagebilling.cli;
+import static com.baeldung.jcommander.usagebilling.cli.UsageBasedBilling.SUBMIT_CMD;
+import static com.baeldung.jcommander.usagebilling.service.SubmitUsageService.getDefault;
+
+import java.math.BigDecimal;
+import java.time.Instant;
+
import com.baeldung.jcommander.usagebilling.cli.converter.ISO8601TimestampConverter;
import com.baeldung.jcommander.usagebilling.cli.validator.UUIDValidator;
import com.baeldung.jcommander.usagebilling.model.UsageRequest;
@@ -7,14 +13,9 @@ import com.baeldung.jcommander.usagebilling.model.UsageRequest.PricingType;
import com.baeldung.jcommander.usagebilling.service.SubmitUsageService;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
+
import lombok.Getter;
-import java.math.BigDecimal;
-import java.time.Instant;
-
-import static com.baeldung.jcommander.usagebilling.cli.UsageBasedBilling.*;
-import static com.baeldung.jcommander.usagebilling.service.SubmitUsageService.getDefault;
-
@Parameters(
commandNames = { SUBMIT_CMD },
commandDescription = "Submit usage for a given customer and subscription, accepts one usage item"
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/UsageBasedBilling.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/UsageBasedBilling.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/UsageBasedBilling.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/UsageBasedBilling.java
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java
index e54865a811..c173f62684 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/converter/ISO8601TimestampConverter.java
@@ -1,7 +1,6 @@
package com.baeldung.jcommander.usagebilling.cli.converter;
-import com.beust.jcommander.ParameterException;
-import com.beust.jcommander.converters.BaseConverter;
+import static java.lang.String.format;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -9,7 +8,8 @@ import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
-import static java.lang.String.format;
+import com.beust.jcommander.ParameterException;
+import com.beust.jcommander.converters.BaseConverter;
public class ISO8601TimestampConverter extends BaseConverter {
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java
index f24c028123..1e73b54045 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/splitter/ColonParameterSplitter.java
@@ -1,10 +1,10 @@
package com.baeldung.jcommander.usagebilling.cli.splitter;
-import com.beust.jcommander.converters.IParameterSplitter;
+import static java.util.Arrays.asList;
import java.util.List;
-import static java.util.Arrays.asList;
+import com.beust.jcommander.converters.IParameterSplitter;
public class ColonParameterSplitter implements IParameterSplitter {
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java
index a72912f7d0..f8d9f81203 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/cli/validator/UUIDValidator.java
@@ -1,10 +1,10 @@
package com.baeldung.jcommander.usagebilling.cli.validator;
+import java.util.regex.Pattern;
+
import com.beust.jcommander.IParameterValidator;
import com.beust.jcommander.ParameterException;
-import java.util.regex.Pattern;
-
public class UUIDValidator implements IParameterValidator {
private static final String UUID_REGEX =
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java
similarity index 70%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java
index 93dd7a5732..c57805b784 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesRequest.java
@@ -1,9 +1,13 @@
package com.baeldung.jcommander.usagebilling.model;
-import lombok.*;
-
import java.util.List;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
@NoArgsConstructor(access = AccessLevel.PACKAGE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@Builder
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java
similarity index 91%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java
index 865a6e4a3d..46fb86ba78 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/CurrentChargesResponse.java
@@ -1,11 +1,15 @@
package com.baeldung.jcommander.usagebilling.model;
-import lombok.*;
-
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
@NoArgsConstructor(access = AccessLevel.PACKAGE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@Builder
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java
similarity index 89%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java
index 2785474acf..07da8ee4b5 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/model/UsageRequest.java
@@ -1,10 +1,14 @@
package com.baeldung.jcommander.usagebilling.model;
-import lombok.*;
-
import java.math.BigDecimal;
import java.time.Instant;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
@NoArgsConstructor(access = AccessLevel.PACKAGE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@Builder
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java
index 6436d49875..e1c5e25856 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultFetchCurrentChargesService.java
@@ -1,13 +1,5 @@
package com.baeldung.jcommander.usagebilling.service;
-import com.baeldung.jcommander.usagebilling.model.CurrentChargesRequest;
-import com.baeldung.jcommander.usagebilling.model.CurrentChargesResponse;
-import com.baeldung.jcommander.usagebilling.model.CurrentChargesResponse.LineItem;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.UUID;
-
import static java.lang.String.format;
import static java.util.Arrays.asList;
import static java.util.Arrays.fill;
@@ -15,6 +7,14 @@ import static java.util.Collections.emptyList;
import static java.util.concurrent.ThreadLocalRandom.current;
import static java.util.stream.Collectors.toList;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.UUID;
+
+import com.baeldung.jcommander.usagebilling.model.CurrentChargesRequest;
+import com.baeldung.jcommander.usagebilling.model.CurrentChargesResponse;
+import com.baeldung.jcommander.usagebilling.model.CurrentChargesResponse.LineItem;
+
class DefaultFetchCurrentChargesService implements FetchCurrentChargesService {
@Override
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java
index 44ac9e9ed7..fb214c9ab9 100644
--- a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java
+++ b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/DefaultSubmitUsageService.java
@@ -1,9 +1,9 @@
package com.baeldung.jcommander.usagebilling.service;
-import com.baeldung.jcommander.usagebilling.model.UsageRequest;
-
import java.util.UUID;
+import com.baeldung.jcommander.usagebilling.model.UsageRequest;
+
class DefaultSubmitUsageService implements SubmitUsageService {
@Override
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/FetchCurrentChargesService.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/FetchCurrentChargesService.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/FetchCurrentChargesService.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/FetchCurrentChargesService.java
diff --git a/libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/SubmitUsageService.java b/libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/SubmitUsageService.java
similarity index 100%
rename from libraries-3/src/main/java/com/baeldung/jcommander/usagebilling/service/SubmitUsageService.java
rename to libraries-cli/src/main/java/com/baeldung/jcommander/usagebilling/service/SubmitUsageService.java
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/Application.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/Application.java
similarity index 99%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/Application.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/Application.java
index 04af524e45..80c132d637 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/Application.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/Application.java
@@ -1,13 +1,15 @@
package com.baeldung.picocli.git;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
import com.baeldung.picocli.git.commands.programmative.GitCommand;
import com.baeldung.picocli.git.commands.subcommands.GitAddCommand;
import com.baeldung.picocli.git.commands.subcommands.GitCommitCommand;
import com.baeldung.picocli.git.commands.subcommands.GitConfigCommand;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
+
import picocli.CommandLine;
@SpringBootApplication
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java
similarity index 99%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java
index f3c690a3e6..fbd7907eb8 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/declarative/GitCommand.java
@@ -1,14 +1,15 @@
package com.baeldung.picocli.git.commands.declarative;
-import com.baeldung.picocli.git.model.ConfigElement;
-import com.baeldung.picocli.git.commands.subcommands.GitAddCommand;
-import com.baeldung.picocli.git.commands.subcommands.GitCommitCommand;
-import com.baeldung.picocli.git.commands.subcommands.GitConfigCommand;
-import picocli.CommandLine;
-
import static picocli.CommandLine.*;
import static picocli.CommandLine.Command;
+import com.baeldung.picocli.git.commands.subcommands.GitAddCommand;
+import com.baeldung.picocli.git.commands.subcommands.GitCommitCommand;
+import com.baeldung.picocli.git.commands.subcommands.GitConfigCommand;
+import com.baeldung.picocli.git.model.ConfigElement;
+
+import picocli.CommandLine;
+
@Command(
name = "git",
subcommands = {
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java
index 2c3e440b8b..74993a50fe 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/methods/GitCommand.java
@@ -1,9 +1,9 @@
package com.baeldung.picocli.git.commands.methods;
-import picocli.CommandLine;
-
import static picocli.CommandLine.Command;
+import picocli.CommandLine;
+
@Command(name = "git")
public class GitCommand implements Runnable {
public static void main(String[] args) {
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java
similarity index 99%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java
index 81ecfd78be..fabd0e4cc7 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/programmative/GitCommand.java
@@ -1,13 +1,15 @@
package com.baeldung.picocli.git.commands.programmative;
-import com.baeldung.picocli.git.commands.subcommands.GitAddCommand;
-import com.baeldung.picocli.git.commands.subcommands.GitCommitCommand;
-import org.springframework.stereotype.Component;
-import picocli.CommandLine;
-
import static picocli.CommandLine.Command;
import static picocli.CommandLine.RunLast;
+import org.springframework.stereotype.Component;
+
+import com.baeldung.picocli.git.commands.subcommands.GitAddCommand;
+import com.baeldung.picocli.git.commands.subcommands.GitCommitCommand;
+
+import picocli.CommandLine;
+
@Command(name = "git")
@Component
public class GitCommand implements Runnable {
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java
index 803cd8dc7d..f87e55a5cc 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitAddCommand.java
@@ -1,11 +1,11 @@
package com.baeldung.picocli.git.commands.subcommands;
-import org.springframework.stereotype.Component;
+import static picocli.CommandLine.*;
import java.nio.file.Path;
import java.util.List;
-import static picocli.CommandLine.*;
+import org.springframework.stereotype.Component;
@Command(
name = "add"
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java
index df4928983c..f2136f9c39 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitCommitCommand.java
@@ -1,10 +1,10 @@
package com.baeldung.picocli.git.commands.subcommands;
-import org.springframework.stereotype.Component;
-
import static picocli.CommandLine.Command;
import static picocli.CommandLine.Option;
+import org.springframework.stereotype.Component;
+
@Command(
name = "commit"
)
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java
similarity index 99%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java
index 80e14c0121..6ba803140a 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/git/commands/subcommands/GitConfigCommand.java
@@ -1,11 +1,12 @@
package com.baeldung.picocli.git.commands.subcommands;
-import com.baeldung.picocli.git.model.ConfigElement;
-import org.springframework.stereotype.Component;
-
import static picocli.CommandLine.Command;
import static picocli.CommandLine.Parameters;
+import org.springframework.stereotype.Component;
+
+import com.baeldung.picocli.git.model.ConfigElement;
+
@Command(
name = "config"
)
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/git/model/ConfigElement.java b/libraries-cli/src/main/java/com/baeldung/picocli/git/model/ConfigElement.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/picocli/git/model/ConfigElement.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/git/model/ConfigElement.java
diff --git a/libraries-2/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java b/libraries-cli/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java
rename to libraries-cli/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java
index 97a861e2f0..2df8ac0a5b 100644
--- a/libraries-2/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java
+++ b/libraries-cli/src/main/java/com/baeldung/picocli/helloworld/HelloWorldCommand.java
@@ -1,9 +1,9 @@
package com.baeldung.picocli.helloworld;
-import picocli.CommandLine;
-
import static picocli.CommandLine.Command;
+import picocli.CommandLine;
+
@Command(
name = "hello",
description = "Says hello"
diff --git a/libraries-cli/src/main/resources/logback.xml b/libraries-cli/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/libraries-cli/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries-3/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java b/libraries-cli/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java
similarity index 99%
rename from libraries-3/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java
rename to libraries-cli/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java
index 48b3ac2896..c73e8e9d48 100644
--- a/libraries-3/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java
+++ b/libraries-cli/src/test/java/com/baeldung/jcommander/helloworld/HelloWorldAppUnitTest.java
@@ -1,9 +1,10 @@
package com.baeldung.jcommander.helloworld;
-import com.beust.jcommander.JCommander;
+import static org.junit.Assert.assertEquals;
+
import org.junit.Test;
-import static org.junit.Assert.assertEquals;
+import com.beust.jcommander.JCommander;
public class HelloWorldAppUnitTest {
diff --git a/libraries-3/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java b/libraries-cli/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java
similarity index 99%
rename from libraries-3/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java
rename to libraries-cli/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java
index b639661c39..aba4585f6e 100644
--- a/libraries-3/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java
+++ b/libraries-cli/src/test/java/com/baeldung/jcommander/usagebilling/cli/FetchCurrentChargesCommandUnitTest.java
@@ -1,11 +1,12 @@
package com.baeldung.jcommander.usagebilling.cli;
-import com.beust.jcommander.JCommander;
-import org.junit.Test;
-
import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
import static org.junit.Assert.assertThat;
+import org.junit.Test;
+
+import com.beust.jcommander.JCommander;
+
public class FetchCurrentChargesCommandUnitTest {
private JCommander jc = JCommander.newBuilder()
diff --git a/libraries-3/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java b/libraries-cli/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java
similarity index 95%
rename from libraries-3/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java
rename to libraries-cli/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java
index d6ce132053..a4d8273638 100644
--- a/libraries-3/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java
+++ b/libraries-cli/src/test/java/com/baeldung/jcommander/usagebilling/cli/SubmitUsageCommandUnitTest.java
@@ -1,12 +1,11 @@
package com.baeldung.jcommander.usagebilling.cli;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.Test;
+
import com.beust.jcommander.JCommander;
import com.beust.jcommander.ParameterException;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
public class SubmitUsageCommandUnitTest {
diff --git a/libraries-reporting/.gitignore b/libraries-reporting/.gitignore
new file mode 100644
index 0000000000..e594daf27a
--- /dev/null
+++ b/libraries-reporting/.gitignore
@@ -0,0 +1,9 @@
+*.class
+
+# Folders #
+/gensrc
+/target
+
+# Packaged files #
+*.jar
+/bin/
diff --git a/libraries-reporting/README.md b/libraries-reporting/README.md
new file mode 100644
index 0000000000..6d405911ab
--- /dev/null
+++ b/libraries-reporting/README.md
@@ -0,0 +1,8 @@
+## Server
+
+This module contains articles about reporting libraries.
+
+### Relevant Articles:
+
+- [JasperReports with Spring](https://www.baeldung.com/spring-jasper)
+- [Spring Yarg Integration](https://www.baeldung.com/spring-yarg)
\ No newline at end of file
diff --git a/libraries-reporting/pom.xml b/libraries-reporting/pom.xml
new file mode 100644
index 0000000000..526f187af8
--- /dev/null
+++ b/libraries-reporting/pom.xml
@@ -0,0 +1,75 @@
+
+
+ 4.0.0
+ libraries-reporting
+ 0.0.1-SNAPSHOT
+ libraries-reporting
+ jar
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+ ${spring-boot-starter.version}
+
+
+ org.springframework
+ spring-web
+ ${spring.version}
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+ org.springframework
+ spring-jdbc
+ ${spring.version}
+
+
+ javax.servlet
+ servlet-api
+ ${javax.servlet.version}
+
+
+ net.sf.jasperreports
+ jasperreports
+ ${jasperreports.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ com.haulmont.yarg
+ yarg
+ ${yarg.version}
+
+
+ org.olap4j
+ olap4j
+
+
+
+
+
+
+ 2.7.8
+ 5.3.25
+ 2.5
+ 6.20.0
+ 2.0.12
+
+
+
\ No newline at end of file
diff --git a/libraries-2/src/main/java/com/baeldung/jasperreports/Main.java b/libraries-reporting/src/main/java/com/baeldung/jasperreports/Main.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/jasperreports/Main.java
rename to libraries-reporting/src/main/java/com/baeldung/jasperreports/Main.java
diff --git a/libraries-2/src/main/java/com/baeldung/jasperreports/SimpleReportExporter.java b/libraries-reporting/src/main/java/com/baeldung/jasperreports/SimpleReportExporter.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/jasperreports/SimpleReportExporter.java
rename to libraries-reporting/src/main/java/com/baeldung/jasperreports/SimpleReportExporter.java
diff --git a/libraries-2/src/main/java/com/baeldung/jasperreports/SimpleReportFiller.java b/libraries-reporting/src/main/java/com/baeldung/jasperreports/SimpleReportFiller.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/jasperreports/SimpleReportFiller.java
rename to libraries-reporting/src/main/java/com/baeldung/jasperreports/SimpleReportFiller.java
diff --git a/libraries-2/src/main/java/com/baeldung/jasperreports/config/JasperRerportsSimpleConfig.java b/libraries-reporting/src/main/java/com/baeldung/jasperreports/config/JasperRerportsSimpleConfig.java
similarity index 100%
rename from libraries-2/src/main/java/com/baeldung/jasperreports/config/JasperRerportsSimpleConfig.java
rename to libraries-reporting/src/main/java/com/baeldung/jasperreports/config/JasperRerportsSimpleConfig.java
diff --git a/libraries-4/src/main/java/com/baeldung/yarg/DocumentController.java b/libraries-reporting/src/main/java/com/baeldung/yarg/DocumentController.java
similarity index 99%
rename from libraries-4/src/main/java/com/baeldung/yarg/DocumentController.java
rename to libraries-reporting/src/main/java/com/baeldung/yarg/DocumentController.java
index ff0d452108..9ae9b61ad1 100644
--- a/libraries-4/src/main/java/com/baeldung/yarg/DocumentController.java
+++ b/libraries-reporting/src/main/java/com/baeldung/yarg/DocumentController.java
@@ -5,6 +5,16 @@
*/
package com.baeldung.yarg;
+import java.io.File;
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.io.FileUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
import com.haulmont.yarg.formatters.factory.DefaultFormatterFactory;
import com.haulmont.yarg.loaders.factory.DefaultLoaderFactory;
import com.haulmont.yarg.loaders.impl.JsonDataLoader;
@@ -16,13 +26,6 @@ import com.haulmont.yarg.structure.ReportOutputType;
import com.haulmont.yarg.structure.impl.BandBuilder;
import com.haulmont.yarg.structure.impl.ReportBuilder;
import com.haulmont.yarg.structure.impl.ReportTemplateBuilder;
-import java.io.File;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.io.FileUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
@RestController
public class DocumentController {
diff --git a/libraries-2/src/main/resources/employee-schema.sql b/libraries-reporting/src/main/resources/employee-schema.sql
similarity index 100%
rename from libraries-2/src/main/resources/employee-schema.sql
rename to libraries-reporting/src/main/resources/employee-schema.sql
diff --git a/libraries-2/src/main/resources/employeeEmailReport.jrxml b/libraries-reporting/src/main/resources/employeeEmailReport.jrxml
similarity index 100%
rename from libraries-2/src/main/resources/employeeEmailReport.jrxml
rename to libraries-reporting/src/main/resources/employeeEmailReport.jrxml
diff --git a/libraries-2/src/main/resources/employeeReport.jrxml b/libraries-reporting/src/main/resources/employeeReport.jrxml
similarity index 100%
rename from libraries-2/src/main/resources/employeeReport.jrxml
rename to libraries-reporting/src/main/resources/employeeReport.jrxml
diff --git a/libraries-reporting/src/main/resources/logback.xml b/libraries-reporting/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/libraries-reporting/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries-stream/.gitignore b/libraries-stream/.gitignore
new file mode 100644
index 0000000000..e594daf27a
--- /dev/null
+++ b/libraries-stream/.gitignore
@@ -0,0 +1,9 @@
+*.class
+
+# Folders #
+/gensrc
+/target
+
+# Packaged files #
+*.jar
+/bin/
diff --git a/libraries-stream/README.md b/libraries-stream/README.md
new file mode 100644
index 0000000000..6aa5a28cd9
--- /dev/null
+++ b/libraries-stream/README.md
@@ -0,0 +1,11 @@
+## Server
+
+This module contains articles about stream libraries.
+
+### Relevant Articles:
+
+- [Merging Streams in Java](https://www.baeldung.com/java-merge-streams)
+- [Guide to Java Parallel Collectors Library](https://www.baeldung.com/java-parallel-collectors)
+- [DistinctBy in the Java Stream API](https://www.baeldung.com/java-streams-distinct-by)
+- [Introduction to StreamEx](https://www.baeldung.com/streamex)
+- [Introduction to Protonpack](https://www.baeldung.com/java-protonpack)
\ No newline at end of file
diff --git a/libraries-stream/pom.xml b/libraries-stream/pom.xml
new file mode 100644
index 0000000000..8f00be3dab
--- /dev/null
+++ b/libraries-stream/pom.xml
@@ -0,0 +1,59 @@
+
+
+ 4.0.0
+ libraries-stream
+ 0.0.1-SNAPSHOT
+ libraries-stream
+ jar
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.jooq
+ jool
+ ${jool.version}
+
+
+ com.pivovarit
+ parallel-collectors
+ ${parallel-collectors.version}
+
+
+ io.vavr
+ vavr
+ ${vavr.version}
+
+
+ org.eclipse.collections
+ eclipse-collections
+ ${eclipse-collections.version}
+
+
+ one.util
+ streamex
+ ${streamex.version}
+
+
+ com.codepoetics
+ protonpack
+ ${protonpack.version}
+
+
+
+
+ 0.9.12
+ 1.1.0
+ 0.9.0
+ 8.2.0
+ 0.8.1
+ 1.15
+
+
+
\ No newline at end of file
diff --git a/libraries-4/src/main/java/com/baeldung/distinct/DistinctWithJavaFunction.java b/libraries-stream/src/main/java/com/baeldung/distinct/DistinctWithJavaFunction.java
similarity index 100%
rename from libraries-4/src/main/java/com/baeldung/distinct/DistinctWithJavaFunction.java
rename to libraries-stream/src/main/java/com/baeldung/distinct/DistinctWithJavaFunction.java
diff --git a/libraries-4/src/main/java/com/baeldung/distinct/Person.java b/libraries-stream/src/main/java/com/baeldung/distinct/Person.java
similarity index 100%
rename from libraries-4/src/main/java/com/baeldung/distinct/Person.java
rename to libraries-stream/src/main/java/com/baeldung/distinct/Person.java
diff --git a/libraries-5/src/main/java/com/baeldung/streamex/Role.java b/libraries-stream/src/main/java/com/baeldung/streamex/Role.java
similarity index 100%
rename from libraries-5/src/main/java/com/baeldung/streamex/Role.java
rename to libraries-stream/src/main/java/com/baeldung/streamex/Role.java
diff --git a/libraries-5/src/main/java/com/baeldung/streamex/StreamEX.java b/libraries-stream/src/main/java/com/baeldung/streamex/StreamEX.java
similarity index 99%
rename from libraries-5/src/main/java/com/baeldung/streamex/StreamEX.java
rename to libraries-stream/src/main/java/com/baeldung/streamex/StreamEX.java
index 56a3860f05..989b65bef6 100644
--- a/libraries-5/src/main/java/com/baeldung/streamex/StreamEX.java
+++ b/libraries-stream/src/main/java/com/baeldung/streamex/StreamEX.java
@@ -7,6 +7,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
+
import one.util.streamex.DoubleStreamEx;
import one.util.streamex.EntryStream;
import one.util.streamex.IntStreamEx;
diff --git a/libraries-5/src/main/java/com/baeldung/streamex/User.java b/libraries-stream/src/main/java/com/baeldung/streamex/User.java
similarity index 100%
rename from libraries-5/src/main/java/com/baeldung/streamex/User.java
rename to libraries-stream/src/main/java/com/baeldung/streamex/User.java
diff --git a/libraries-stream/src/main/resources/logback.xml b/libraries-stream/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/libraries-stream/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries-4/src/test/java/com/baeldung/distinct/DistinctWithEclipseCollectionsUnitTest.java b/libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithEclipseCollectionsUnitTest.java
similarity index 100%
rename from libraries-4/src/test/java/com/baeldung/distinct/DistinctWithEclipseCollectionsUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithEclipseCollectionsUnitTest.java
diff --git a/libraries-4/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java b/libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java
similarity index 100%
rename from libraries-4/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java
index 936fd3e839..196c6603dd 100644
--- a/libraries-4/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java
+++ b/libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithJavaFunctionUnitTest.java
@@ -1,7 +1,7 @@
package com.baeldung.distinct;
-import static org.junit.Assert.assertTrue;
import static com.baeldung.distinct.DistinctWithJavaFunction.distinctByKey;
+import static org.junit.Assert.assertTrue;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/libraries-4/src/test/java/com/baeldung/distinct/DistinctWithStreamexUnitTest.java b/libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithStreamexUnitTest.java
similarity index 100%
rename from libraries-4/src/test/java/com/baeldung/distinct/DistinctWithStreamexUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithStreamexUnitTest.java
diff --git a/libraries-4/src/test/java/com/baeldung/distinct/DistinctWithVavrUnitTest.java b/libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithVavrUnitTest.java
similarity index 100%
rename from libraries-4/src/test/java/com/baeldung/distinct/DistinctWithVavrUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/distinct/DistinctWithVavrUnitTest.java
diff --git a/libraries-4/src/test/java/com/baeldung/distinct/PersonDataGenerator.java b/libraries-stream/src/test/java/com/baeldung/distinct/PersonDataGenerator.java
similarity index 100%
rename from libraries-4/src/test/java/com/baeldung/distinct/PersonDataGenerator.java
rename to libraries-stream/src/test/java/com/baeldung/distinct/PersonDataGenerator.java
diff --git a/libraries-2/src/test/java/com/baeldung/parallel_collectors/ParallelCollectorsUnitTest.java b/libraries-stream/src/test/java/com/baeldung/parallel_collectors/ParallelCollectorsUnitTest.java
similarity index 100%
rename from libraries-2/src/test/java/com/baeldung/parallel_collectors/ParallelCollectorsUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/parallel_collectors/ParallelCollectorsUnitTest.java
diff --git a/libraries-6/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java b/libraries-stream/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java
similarity index 99%
rename from libraries-6/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java
index c28248e52c..ed5fec254d 100644
--- a/libraries-6/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java
+++ b/libraries-stream/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java
@@ -1,11 +1,9 @@
package com.baeldung.protonpack;
-import com.codepoetics.protonpack.Indexed;
-import com.codepoetics.protonpack.StreamUtils;
-import com.codepoetics.protonpack.collectors.CollectorUtils;
-import com.codepoetics.protonpack.collectors.NonUniqueValueException;
-import com.codepoetics.protonpack.selectors.Selectors;
-import org.junit.Test;
+import static java.util.Arrays.asList;
+import static java.util.Arrays.stream;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import java.util.List;
import java.util.Optional;
@@ -13,10 +11,13 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static java.util.Arrays.asList;
-import static java.util.Arrays.stream;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import org.junit.Test;
+
+import com.codepoetics.protonpack.Indexed;
+import com.codepoetics.protonpack.StreamUtils;
+import com.codepoetics.protonpack.collectors.CollectorUtils;
+import com.codepoetics.protonpack.collectors.NonUniqueValueException;
+import com.codepoetics.protonpack.selectors.Selectors;
public class ProtonpackUnitTest {
@Test
diff --git a/libraries/src/test/java/com/baeldung/stream/JoolMergeStreamsUnitTest.java b/libraries-stream/src/test/java/com/baeldung/stream/JoolMergeStreamsUnitTest.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/stream/JoolMergeStreamsUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/stream/JoolMergeStreamsUnitTest.java
diff --git a/libraries/src/test/java/com/baeldung/stream/MergeStreamsUnitTest.java b/libraries-stream/src/test/java/com/baeldung/stream/MergeStreamsUnitTest.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/stream/MergeStreamsUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/stream/MergeStreamsUnitTest.java
diff --git a/libraries-5/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java b/libraries-stream/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java
similarity index 99%
rename from libraries-5/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java
rename to libraries-stream/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java
index b267eaea9b..de474b825c 100644
--- a/libraries-5/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java
+++ b/libraries-stream/src/test/java/com/baeldung/streamex/StreamExMergeStreamsUnitTest.java
@@ -1,13 +1,14 @@
package com.baeldung.streamex;
-import one.util.streamex.StreamEx;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static org.junit.Assert.assertEquals;
+import org.junit.Test;
+
+import one.util.streamex.StreamEx;
public class StreamExMergeStreamsUnitTest {
diff --git a/libraries/README.md b/libraries/README.md
index 33c40ea67c..a8aa34973b 100644
--- a/libraries/README.md
+++ b/libraries/README.md
@@ -10,9 +10,7 @@ Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-m
### Relevant articles
- [Introduction to Javatuples](https://www.baeldung.com/java-tuples)
-- [Introduction to Javassist](https://www.baeldung.com/javassist)
- [Intro to JaVers](https://www.baeldung.com/javers)
-- [Merging Streams in Java](https://www.baeldung.com/java-merge-streams)
- [Introduction to Quartz](https://www.baeldung.com/quartz)
- [How to Warm Up the JVM](https://www.baeldung.com/java-jvm-warmup)
- [Software Transactional Memory in Java Using Multiverse](https://www.baeldung.com/java-multiverse-stm)
diff --git a/libraries/pom.xml b/libraries/pom.xml
index 07a4853728..756f455f4b 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -40,11 +40,6 @@
javatuples
${javatuples.version}
-
- org.javassist
- javassist
- ${javaassist.version}
-
org.javers
javers-core
@@ -120,11 +115,6 @@
quartz
${quartz.version}
-
- org.jooq
- jool
- ${jool.version}
-
org.openjdk.jmh
jmh-core
@@ -289,8 +279,6 @@
4.3.8.RELEASE
3.0.3
2.3.0
- 3.29.2-GA
- 0.9.12
3.6
2.6
diff --git a/pom.xml b/pom.xml
index 0e8acff1d1..48da93fea4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -709,7 +709,6 @@
apache-tika
apache-velocity
asciidoctor
- asm
atomix
aws-modules
azure
@@ -777,6 +776,8 @@
libraries-apache-commons-collections
libraries-apache-commons-io
libraries-apache-commons
+ libraries-bytecode
+ libraries-cli
libraries-concurrency
libraries-data-2
libraries-data-db
@@ -788,10 +789,12 @@
libraries-io
libraries-llms
libraries-primitive
+ libraries-reporting
libraries-rpc
libraries-security
libraries-server-2
libraries-server
+ libraries-stream
libraries-testing
libraries-transform
libraries
@@ -956,7 +959,6 @@
apache-tika
apache-velocity
asciidoctor
- asm
atomix
aws-modules
azure
@@ -1024,6 +1026,8 @@
libraries-apache-commons-collections
libraries-apache-commons-io
libraries-apache-commons
+ libraries-bytecode
+ libraries-cli
libraries-concurrency
libraries-data-2
libraries-data-db
@@ -1035,10 +1039,12 @@
libraries-io
libraries-llms
libraries-primitive
+ libraries-reporting
libraries-rpc
libraries-security
libraries-server-2
libraries-server
+ libraries-stream
libraries-testing
libraries-transform
libraries