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