From 421bfc694f5ccd3bd7ecadc3e31c43acfcf5895a Mon Sep 17 00:00:00 2001 From: Jordan Simpson Date: Mon, 31 Aug 2020 13:42:50 -0500 Subject: [PATCH 01/25] Added code examples for BAEL-4534 --- .../CheckClassExistenceUnitTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java diff --git a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java new file mode 100644 index 0000000000..10402af970 --- /dev/null +++ b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java @@ -0,0 +1,33 @@ +package com.baeldung.checkclassexistence; + +import org.junit.Test; + +public class CheckClassExistenceUnitTest { + + public static class InitializingClass { + static { + if (true) //enable throwing of an exception in a static initialization block + throw new RuntimeException(); + } + } + + @Test(expected = ClassNotFoundException.class) //thrown when class does not exist + public void givenNonExistingClass_whenUsingForName_classNotFound() throws ClassNotFoundException { + Class.forName("class.that.does.not.exist"); + } + + @Test + public void givenExistingClass_whenUsingForName_noException() throws ClassNotFoundException { + Class.forName("java.lang.String"); + } + + @Test(expected = ExceptionInInitializerError.class) //thrown when exception occurs inside of a static initialization block + public void givenInitializingClass_whenUsingForName_initializationError() throws ClassNotFoundException { + Class.forName("com.baeldung.checkclassexistence.CheckClassExistenceUnitTest$InitializingClass"); + } + + @Test + public void givenInitializingClass_whenUsingForNameWithoutInitialization_noException() throws ClassNotFoundException { + Class.forName("com.baeldung.checkclassexistence.CheckClassExistenceUnitTest$InitializingClass", false, getClass().getClassLoader()); + } +} From f4d7eeaa038e81cab12dbd9ed66d496203c3fc2c Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Mon, 31 Aug 2020 22:53:30 +0300 Subject: [PATCH 02/25] BAEL-4371: Initial commit --- gradle-5/cmd-line-args/build.gradle | 16 ++++++++++++++++ gradle-5/settings.gradle | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 gradle-5/cmd-line-args/build.gradle diff --git a/gradle-5/cmd-line-args/build.gradle b/gradle-5/cmd-line-args/build.gradle new file mode 100644 index 0000000000..aed57d775b --- /dev/null +++ b/gradle-5/cmd-line-args/build.gradle @@ -0,0 +1,16 @@ +apply plugin: "java" +description = "Gradle Command Line Arguments examples" + + + +task propertyTypes(){ + doLast{ + if (project.hasProperty('input')){ + println "This is my property ["+ project.getProperty('input')+"]" + } else { + println "No property was passed" + } + + } +} + diff --git a/gradle-5/settings.gradle b/gradle-5/settings.gradle index 5384d071e7..ede73daf0a 100644 --- a/gradle-5/settings.gradle +++ b/gradle-5/settings.gradle @@ -1,4 +1,5 @@ rootProject.name='gradle-5-articles' include 'java-exec' include 'unused-dependencies' -include 'source-sets' \ No newline at end of file +include 'source-sets' +include 'cmd-line-args' \ No newline at end of file From ff59dacc1c518620c98f36e8081aaf623d5f57b6 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Tue, 1 Sep 2020 18:52:06 +0300 Subject: [PATCH 03/25] BAEL-4371: Finished code samples --- gradle-5/cmd-line-args/build.gradle | 40 ++++++++++++++++--- .../main/java/com/baeldung/cmd/MainClass.java | 10 +++++ 2 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 gradle-5/cmd-line-args/src/main/java/com/baeldung/cmd/MainClass.java diff --git a/gradle-5/cmd-line-args/build.gradle b/gradle-5/cmd-line-args/build.gradle index aed57d775b..57c48e36c3 100644 --- a/gradle-5/cmd-line-args/build.gradle +++ b/gradle-5/cmd-line-args/build.gradle @@ -1,16 +1,46 @@ apply plugin: "java" +apply plugin: "application" description = "Gradle Command Line Arguments examples" +ext.javaMainClass = "com.baeldung.cmd.MainClass" +application { + mainClassName = javaMainClass +} task propertyTypes(){ doLast{ - if (project.hasProperty('input')){ - println "This is my property ["+ project.getProperty('input')+"]" - } else { - println "No property was passed" + project.getProperties().values().each { + println "Project property ["+it+"]" + } + + System.getProperties().each { + println "System property ["+it+"]" } - } } +if (project.hasProperty("args")) { + ext.cmdargs = project.getProperty("args") + ext.cmdargsarray = cmdargs.split() +} else { + ext.cmdargs = "" +} + +task cmdLineJavaExec(type: JavaExec) { + group = "Execution" + description = "Run the main class with JavaExecTask" + classpath = sourceSets.main.runtimeClasspath + main = javaMainClass + args cmdargsarray +} + +ext.cmdarray = ["java", "-classpath", sourceSets.main.runtimeClasspath.getAsPath(), javaMainClass] +cmdarray = (cmdarray << cmdargsarray).flatten() + +task cmdLineExec(type: Exec) { + dependsOn build + group = "Execution" + description = "Run the main class with ExecTask" + commandLine cmdarray +} diff --git a/gradle-5/cmd-line-args/src/main/java/com/baeldung/cmd/MainClass.java b/gradle-5/cmd-line-args/src/main/java/com/baeldung/cmd/MainClass.java new file mode 100644 index 0000000000..f00aa07d72 --- /dev/null +++ b/gradle-5/cmd-line-args/src/main/java/com/baeldung/cmd/MainClass.java @@ -0,0 +1,10 @@ +package com.baeldung.cmd; + +public class MainClass { + public static void main(String[] args) { + System.out.println("Gradle command line arguments example"); + for (String arg : args) { + System.out.println("Got argument [" + arg + "]"); + } + } +} From 18a08cedd9b5e1dcb608063086751c6024bcd3b2 Mon Sep 17 00:00:00 2001 From: Jordan Simpson Date: Wed, 2 Sep 2020 09:00:42 -0500 Subject: [PATCH 04/25] Added braces to the if block --- .../checkclassexistence/CheckClassExistenceUnitTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java index 10402af970..2e500b390f 100644 --- a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java +++ b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java @@ -6,8 +6,9 @@ public class CheckClassExistenceUnitTest { public static class InitializingClass { static { - if (true) //enable throwing of an exception in a static initialization block + if (true) { //enable throwing of an exception in a static initialization block throw new RuntimeException(); + } } } From 645431763d37203c01b252fe9ebeea49d67bf4ea Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Thu, 3 Sep 2020 15:46:48 +0300 Subject: [PATCH 05/25] BAEL-4371: Simplified examples --- gradle-5/cmd-line-args/build.gradle | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/gradle-5/cmd-line-args/build.gradle b/gradle-5/cmd-line-args/build.gradle index 57c48e36c3..5399db4815 100644 --- a/gradle-5/cmd-line-args/build.gradle +++ b/gradle-5/cmd-line-args/build.gradle @@ -10,21 +10,17 @@ application { task propertyTypes(){ doLast{ - project.getProperties().values().each { - println "Project property ["+it+"]" - } - - System.getProperties().each { - println "System property ["+it+"]" + if (project.hasProperty("args")) { + println "Our input argument with project property ["+project.getProperty("args")+"]" } + println "Our input argument with system property ["+System.getProperty("args")+"]" } } if (project.hasProperty("args")) { ext.cmdargs = project.getProperty("args") - ext.cmdargsarray = cmdargs.split() } else { - ext.cmdargs = "" + ext.cmdargs = "ls" } task cmdLineJavaExec(type: JavaExec) { @@ -32,15 +28,11 @@ task cmdLineJavaExec(type: JavaExec) { description = "Run the main class with JavaExecTask" classpath = sourceSets.main.runtimeClasspath main = javaMainClass - args cmdargsarray + args cmdargs.split() } -ext.cmdarray = ["java", "-classpath", sourceSets.main.runtimeClasspath.getAsPath(), javaMainClass] -cmdarray = (cmdarray << cmdargsarray).flatten() - task cmdLineExec(type: Exec) { - dependsOn build group = "Execution" - description = "Run the main class with ExecTask" - commandLine cmdarray + description = "Run the an external program with ExecTask" + commandLine cmdargs.split() } From b43b20aa9bee13a70c623129cd456eb6409c625c Mon Sep 17 00:00:00 2001 From: Jordan Simpson Date: Wed, 9 Sep 2020 08:18:38 -0500 Subject: [PATCH 06/25] Update core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java Co-authored-by: KevinGilmore --- .../checkclassexistence/CheckClassExistenceUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java index 2e500b390f..04c1ad0115 100644 --- a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java +++ b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java @@ -13,7 +13,7 @@ public class CheckClassExistenceUnitTest { } @Test(expected = ClassNotFoundException.class) //thrown when class does not exist - public void givenNonExistingClass_whenUsingForName_classNotFound() throws ClassNotFoundException { + public void givenNonExistingClass_whenUsingForName_thenClassNotFound() throws ClassNotFoundException { Class.forName("class.that.does.not.exist"); } From 47c6aaf7cd195b2227ac8b9a714acacf74b38fd0 Mon Sep 17 00:00:00 2001 From: Jordan Simpson Date: Wed, 9 Sep 2020 08:18:46 -0500 Subject: [PATCH 07/25] Update core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java Co-authored-by: KevinGilmore --- .../checkclassexistence/CheckClassExistenceUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java index 04c1ad0115..aef7e686b5 100644 --- a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java +++ b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java @@ -18,7 +18,7 @@ public class CheckClassExistenceUnitTest { } @Test - public void givenExistingClass_whenUsingForName_noException() throws ClassNotFoundException { + public void givenExistingClass_whenUsingForName_thenNoException() throws ClassNotFoundException { Class.forName("java.lang.String"); } From 0513be3730e5fd3a5a95f4530a32faf8c7724da2 Mon Sep 17 00:00:00 2001 From: Jordan Simpson Date: Wed, 9 Sep 2020 08:18:51 -0500 Subject: [PATCH 08/25] Update core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java Co-authored-by: KevinGilmore --- .../checkclassexistence/CheckClassExistenceUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java index aef7e686b5..cf455a6e35 100644 --- a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java +++ b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java @@ -23,7 +23,7 @@ public class CheckClassExistenceUnitTest { } @Test(expected = ExceptionInInitializerError.class) //thrown when exception occurs inside of a static initialization block - public void givenInitializingClass_whenUsingForName_initializationError() throws ClassNotFoundException { + public void givenInitializingClass_whenUsingForName_thenInitializationError() throws ClassNotFoundException { Class.forName("com.baeldung.checkclassexistence.CheckClassExistenceUnitTest$InitializingClass"); } From 3ac474edcf2a2769ef863f1969756965c8682424 Mon Sep 17 00:00:00 2001 From: Jordan Simpson Date: Wed, 9 Sep 2020 08:18:57 -0500 Subject: [PATCH 09/25] Update core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java Co-authored-by: KevinGilmore --- .../checkclassexistence/CheckClassExistenceUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java index cf455a6e35..b565f9de31 100644 --- a/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java +++ b/core-java-modules/core-java-lang-3/src/test/java/com/baeldung/checkclassexistence/CheckClassExistenceUnitTest.java @@ -28,7 +28,7 @@ public class CheckClassExistenceUnitTest { } @Test - public void givenInitializingClass_whenUsingForNameWithoutInitialization_noException() throws ClassNotFoundException { + public void givenInitializingClass_whenUsingForNameWithoutInitialization_thenNoException() throws ClassNotFoundException { Class.forName("com.baeldung.checkclassexistence.CheckClassExistenceUnitTest$InitializingClass", false, getClass().getClassLoader()); } } From 2b91263b685d7ef86a560c0370d105d07767d619 Mon Sep 17 00:00:00 2001 From: fdpro Date: Thu, 10 Sep 2020 12:22:23 +0200 Subject: [PATCH 10/25] [JAVA-1662] Migrated maven-surefire-plugin version to 2.22.2 --- logging-modules/flogger/pom.xml | 1 + logging-modules/log-mdc/pom.xml | 11 ++++++++++- logging-modules/log4j/pom.xml | 4 ++-- logging-modules/log4j2/pom.xml | 4 ++-- logging-modules/logback/pom.xml | 4 ++-- logging-modules/pom.xml | 11 ++++++++++- 6 files changed, 27 insertions(+), 8 deletions(-) diff --git a/logging-modules/flogger/pom.xml b/logging-modules/flogger/pom.xml index f553a4a961..e9189c8460 100644 --- a/logging-modules/flogger/pom.xml +++ b/logging-modules/flogger/pom.xml @@ -9,6 +9,7 @@ com.baeldung logging-modules 1.0.0-SNAPSHOT + ../pom.xml diff --git a/logging-modules/log-mdc/pom.xml b/logging-modules/log-mdc/pom.xml index bc4800ea37..bc018690f9 100644 --- a/logging-modules/log-mdc/pom.xml +++ b/logging-modules/log-mdc/pom.xml @@ -79,6 +79,8 @@ + logging-service + @@ -93,7 +95,14 @@ - logging-service + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + diff --git a/logging-modules/log4j/pom.xml b/logging-modules/log4j/pom.xml index cc0996a45a..15cd2d530f 100644 --- a/logging-modules/log4j/pom.xml +++ b/logging-modules/log4j/pom.xml @@ -9,9 +9,9 @@ com.baeldung - parent-modules + logging-modules 1.0.0-SNAPSHOT - ../../ + ../pom.xml diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml index 03a4fd8ab0..e09cbd5d33 100644 --- a/logging-modules/log4j2/pom.xml +++ b/logging-modules/log4j2/pom.xml @@ -7,9 +7,9 @@ com.baeldung - parent-modules + logging-modules 1.0.0-SNAPSHOT - ../../ + ../pom.xml diff --git a/logging-modules/logback/pom.xml b/logging-modules/logback/pom.xml index ee430949df..9f5a3ef294 100644 --- a/logging-modules/logback/pom.xml +++ b/logging-modules/logback/pom.xml @@ -9,9 +9,9 @@ com.baeldung - parent-modules + logging-modules 1.0.0-SNAPSHOT - ../../ + ../pom.xml diff --git a/logging-modules/pom.xml b/logging-modules/pom.xml index b9a1fe77c6..ad78fd20b9 100644 --- a/logging-modules/pom.xml +++ b/logging-modules/pom.xml @@ -10,7 +10,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT - .. + ../pom.xml @@ -21,4 +21,13 @@ flogger + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + From 650c8438b4e67a86fea407affc86123f3aa87180 Mon Sep 17 00:00:00 2001 From: fdpro Date: Thu, 10 Sep 2020 12:26:56 +0200 Subject: [PATCH 11/25] [JAVA-1662] Upgraded junit-jupiter version to 5.6.2 --- logging-modules/log-mdc/pom.xml | 3 ++- logging-modules/pom.xml | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/logging-modules/log-mdc/pom.xml b/logging-modules/log-mdc/pom.xml index bc018690f9..5e2155fde9 100644 --- a/logging-modules/log-mdc/pom.xml +++ b/logging-modules/log-mdc/pom.xml @@ -80,7 +80,7 @@ logging-service - + @@ -109,6 +109,7 @@ 2.7 3.3.6 3.3.0.Final + 5.6.2 diff --git a/logging-modules/pom.xml b/logging-modules/pom.xml index ad78fd20b9..b5354c7c23 100644 --- a/logging-modules/pom.xml +++ b/logging-modules/pom.xml @@ -30,4 +30,8 @@ + + + 5.6.2 + From 9b16715d0227984a9dce2913f435c3325a5fd774 Mon Sep 17 00:00:00 2001 From: sampadawagde Date: Thu, 10 Sep 2020 22:43:55 +0530 Subject: [PATCH 12/25] JAVA-2412: Update "Spring Template Engine" article --- spring-mvc-basics-2/pom.xml | 4 ++-- .../baeldung/spring/configuration/EmailConfiguration.java | 4 ++-- .../spring/configuration/ThymeleafConfiguration.java | 6 +++--- .../java/com/baeldung/spring/mail/EmailServiceImpl.java | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/spring-mvc-basics-2/pom.xml b/spring-mvc-basics-2/pom.xml index 026ddf8e72..6bcb1e90e5 100644 --- a/spring-mvc-basics-2/pom.xml +++ b/spring-mvc-basics-2/pom.xml @@ -69,7 +69,7 @@ org.thymeleaf - thymeleaf-spring4 + thymeleaf-spring5 ${org.thymeleaf-version} @@ -164,7 +164,7 @@ 6.0.10.Final enter-location-of-server 1.3.2 - 3.0.7.RELEASE + 3.0.11.RELEASE 2.4.12 2.3.27-incubating 1.2.5 diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/EmailConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/EmailConfiguration.java index 1bbbc51304..4bd692f609 100644 --- a/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/EmailConfiguration.java +++ b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/EmailConfiguration.java @@ -11,8 +11,8 @@ import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; -import org.thymeleaf.spring4.SpringTemplateEngine; -import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver; +import org.thymeleaf.spring5.SpringTemplateEngine; +import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; @Configuration @ComponentScan(basePackages = { "com.baeldung.spring.mail" }) diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java index 257dbc718a..2f025c1ad2 100644 --- a/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java +++ b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java @@ -4,9 +4,9 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.thymeleaf.spring4.SpringTemplateEngine; -import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver; -import org.thymeleaf.spring4.view.ThymeleafViewResolver; +import org.thymeleaf.spring5.SpringTemplateEngine; +import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; +import org.thymeleaf.spring5.view.ThymeleafViewResolver; @Configuration @EnableWebMvc diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java index cbcb8f4e34..1eb7a5f8b4 100644 --- a/spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java +++ b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java @@ -19,7 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import org.thymeleaf.context.Context; -import org.thymeleaf.spring4.SpringTemplateEngine; +import org.thymeleaf.spring5.SpringTemplateEngine; import freemarker.template.Template; import freemarker.template.TemplateException; From 2b658eae839e68df21617f3d8015c2246372af24 Mon Sep 17 00:00:00 2001 From: Sebastian Luna Date: Thu, 10 Sep 2020 19:55:56 -0500 Subject: [PATCH 13/25] BAEL-4387 Add AssertJ assertions --- java-collections-conversions-2/pom.xml | 6 ++++++ .../ArrayToListConversionUnitTest.java | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/java-collections-conversions-2/pom.xml b/java-collections-conversions-2/pom.xml index 0f7cdadeb2..23f20276a3 100644 --- a/java-collections-conversions-2/pom.xml +++ b/java-collections-conversions-2/pom.xml @@ -15,6 +15,12 @@ + + org.assertj + assertj-core + 3.17.2 + test + org.apache.commons commons-lang3 diff --git a/java-collections-conversions-2/src/test/java/com/baeldung/arrayconversion/ArrayToListConversionUnitTest.java b/java-collections-conversions-2/src/test/java/com/baeldung/arrayconversion/ArrayToListConversionUnitTest.java index 80e7b93b0c..565c938d48 100644 --- a/java-collections-conversions-2/src/test/java/com/baeldung/arrayconversion/ArrayToListConversionUnitTest.java +++ b/java-collections-conversions-2/src/test/java/com/baeldung/arrayconversion/ArrayToListConversionUnitTest.java @@ -1,5 +1,6 @@ package com.baeldung.arrayconversion; +import org.assertj.core.api.ListAssert; import org.hamcrest.CoreMatchers; import org.junit.Test; @@ -7,8 +8,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertArrayEquals; +import static org.assertj.core.api.Assertions.assertThat; public class ArrayToListConversionUnitTest { @@ -17,8 +17,8 @@ public class ArrayToListConversionUnitTest { String[] stringArray = new String[] { "A", "B", "C", "D" }; List stringList = Arrays.asList(stringArray); stringList.set(0, "E"); - assertThat(stringList, CoreMatchers.hasItems("E", "B", "C", "D")); - assertArrayEquals(stringArray, new String[] { "E", "B", "C", "D" }); + assertThat(stringList).containsExactly("E", "B", "C", "D"); + assertThat(stringArray).containsExactly("E", "B", "C", "D"); stringList.add("F"); } @@ -27,9 +27,9 @@ public class ArrayToListConversionUnitTest { String[] stringArray = new String[] { "A", "B", "C", "D" }; List stringList = new ArrayList<>(Arrays.asList(stringArray)); stringList.set(0, "E"); - assertThat(stringList, CoreMatchers.hasItems("E", "B", "C", "D")); - assertArrayEquals(stringArray, new String[] { "A", "B", "C", "D" }); + assertThat(stringList).containsExactly("E", "B", "C", "D"); + assertThat(stringArray).containsExactly("A", "B", "C", "D"); stringList.add("F"); - assertThat(stringList, CoreMatchers.hasItems("E", "B", "C", "D", "F")); + assertThat(stringList).containsExactly("E", "B", "C", "D", "F"); } } From ed41a0d92ef9a545c927c5a8e990d4bfa6eb5727 Mon Sep 17 00:00:00 2001 From: sampadawagde Date: Sat, 12 Sep 2020 17:54:33 +0530 Subject: [PATCH 14/25] JAVA-2411: Update spring-thymeleaf module and articles --- spring-thymeleaf/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-thymeleaf/pom.xml b/spring-thymeleaf/pom.xml index c37c66a36d..30f77dd73e 100644 --- a/spring-thymeleaf/pom.xml +++ b/spring-thymeleaf/pom.xml @@ -145,10 +145,10 @@ - 2.0.9.RELEASE - 3.0.9.RELEASE - 3.0.1.RELEASE - 2.3.0 + 2.3.2.RELEASE + 3.0.11.RELEASE + 3.0.4.RELEASE + 2.4.1 2.0.1.Final 6.0.11.Final From 136ad241d8a8a2f9d64884c2b7fb0598420d6db1 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 12 Sep 2020 18:59:15 +0300 Subject: [PATCH 15/25] Update gradle-5/cmd-line-args/build.gradle Co-authored-by: KevinGilmore --- gradle-5/cmd-line-args/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle-5/cmd-line-args/build.gradle b/gradle-5/cmd-line-args/build.gradle index 5399db4815..15c9288024 100644 --- a/gradle-5/cmd-line-args/build.gradle +++ b/gradle-5/cmd-line-args/build.gradle @@ -33,6 +33,6 @@ task cmdLineJavaExec(type: JavaExec) { task cmdLineExec(type: Exec) { group = "Execution" - description = "Run the an external program with ExecTask" + description = "Run an external program with ExecTask" commandLine cmdargs.split() } From 22fba25d9127a1716f2b986f68832a82d393bb1d Mon Sep 17 00:00:00 2001 From: kwoyke Date: Sat, 12 Sep 2020 19:08:22 +0200 Subject: [PATCH 16/25] BAEL-4587: Update Guide to Java Reflection (#9997) * BAEL-4587: Migrate Guide to Java Reflection to core-java-11-2 * BAEL-4587: Replace deprecated isAccessible method with canAccess --- core-java-modules/core-java-11-2/README.md | 2 +- .../java/com/baeldung}/reflection/Animal.java | 2 +- .../java/com/baeldung}/reflection/Bird.java | 2 +- .../baeldung}/reflection/DynamicGreeter.java | 2 +- .../java/com/baeldung}/reflection/Eating.java | 2 +- .../java/com/baeldung}/reflection/Goat.java | 2 +- .../com/baeldung}/reflection/Greeter.java | 2 +- .../reflection/GreetingAnnotation.java | 2 +- .../com/baeldung}/reflection/Greetings.java | 2 +- .../com/baeldung}/reflection/Locomotion.java | 2 +- .../com/baeldung}/reflection/Operations.java | 2 +- .../java/com/baeldung}/reflection/Person.java | 2 +- .../reflection/OperationsUnitTest.java | 2 +- .../reflection/ReflectionUnitTest.java | 73 +++++++++---------- .../core-java-reflection/README.MD | 1 - 15 files changed, 46 insertions(+), 54 deletions(-) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Animal.java (90%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Bird.java (93%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/DynamicGreeter.java (91%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Eating.java (55%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Goat.java (90%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Greeter.java (83%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/GreetingAnnotation.java (98%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Greetings.java (61%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Locomotion.java (61%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Operations.java (90%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Person.java (65%) rename core-java-modules/{core-java-reflection/src/test/java/com/baeldung/reflection/java => core-java-11-2/src/test/java/com/baeldung}/reflection/OperationsUnitTest.java (98%) rename core-java-modules/{core-java-reflection/src/test/java/com/baeldung/reflection/java => core-java-11-2/src/test/java/com/baeldung}/reflection/ReflectionUnitTest.java (77%) diff --git a/core-java-modules/core-java-11-2/README.md b/core-java-modules/core-java-11-2/README.md index d77bf748a8..834f310fce 100644 --- a/core-java-modules/core-java-11-2/README.md +++ b/core-java-modules/core-java-11-2/README.md @@ -4,5 +4,5 @@ This module contains articles about Java 11 core features ### Relevant articles - [Guide to Java 8 Optional](https://www.baeldung.com/java-optional) +- [Guide to Java Reflection](http://www.baeldung.com/java-reflection) - [Guide to Java 8’s Collectors](https://www.baeldung.com/java-8-collectors) - diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Animal.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Animal.java similarity index 90% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Animal.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Animal.java index 3f36243c29..364246ae64 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Animal.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Animal.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public abstract class Animal implements Eating { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Bird.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Bird.java similarity index 93% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Bird.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Bird.java index bd6f13094c..f5bb0f9b19 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Bird.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Bird.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Bird extends Animal { private boolean walks; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/DynamicGreeter.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/DynamicGreeter.java similarity index 91% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/DynamicGreeter.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/DynamicGreeter.java index 3776ef82e2..b7ff083daf 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/DynamicGreeter.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/DynamicGreeter.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import java.lang.annotation.Annotation; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Eating.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Eating.java similarity index 55% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Eating.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Eating.java index 479425cad4..c959becf00 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Eating.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Eating.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public interface Eating { String eats(); diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Goat.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Goat.java similarity index 90% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Goat.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Goat.java index 503717ae5e..086d09d543 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Goat.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Goat.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Goat extends Animal implements Locomotion { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greeter.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greeter.java similarity index 83% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greeter.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greeter.java index 57aefdd169..d06a719312 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greeter.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greeter.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/GreetingAnnotation.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/GreetingAnnotation.java similarity index 98% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/GreetingAnnotation.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/GreetingAnnotation.java index 601306f5d2..f23c407c52 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/GreetingAnnotation.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/GreetingAnnotation.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import java.lang.annotation.Annotation; import java.lang.reflect.Field; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greetings.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greetings.java similarity index 61% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greetings.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greetings.java index 4f3a20c3b9..fc6dfe949b 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greetings.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greetings.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; @Greeter(greet="Good morning") public class Greetings { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Locomotion.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Locomotion.java similarity index 61% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Locomotion.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Locomotion.java index 047c00cb13..230fd9a466 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Locomotion.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Locomotion.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public interface Locomotion { String getLocomotion(); diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Operations.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Operations.java similarity index 90% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Operations.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Operations.java index da4b479b02..5264378524 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Operations.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Operations.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Operations { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Person.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Person.java similarity index 65% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Person.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Person.java index f3d7f9f001..1a1fafef93 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Person.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Person.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Person { private String name; diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/OperationsUnitTest.java b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/OperationsUnitTest.java similarity index 98% rename from core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/OperationsUnitTest.java rename to core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/OperationsUnitTest.java index 217910bffd..7584d5da94 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/OperationsUnitTest.java +++ b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/OperationsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertFalse; diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/ReflectionUnitTest.java b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/ReflectionUnitTest.java similarity index 77% rename from core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/ReflectionUnitTest.java rename to core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/ReflectionUnitTest.java index a791d64874..c73fa5f8e0 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/ReflectionUnitTest.java +++ b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/ReflectionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -32,23 +32,23 @@ public class ReflectionUnitTest { final Class clazz = goat.getClass(); assertEquals("Goat", clazz.getSimpleName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getCanonicalName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getCanonicalName()); } @Test public void givenClassName_whenCreatesObject_thenCorrect() throws ClassNotFoundException { - final Class clazz = Class.forName("com.baeldung.java.reflection.Goat"); + final Class clazz = Class.forName("com.baeldung.reflection.Goat"); assertEquals("Goat", clazz.getSimpleName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getCanonicalName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getCanonicalName()); } @Test public void givenClass_whenRecognisesModifiers_thenCorrect() throws ClassNotFoundException { - final Class goatClass = Class.forName("com.baeldung.java.reflection.Goat"); - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class goatClass = Class.forName("com.baeldung.reflection.Goat"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final int goatMods = goatClass.getModifiers(); final int animalMods = animalClass.getModifiers(); @@ -63,7 +63,7 @@ public class ReflectionUnitTest { final Class goatClass = goat.getClass(); final Package pkg = goatClass.getPackage(); - assertEquals("com.baeldung.java.reflection", pkg.getName()); + assertEquals("com.baeldung.reflection", pkg.getName()); } @Test @@ -81,8 +81,8 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsImplementedInterfaces_thenCorrect() throws ClassNotFoundException { - final Class goatClass = Class.forName("com.baeldung.java.reflection.Goat"); - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class goatClass = Class.forName("com.baeldung.reflection.Goat"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final Class[] goatInterfaces = goatClass.getInterfaces(); final Class[] animalInterfaces = animalClass.getInterfaces(); @@ -94,16 +94,16 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsConstructor_thenCorrect() throws ClassNotFoundException { - final Class goatClass = Class.forName("com.baeldung.java.reflection.Goat"); + final Class goatClass = Class.forName("com.baeldung.reflection.Goat"); final Constructor[] constructors = goatClass.getConstructors(); assertEquals(1, constructors.length); - assertEquals("com.baeldung.java.reflection.Goat", constructors[0].getName()); + assertEquals("com.baeldung.reflection.Goat", constructors[0].getName()); } @Test public void givenClass_whenGetsFields_thenCorrect() throws ClassNotFoundException { - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final Field[] fields = animalClass.getDeclaredFields(); final List actualFields = getFieldNames(fields); @@ -114,7 +114,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsMethods_thenCorrect() throws ClassNotFoundException { - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final Method[] methods = animalClass.getDeclaredMethods(); final List actualMethods = getMethodNames(methods); @@ -124,7 +124,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsAllConstructors_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Constructor[] constructors = birdClass.getConstructors(); assertEquals(3, constructors.length); @@ -132,7 +132,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsEachConstructorByParamTypes_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); birdClass.getConstructor(); birdClass.getConstructor(String.class); birdClass.getConstructor(String.class, boolean.class); @@ -140,7 +140,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenInstantiatesObjectsAtRuntime_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Constructor cons1 = birdClass.getConstructor(); final Constructor cons2 = birdClass.getConstructor(String.class); @@ -159,7 +159,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsPublicFields_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field[] fields = birdClass.getFields(); assertEquals(1, fields.length); assertEquals("CATEGORY", fields[0].getName()); @@ -168,7 +168,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsPublicFieldByName_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field field = birdClass.getField("CATEGORY"); assertEquals("CATEGORY", field.getName()); @@ -176,7 +176,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsDeclaredFields_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field[] fields = birdClass.getDeclaredFields(); assertEquals(1, fields.length); assertEquals("walks", fields[0].getName()); @@ -184,7 +184,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsFieldsByName_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field field = birdClass.getDeclaredField("walks"); assertEquals("walks", field.getName()); @@ -192,14 +192,14 @@ public class ReflectionUnitTest { @Test public void givenClassField_whenGetsType_thenCorrect() throws Exception { - final Field field = Class.forName("com.baeldung.java.reflection.Bird").getDeclaredField("walks"); + final Field field = Class.forName("com.baeldung.reflection.Bird").getDeclaredField("walks"); final Class fieldClass = field.getType(); assertEquals("boolean", fieldClass.getSimpleName()); } @Test public void givenClassField_whenSetsAndGetsValue_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Bird bird = (Bird) birdClass.getConstructor().newInstance(); final Field field = birdClass.getDeclaredField("walks"); field.setAccessible(true); @@ -216,7 +216,7 @@ public class ReflectionUnitTest { @Test public void givenClassField_whenGetsAndSetsWithNull_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field field = birdClass.getField("CATEGORY"); field.setAccessible(true); @@ -225,7 +225,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsAllPublicMethods_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Method[] methods = birdClass.getMethods(); final List methodNames = getMethodNames(methods); @@ -235,7 +235,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsOnlyDeclaredMethods_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final List actualMethodNames = getMethodNames(birdClass.getDeclaredMethods()); final List expectedMethodNames = Arrays.asList("setWalks", "walks", "getSound", "eats"); @@ -248,24 +248,17 @@ public class ReflectionUnitTest { @Test public void givenMethodName_whenGetsMethod_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); - final Method walksMethod = birdClass.getDeclaredMethod("walks"); - final Method setWalksMethod = birdClass.getDeclaredMethod("setWalks", boolean.class); - - assertFalse(walksMethod.isAccessible()); - assertFalse(setWalksMethod.isAccessible()); - - walksMethod.setAccessible(true); - setWalksMethod.setAccessible(true); - - assertTrue(walksMethod.isAccessible()); - assertTrue(setWalksMethod.isAccessible()); + final Bird bird = new Bird(); + final Method walksMethod = bird.getClass().getDeclaredMethod("walks"); + final Method setWalksMethod = bird.getClass().getDeclaredMethod("setWalks", boolean.class); + assertTrue(walksMethod.canAccess(bird)); + assertTrue(setWalksMethod.canAccess(bird)); } @Test public void givenMethod_whenInvokes_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Bird bird = (Bird) birdClass.getConstructor().newInstance(); final Method setWalksMethod = birdClass.getDeclaredMethod("setWalks", boolean.class); final Method walksMethod = birdClass.getDeclaredMethod("walks"); diff --git a/core-java-modules/core-java-reflection/README.MD b/core-java-modules/core-java-reflection/README.MD index 5d8c54414b..62d8719981 100644 --- a/core-java-modules/core-java-reflection/README.MD +++ b/core-java-modules/core-java-reflection/README.MD @@ -3,7 +3,6 @@ - [Void Type in Java](https://www.baeldung.com/java-void-type) - [Retrieve Fields from a Java Class Using Reflection](https://www.baeldung.com/java-reflection-class-fields) - [Method Parameter Reflection in Java](http://www.baeldung.com/java-parameter-reflection) -- [Guide to Java Reflection](http://www.baeldung.com/java-reflection) - [Call Methods at Runtime Using Java Reflection](http://www.baeldung.com/java-method-reflection) - [Changing Annotation Parameters At Runtime](http://www.baeldung.com/java-reflection-change-annotation-params) - [Dynamic Proxies in Java](http://www.baeldung.com/java-dynamic-proxies) From 1d23e351e77ba8dfda6f41fa26220d58858f3139 Mon Sep 17 00:00:00 2001 From: "amit.pandey" Date: Sun, 13 Sep 2020 21:05:10 +0530 Subject: [PATCH 17/25] add modules in parent pom build --- maven-modules/maven-plugins/pom.xml | 5 +++++ spring-cloud/pom.xml | 1 + 2 files changed, 6 insertions(+) diff --git a/maven-modules/maven-plugins/pom.xml b/maven-modules/maven-plugins/pom.xml index 43bcf1f422..4877f00a92 100644 --- a/maven-modules/maven-plugins/pom.xml +++ b/maven-modules/maven-plugins/pom.xml @@ -14,6 +14,11 @@ ../.. + + + maven-enforcer + + diff --git a/spring-cloud/pom.xml b/spring-cloud/pom.xml index 99fde0daf4..ee7b80ffc1 100644 --- a/spring-cloud/pom.xml +++ b/spring-cloud/pom.xml @@ -43,6 +43,7 @@ spring-cloud-ribbon-retry spring-cloud-circuit-breaker spring-cloud-eureka-self-preservation + From 1b8f5ea9ee8280af83314ac8565d44ade553a055 Mon Sep 17 00:00:00 2001 From: gupta-ashu01 <30566001+gupta-ashu01@users.noreply.github.com> Date: Sun, 13 Sep 2020 22:35:45 +0530 Subject: [PATCH 18/25] BAEL-4567 (#10007) * BAEL-4567 BAEL-4567 * Add files via upload * Add files via upload * Delete SendMailWithAttachment.java * Update pom.xml * Formatting fixes --- .../core-java-networking-2/pom.xml | 6 ++ .../MailWithAttachmentService.java | 83 +++++++++++++++++++ .../MailWithAttachmentServiceLiveTest.java | 48 +++++++++++ 3 files changed, 137 insertions(+) create mode 100644 core-java-modules/core-java-networking-2/src/main/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentService.java create mode 100644 core-java-modules/core-java-networking-2/src/test/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentServiceLiveTest.java diff --git a/core-java-modules/core-java-networking-2/pom.xml b/core-java-modules/core-java-networking-2/pom.xml index d79320eaef..89a98bbf8b 100644 --- a/core-java-modules/core-java-networking-2/pom.xml +++ b/core-java-modules/core-java-networking-2/pom.xml @@ -35,6 +35,12 @@ async-http-client ${async-http-client.version} + + com.icegreen + greenmail + 1.5.8 + test + diff --git a/core-java-modules/core-java-networking-2/src/main/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentService.java b/core-java-modules/core-java-networking-2/src/main/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentService.java new file mode 100644 index 0000000000..7d4dc57f10 --- /dev/null +++ b/core-java-modules/core-java-networking-2/src/main/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentService.java @@ -0,0 +1,83 @@ +package com.baeldung.mail.mailwithattachment; + +import java.io.File; +import java.io.IOException; +import java.util.Properties; +import javax.mail.BodyPart; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Multipart; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeBodyPart; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; + +public class MailWithAttachmentService { + + private String username = ""; + private String password = ""; + private String host = ""; + private String port = ""; + + MailWithAttachmentService() { + } + + MailWithAttachmentService(String username, String password, String host, String port) { + this.username = username; + this.password = password; + this.host = host; + this.port = port; + } + + public Session getSession() { + Properties props = new Properties(); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.host", this.host); + props.put("mail.smtp.port", this.port); + + Session session = Session.getInstance(props, new javax.mail.Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + return session; + } + + public Message createMail(Session session) throws AddressException, MessagingException, IOException { + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress("mail@gmail.com")); + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("mail@gmail.com")); + message.setSubject("Testing Subject"); + + BodyPart messageBodyPart = new MimeBodyPart(); + messageBodyPart.setText("This is message body"); + + Multipart multipart = new MimeMultipart(); + multipart.addBodyPart(messageBodyPart); + + MimeBodyPart attachmentPart = new MimeBodyPart(); + MimeBodyPart attachmentPart2 = new MimeBodyPart(); + + attachmentPart.attachFile(new File("C:\\Document1.txt")); + attachmentPart2.attachFile(new File("C:\\Document2.txt")); + + multipart.addBodyPart(attachmentPart); + multipart.addBodyPart(attachmentPart2); + + message.setContent(multipart); + + return message; + } + + public void sendMail(Session session) throws MessagingException, IOException { + + Message message = createMail(session); + Transport.send(message); + } + +} \ No newline at end of file diff --git a/core-java-modules/core-java-networking-2/src/test/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentServiceLiveTest.java b/core-java-modules/core-java-networking-2/src/test/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentServiceLiveTest.java new file mode 100644 index 0000000000..ef82657ab5 --- /dev/null +++ b/core-java-modules/core-java-networking-2/src/test/java/com/baeldung/mail/mailwithattachment/MailWithAttachmentServiceLiveTest.java @@ -0,0 +1,48 @@ +package com.baeldung.mail.mailwithattachment; + +import static org.junit.Assert.*; +import javax.annotation.Resource; +import javax.mail.Session; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import com.baeldung.mail.mailwithattachment.MailWithAttachmentService; +import com.icegreen.greenmail.util.GreenMail; +import com.icegreen.greenmail.util.ServerSetupTest; + +public class MailWithAttachmentServiceLiveTest { + + @Resource + private MailWithAttachmentService emailService; + private GreenMail greenMail; + + @Before + public void startMailServer() { + emailService = new MailWithAttachmentService(); + greenMail = new GreenMail(ServerSetupTest.SMTP); + greenMail.start(); + } + + @After + public void stopMailServer() { + greenMail.stop(); + emailService = null; + } + + @Test + public void canSendMail() { + try { + Session testSession = greenMail.getSmtp() + .createSession(); + emailService.sendMail(testSession); + assertEquals(1, greenMail.getReceivedMessages().length); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + +} From 53191e7cff3d86a0f395ed0b9d860752f52dd6fb Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Sun, 13 Sep 2020 20:29:43 +0200 Subject: [PATCH 19/25] JAVA-2400: Fix EmailAnnotationPlugin implementation --- .../baeldung/swagger2boot/plugin/EmailAnnotationPlugin.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/plugin/EmailAnnotationPlugin.java b/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/plugin/EmailAnnotationPlugin.java index 22ca144fb4..59a7c97080 100644 --- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/plugin/EmailAnnotationPlugin.java +++ b/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/plugin/EmailAnnotationPlugin.java @@ -10,6 +10,7 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import springfox.bean.validators.plugins.Validators; +import springfox.documentation.builders.StringElementFacetBuilder; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.schema.ModelPropertyBuilderPlugin; import springfox.documentation.spi.schema.contexts.ModelPropertyContext; @@ -30,8 +31,9 @@ public class EmailAnnotationPlugin implements ModelPropertyBuilderPlugin { public void apply(ModelPropertyContext context) { Optional email = annotationFromBean(context, Email.class); if (email.isPresent()) { - context.getBuilder().pattern(email.get().regexp()); - context.getBuilder().example("email@email.com"); + context.getSpecificationBuilder().facetBuilder(StringElementFacetBuilder.class) + .pattern(email.get().regexp()); + context.getSpecificationBuilder().example("email@email.com"); } } From da147bb6a93e4b0b76f6e8d26d4dda18591083c1 Mon Sep 17 00:00:00 2001 From: michaelisvy Date: Mon, 14 Sep 2020 08:16:56 +0800 Subject: [PATCH 20/25] added advanced Spring Retry example and removed Spring Retry xml config --- .../com/baeldung/springretry/AppConfig.java | 5 +- .../com/baeldung/springretry/MyService.java | 11 +++- .../baeldung/springretry/MyServiceImpl.java | 16 ++++++ .../src/main/resources/retryConfig.properties | 2 + .../src/main/resources/retryadvice.xml | 50 ------------------- .../SpringRetryIntegrationTest.java | 10 ++++ 6 files changed, 40 insertions(+), 54 deletions(-) create mode 100644 spring-scheduling/src/main/resources/retryConfig.properties delete mode 100644 spring-scheduling/src/main/resources/retryadvice.xml diff --git a/spring-scheduling/src/main/java/com/baeldung/springretry/AppConfig.java b/spring-scheduling/src/main/java/com/baeldung/springretry/AppConfig.java index e79beb370b..2ca9104e89 100644 --- a/spring-scheduling/src/main/java/com/baeldung/springretry/AppConfig.java +++ b/spring-scheduling/src/main/java/com/baeldung/springretry/AppConfig.java @@ -3,6 +3,7 @@ package com.baeldung.springretry; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; import org.springframework.retry.annotation.EnableRetry; import org.springframework.retry.backoff.FixedBackOffPolicy; import org.springframework.retry.policy.SimpleRetryPolicy; @@ -11,9 +12,7 @@ import org.springframework.retry.support.RetryTemplate; @Configuration @ComponentScan(basePackages = "com.baeldung.springretry") @EnableRetry -// Uncomment this two lines if we need XML configuration -// @EnableAspectJAutoProxy -// @ImportResource("classpath:/retryadvice.xml") +@PropertySource("classpath:retryConfig.properties") public class AppConfig { @Bean diff --git a/spring-scheduling/src/main/java/com/baeldung/springretry/MyService.java b/spring-scheduling/src/main/java/com/baeldung/springretry/MyService.java index 409bf25845..40e2c419fc 100644 --- a/spring-scheduling/src/main/java/com/baeldung/springretry/MyService.java +++ b/spring-scheduling/src/main/java/com/baeldung/springretry/MyService.java @@ -2,18 +2,27 @@ package com.baeldung.springretry; import java.sql.SQLException; +import org.springframework.context.annotation.PropertySource; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Recover; import org.springframework.retry.annotation.Retryable; + public interface MyService { @Retryable void retryService(); - @Retryable(value = { SQLException.class }, maxAttempts = 2, backoff = @Backoff(delay = 5000)) + @Retryable(value = SQLException.class) void retryServiceWithRecovery(String sql) throws SQLException; + @Retryable(value = { SQLException.class }, maxAttempts = 2, backoff = @Backoff(delay = 100)) + void retryServiceWithCustomization(String sql) throws SQLException; + + @Retryable( value = SQLException.class, maxAttemptsExpression = "${retry.maxAttempts}", + backoff = @Backoff(delayExpression = "${retry.maxDelay}")) + void retryServiceWithExternalConfiguration(String sql) throws SQLException; + @Recover void recover(SQLException e, String sql); diff --git a/spring-scheduling/src/main/java/com/baeldung/springretry/MyServiceImpl.java b/spring-scheduling/src/main/java/com/baeldung/springretry/MyServiceImpl.java index 3e4b5ed00d..7eb4328a47 100644 --- a/spring-scheduling/src/main/java/com/baeldung/springretry/MyServiceImpl.java +++ b/spring-scheduling/src/main/java/com/baeldung/springretry/MyServiceImpl.java @@ -26,6 +26,22 @@ public class MyServiceImpl implements MyService { } } + @Override + public void retryServiceWithCustomization(String sql) throws SQLException { + if (StringUtils.isEmpty(sql)) { + logger.info("throw SQLException in method retryServiceWithCustomization()"); + throw new SQLException(); + } + } + + @Override + public void retryServiceWithExternalConfiguration(String sql) throws SQLException { + if (StringUtils.isEmpty(sql)) { + logger.info("throw SQLException in method retryServiceWithExternalConfiguration()"); + throw new SQLException(); + } + } + @Override public void recover(SQLException e, String sql) { logger.info("In recover method"); diff --git a/spring-scheduling/src/main/resources/retryConfig.properties b/spring-scheduling/src/main/resources/retryConfig.properties new file mode 100644 index 0000000000..7cc360adc6 --- /dev/null +++ b/spring-scheduling/src/main/resources/retryConfig.properties @@ -0,0 +1,2 @@ +retry.maxAttempts=2 +retry.maxDelay=100 \ No newline at end of file diff --git a/spring-scheduling/src/main/resources/retryadvice.xml b/spring-scheduling/src/main/resources/retryadvice.xml deleted file mode 100644 index 8de7801a58..0000000000 --- a/spring-scheduling/src/main/resources/retryadvice.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Initial sleep interval value, default 300 ms - - - - - The maximum value of the backoff period in milliseconds. - - - - - The value to increment the exp seed with for each retry attempt. - - - - - \ No newline at end of file diff --git a/spring-scheduling/src/test/java/com/baeldung/springretry/SpringRetryIntegrationTest.java b/spring-scheduling/src/test/java/com/baeldung/springretry/SpringRetryIntegrationTest.java index 2e5fb75482..33ce2fff74 100644 --- a/spring-scheduling/src/test/java/com/baeldung/springretry/SpringRetryIntegrationTest.java +++ b/spring-scheduling/src/test/java/com/baeldung/springretry/SpringRetryIntegrationTest.java @@ -30,6 +30,16 @@ public class SpringRetryIntegrationTest { myService.retryServiceWithRecovery(null); } + @Test + public void givenRetryServiceWithCustomization_whenCallWithException_thenRetryRecover() throws SQLException { + myService.retryServiceWithCustomization(null); + } + + @Test + public void givenRetryServiceWithExternalConfiguration_whenCallWithException_thenRetryRecover() throws SQLException { + myService.retryServiceWithExternalConfiguration(null); + } + @Test(expected = RuntimeException.class) public void givenTemplateRetryService_whenCallWithException_thenRetry() { retryTemplate.execute(arg0 -> { From 7b56a91c1543319798c200190058a70d9c67a265 Mon Sep 17 00:00:00 2001 From: kwoyke Date: Mon, 14 Sep 2020 11:24:29 +0200 Subject: [PATCH 21/25] BAEL-3712: Fix entities names (#10028) --- .../multipledb/dao/user/PossessionRepository.java | 4 ++-- .../multipledb/dao/user/UserRepository.java | 4 ++-- .../{PossessionMultipleDB.java => Possession.java} | 8 ++++---- .../model/user/{UserMultipleDB.java => User.java} | 12 ++++++------ .../multipledb/JpaMultipleDBIntegrationTest.java | 14 +++++++------- 5 files changed, 21 insertions(+), 21 deletions(-) rename persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/{PossessionMultipleDB.java => Possession.java} (89%) rename persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/{UserMultipleDB.java => User.java} (82%) diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java index ae37fde20d..a5ceee5b1a 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java @@ -2,8 +2,8 @@ package com.baeldung.multipledb.dao.user; import org.springframework.data.jpa.repository.JpaRepository; -import com.baeldung.multipledb.model.user.PossessionMultipleDB; +import com.baeldung.multipledb.model.user.Possession; -public interface PossessionRepository extends JpaRepository { +public interface PossessionRepository extends JpaRepository { } diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java index 267a61a93f..d3109bd311 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java @@ -2,7 +2,7 @@ package com.baeldung.multipledb.dao.user; import org.springframework.data.jpa.repository.JpaRepository; -import com.baeldung.multipledb.model.user.UserMultipleDB; +import com.baeldung.multipledb.model.user.User; -public interface UserRepository extends JpaRepository { +public interface UserRepository extends JpaRepository { } \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/Possession.java similarity index 89% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/Possession.java index a6a3c88bd0..af646ffd04 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/Possession.java @@ -4,7 +4,7 @@ import javax.persistence.*; @Entity @Table -public class PossessionMultipleDB { +public class Possession { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -12,11 +12,11 @@ public class PossessionMultipleDB { private String name; - public PossessionMultipleDB() { + public Possession() { super(); } - public PossessionMultipleDB(final String name) { + public Possession(final String name) { super(); this.name = name; @@ -58,7 +58,7 @@ public class PossessionMultipleDB { if (getClass() != obj.getClass()) { return false; } - final PossessionMultipleDB other = (PossessionMultipleDB) obj; + final Possession other = (Possession) obj; if (id != other.id) { return false; } diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/User.java similarity index 82% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/User.java index c7cd07f7a1..1985c543d3 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/User.java @@ -6,7 +6,7 @@ import java.util.List; @Entity @Table(name = "users") -public class UserMultipleDB { +public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -18,13 +18,13 @@ public class UserMultipleDB { private Integer status; @OneToMany - List possessionList; + List possessionList; - public UserMultipleDB() { + public User() { super(); } - public UserMultipleDB(String name, String email, Integer status) { + public User(String name, String email, Integer status) { this.name = name; this.email = email; this.status = status; @@ -70,11 +70,11 @@ public class UserMultipleDB { this.age = age; } - public List getPossessionList() { + public List getPossessionList() { return possessionList; } - public void setPossessionList(List possessionList) { + public void setPossessionList(List possessionList) { this.possessionList = possessionList; } diff --git a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java index a1f4a3fa2c..fb363e2ab3 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java @@ -20,8 +20,8 @@ import com.baeldung.multipledb.dao.product.ProductRepository; import com.baeldung.multipledb.dao.user.PossessionRepository; import com.baeldung.multipledb.dao.user.UserRepository; import com.baeldung.multipledb.model.product.Product; -import com.baeldung.multipledb.model.user.PossessionMultipleDB; -import com.baeldung.multipledb.model.user.UserMultipleDB; +import com.baeldung.multipledb.model.user.Possession; +import com.baeldung.multipledb.model.user.User; @RunWith(SpringRunner.class) @SpringBootTest(classes=MultipleDbApplication.class) @@ -42,15 +42,15 @@ public class JpaMultipleDBIntegrationTest { @Test @Transactional("userTransactionManager") public void whenCreatingUser_thenCreated() { - UserMultipleDB user = new UserMultipleDB(); + User user = new User(); user.setName("John"); user.setEmail("john@test.com"); user.setAge(20); - PossessionMultipleDB p = new PossessionMultipleDB("sample"); + Possession p = new Possession("sample"); p = possessionRepository.save(p); user.setPossessionList(Collections.singletonList(p)); user = userRepository.save(user); - final Optional result = userRepository.findById(user.getId()); + final Optional result = userRepository.findById(user.getId()); assertTrue(result.isPresent()); System.out.println(result.get().getPossessionList()); assertEquals(1, result.get().getPossessionList().size()); @@ -59,14 +59,14 @@ public class JpaMultipleDBIntegrationTest { @Test @Transactional("userTransactionManager") public void whenCreatingUsersWithSameEmail_thenRollback() { - UserMultipleDB user1 = new UserMultipleDB(); + User user1 = new User(); user1.setName("John"); user1.setEmail("john@test.com"); user1.setAge(20); user1 = userRepository.save(user1); assertTrue(userRepository.findById(user1.getId()).isPresent()); - UserMultipleDB user2 = new UserMultipleDB(); + User user2 = new User(); user2.setName("Tom"); user2.setEmail("john@test.com"); user2.setAge(10); From 68f6566a8beab9574b3fdfa35f9589843cf21145 Mon Sep 17 00:00:00 2001 From: mikr Date: Mon, 14 Sep 2020 16:30:00 +0200 Subject: [PATCH 22/25] Java-2797 Cleanup maven-java-11/multimodule-maven-project --- .../entitymodule/pom.xml | 22 ---------- .../main/java/com/baeldung/entity/User.java | 19 --------- .../src/main/java/module-info.java | 3 -- .../mainappmodule/pom.xml | 41 ------------------- .../com/baeldung/mainapp/Application.java | 19 --------- .../src/main/java/module-info.java | 6 --- pom.xml | 2 - 7 files changed, 112 deletions(-) delete mode 100644 maven-java-11/multimodule-maven-project/entitymodule/pom.xml delete mode 100644 maven-java-11/multimodule-maven-project/entitymodule/src/main/java/com/baeldung/entity/User.java delete mode 100644 maven-java-11/multimodule-maven-project/entitymodule/src/main/java/module-info.java delete mode 100644 maven-java-11/multimodule-maven-project/mainappmodule/pom.xml delete mode 100644 maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/com/baeldung/mainapp/Application.java delete mode 100644 maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/module-info.java diff --git a/maven-java-11/multimodule-maven-project/entitymodule/pom.xml b/maven-java-11/multimodule-maven-project/entitymodule/pom.xml deleted file mode 100644 index 228619ed74..0000000000 --- a/maven-java-11/multimodule-maven-project/entitymodule/pom.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - 4.0.0 - com.baeldung.entitymodule - entitymodule - 1.0 - entitymodule - jar - - - com.baeldung.multimodule-maven-project - multimodule-maven-project - 1.0 - - - - 11 - 11 - - - diff --git a/maven-java-11/multimodule-maven-project/entitymodule/src/main/java/com/baeldung/entity/User.java b/maven-java-11/multimodule-maven-project/entitymodule/src/main/java/com/baeldung/entity/User.java deleted file mode 100644 index 22022a2e6d..0000000000 --- a/maven-java-11/multimodule-maven-project/entitymodule/src/main/java/com/baeldung/entity/User.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.entity; - -public class User { - - private final String name; - - public User(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - @Override - public String toString() { - return "User{" + "name=" + name + '}'; - } -} diff --git a/maven-java-11/multimodule-maven-project/entitymodule/src/main/java/module-info.java b/maven-java-11/multimodule-maven-project/entitymodule/src/main/java/module-info.java deleted file mode 100644 index 67a3097352..0000000000 --- a/maven-java-11/multimodule-maven-project/entitymodule/src/main/java/module-info.java +++ /dev/null @@ -1,3 +0,0 @@ -module com.baeldung.entity { - exports com.baeldung.entity; -} diff --git a/maven-java-11/multimodule-maven-project/mainappmodule/pom.xml b/maven-java-11/multimodule-maven-project/mainappmodule/pom.xml deleted file mode 100644 index 1f4493c34c..0000000000 --- a/maven-java-11/multimodule-maven-project/mainappmodule/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - com.baeldung.mainappmodule - mainappmodule - 1.0 - mainappmodule - jar - - - com.baeldung.multimodule-maven-project - multimodule-maven-project - 1.0 - - - - - com.baeldung.entitymodule - entitymodule - ${entitymodule.version} - - - com.baeldung.daomodule - daomodule - ${daomodule.version} - - - com.baeldung.userdaomodule - userdaomodule - ${userdaomodule.version} - - - - - 1.0 - 1.0 - 1.0 - - - diff --git a/maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/com/baeldung/mainapp/Application.java b/maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/com/baeldung/mainapp/Application.java deleted file mode 100644 index 0c0df7461b..0000000000 --- a/maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/com/baeldung/mainapp/Application.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.mainapp; - -import com.baeldung.dao.Dao; -import com.baeldung.entity.User; -import com.baeldung.userdao.UserDao; -import java.util.HashMap; -import java.util.Map; - -public class Application { - - public static void main(String[] args) { - Map users = new HashMap<>(); - users.put(1, new User("Julie")); - users.put(2, new User("David")); - Dao userDao = new UserDao(users); - userDao.findAll().forEach(System.out::println); - } - -} diff --git a/maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/module-info.java b/maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/module-info.java deleted file mode 100644 index c688fcf7de..0000000000 --- a/maven-java-11/multimodule-maven-project/mainappmodule/src/main/java/module-info.java +++ /dev/null @@ -1,6 +0,0 @@ -module com.baeldung.mainapp { - requires com.baeldung.entity; - requires com.baeldung.userdao; - requires com.baeldung.dao; - uses com.baeldung.dao.Dao; -} diff --git a/pom.xml b/pom.xml index a2e09c0f91..fe67bc835b 100644 --- a/pom.xml +++ b/pom.xml @@ -508,7 +508,6 @@ maven-modules maven-archetype - maven-polyglot mesos-marathon @@ -1019,7 +1018,6 @@ maven-modules maven-archetype - maven-polyglot mesos-marathon From f47741a9b17300cc3dae936ddf12e1799ee9a1b2 Mon Sep 17 00:00:00 2001 From: Amit Pandey Date: Mon, 14 Sep 2020 21:51:24 +0530 Subject: [PATCH 23/25] moved spring-security-web-jsonview module to spring-security-core (#10015) * moved spring-security-web-jsonview module to spring-security-core * removed deleted module from project build --- spring-security-modules/pom.xml | 1 - .../spring-security-core/README.md | 1 + .../java/com/baeldung/filterresponse/App.java | 13 ++ .../filterresponse/config}/AppConfig.java | 6 +- .../SecurityJsonViewControllerAdvice.java | 11 +- .../controller/ItemsController.java | 12 +- .../filterresponse}/controller/View.java | 5 +- .../baeldung/filterresponse}/model/Item.java | 4 +- ...SpringSecurityJsonViewIntegrationTest.java | 4 +- .../spring-security-web-jsonview/.gitignore | 13 -- .../spring-security-web-jsonview/README.md | 7 - .../spring-security-web-jsonview/pom.xml | 206 ------------------ .../java/com/baeldung/AppInitializer.java | 33 --- .../src/main/resources/logback.xml | 19 -- .../java/com/baeldung/SpringContextTest.java | 17 -- 15 files changed, 34 insertions(+), 318 deletions(-) create mode 100644 spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/App.java rename spring-security-modules/{spring-security-web-jsonview/src/main/java/com/baeldung/spring => spring-security-core/src/main/java/com/baeldung/filterresponse/config}/AppConfig.java (95%) rename spring-security-modules/{spring-security-web-jsonview/src/main/java/com/baeldung/spring => spring-security-core/src/main/java/com/baeldung/filterresponse/config}/SecurityJsonViewControllerAdvice.java (95%) rename spring-security-modules/{spring-security-web-jsonview/src/main/java/com/baeldung => spring-security-core/src/main/java/com/baeldung/filterresponse}/controller/ItemsController.java (68%) rename spring-security-modules/{spring-security-web-jsonview/src/main/java/com/baeldung => spring-security-core/src/main/java/com/baeldung/filterresponse}/controller/View.java (76%) rename spring-security-modules/{spring-security-web-jsonview/src/main/java/com/baeldung => spring-security-core/src/main/java/com/baeldung/filterresponse}/model/Item.java (85%) rename spring-security-modules/{spring-security-web-jsonview/src/test/java/com/baeldung/security => spring-security-core/src/test/java/com/baeldung/filterresponse}/SpringSecurityJsonViewIntegrationTest.java (97%) delete mode 100644 spring-security-modules/spring-security-web-jsonview/.gitignore delete mode 100644 spring-security-modules/spring-security-web-jsonview/README.md delete mode 100644 spring-security-modules/spring-security-web-jsonview/pom.xml delete mode 100644 spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java delete mode 100644 spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml delete mode 100644 spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml index b68138964b..d5c0c0dd6e 100644 --- a/spring-security-modules/pom.xml +++ b/spring-security-modules/pom.xml @@ -24,7 +24,6 @@ spring-security-web-boot-2 spring-security-web-mvc-custom spring-security-web-digest-auth - spring-security-web-jsonview spring-security-ldap spring-security-web-login spring-security-web-persisted-remember-me diff --git a/spring-security-modules/spring-security-core/README.md b/spring-security-modules/spring-security-core/README.md index f28b3abb2b..9f8e4dda53 100644 --- a/spring-security-modules/spring-security-core/README.md +++ b/spring-security-modules/spring-security-core/README.md @@ -9,6 +9,7 @@ This module contains articles about core Spring Security - [Overview and Need for DelegatingFilterProxy in Spring](https://www.baeldung.com/spring-delegating-filter-proxy) - [Deny Access on Missing @PreAuthorize to Spring Controller Methods](https://www.baeldung.com/spring-deny-access) - [Spring Security: Check If a User Has a Role in Java](https://www.baeldung.com/spring-security-check-user-role) +- [Filtering Jackson JSON Output Based on Spring Security Role](https://www.baeldung.com/spring-security-role-filter-json) ### Build the Project diff --git a/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/App.java b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/App.java new file mode 100644 index 0000000000..a5389e93d3 --- /dev/null +++ b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/App.java @@ -0,0 +1,13 @@ +package com.baeldung.filterresponse; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class App { + + public static void main(String[] args) { + SpringApplication.run(App.class, args); + } + +} diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/config/AppConfig.java similarity index 95% rename from spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java rename to spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/config/AppConfig.java index 10b2d2447e..8ff6000129 100644 --- a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java +++ b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/config/AppConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.spring; +package com.baeldung.filterresponse.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -12,12 +12,10 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import java.util.Arrays; - @Configuration @EnableWebMvc @EnableWebSecurity -@ComponentScan("com.baeldung") +@ComponentScan("com.baeldung.filterresponse") public class AppConfig extends WebSecurityConfigurerAdapter implements WebMvcConfigurer { @Override diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/config/SecurityJsonViewControllerAdvice.java similarity index 95% rename from spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java rename to spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/config/SecurityJsonViewControllerAdvice.java index d6d022a110..d0ba0adcf5 100644 --- a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java +++ b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/config/SecurityJsonViewControllerAdvice.java @@ -1,6 +1,9 @@ -package com.baeldung.spring; +package com.baeldung.filterresponse.config; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; -import com.baeldung.controller.View; import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.converter.json.MappingJacksonValue; @@ -11,9 +14,7 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.AbstractMappingJacksonResponseBodyAdvice; -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; +import com.baeldung.filterresponse.controller.View; @RestControllerAdvice public class SecurityJsonViewControllerAdvice extends AbstractMappingJacksonResponseBodyAdvice { diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/controller/ItemsController.java similarity index 68% rename from spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java rename to spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/controller/ItemsController.java index 16268a239b..f5fd4ee7f1 100644 --- a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java +++ b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/controller/ItemsController.java @@ -1,14 +1,12 @@ -package com.baeldung.controller; +package com.baeldung.filterresponse.controller; + +import java.util.Arrays; +import java.util.Collection; -import com.baeldung.model.Item; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; +import com.baeldung.filterresponse.model.Item; @RestController public class ItemsController { diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/controller/View.java similarity index 76% rename from spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java rename to spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/controller/View.java index 10ae50adef..3099807578 100644 --- a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java +++ b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/controller/View.java @@ -1,10 +1,11 @@ -package com.baeldung.controller; +package com.baeldung.filterresponse.controller; -import com.baeldung.spring.AppConfig.Role; import java.util.HashMap; import java.util.Map; +import com.baeldung.filterresponse.config.AppConfig.Role; + public class View { public static final Map MAPPING = new HashMap<>(); diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/model/Item.java similarity index 85% rename from spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java rename to spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/model/Item.java index 002ee73e4f..9ebdc6bad0 100644 --- a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java +++ b/spring-security-modules/spring-security-core/src/main/java/com/baeldung/filterresponse/model/Item.java @@ -1,6 +1,6 @@ -package com.baeldung.model; +package com.baeldung.filterresponse.model; -import com.baeldung.controller.View; +import com.baeldung.filterresponse.controller.View; import com.fasterxml.jackson.annotation.JsonView; public class Item { diff --git a/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java b/spring-security-modules/spring-security-core/src/test/java/com/baeldung/filterresponse/SpringSecurityJsonViewIntegrationTest.java similarity index 97% rename from spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java rename to spring-security-modules/spring-security-core/src/test/java/com/baeldung/filterresponse/SpringSecurityJsonViewIntegrationTest.java index 626c8cb497..fc821b5175 100644 --- a/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java +++ b/spring-security-modules/spring-security-core/src/test/java/com/baeldung/filterresponse/SpringSecurityJsonViewIntegrationTest.java @@ -1,6 +1,6 @@ -package com.baeldung.security; +package com.baeldung.filterresponse; -import com.baeldung.spring.AppConfig; +import com.baeldung.filterresponse.config.AppConfig; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.junit.Before; diff --git a/spring-security-modules/spring-security-web-jsonview/.gitignore b/spring-security-modules/spring-security-web-jsonview/.gitignore deleted file mode 100644 index 83c05e60c8..0000000000 --- a/spring-security-modules/spring-security-web-jsonview/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.class - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* - -# Packaged files # -*.jar -*.war -*.ear \ No newline at end of file diff --git a/spring-security-modules/spring-security-web-jsonview/README.md b/spring-security-modules/spring-security-web-jsonview/README.md deleted file mode 100644 index 83f8106df9..0000000000 --- a/spring-security-modules/spring-security-web-jsonview/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Spring Security Web Json View - -This module contains articles about Spring Security with JSON - -### Relevant Articles: - -- [Filtering Jackson JSON Output Based on Spring Security Role](https://www.baeldung.com/spring-security-role-filter-json) diff --git a/spring-security-modules/spring-security-web-jsonview/pom.xml b/spring-security-modules/spring-security-web-jsonview/pom.xml deleted file mode 100644 index 0d1b0b09db..0000000000 --- a/spring-security-modules/spring-security-web-jsonview/pom.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - 4.0.0 - spring-security-web-jsonview - 0.1-SNAPSHOT - spring-security-web-jsonview - war - - - com.baeldung - parent-spring-5 - 0.0.1-SNAPSHOT - ../../parent-spring-5 - - - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - - - org.springframework.security - spring-security-web - ${spring-security.version} - - - org.springframework.security - spring-security-config - ${spring-security.version} - - - org.springframework.security - spring-security-taglibs - ${spring-security.version} - - - - - - org.springframework - spring-core - ${spring.version} - - - commons-logging - commons-logging - - - - - org.springframework - spring-context - ${spring.version} - - - org.springframework - spring-jdbc - ${spring.version} - - - org.springframework - spring-beans - ${spring.version} - - - org.springframework - spring-aop - ${spring.version} - - - org.springframework - spring-tx - ${spring.version} - - - org.springframework - spring-expression - ${spring.version} - - - - org.springframework - spring-web - ${spring.version} - - - org.springframework - spring-webmvc - ${spring.version} - - - - - - javax.servlet - javax.servlet-api - ${javax.servlet-api.version} - provided - - - - javax.servlet - jstl - ${jstl.version} - runtime - - - - - - org.springframework - spring-test - ${spring.version} - test - - - org.springframework.security - spring-security-test - ${spring-security.version} - test - - - com.jayway.jsonpath - json-path - ${json-path.version} - test - - - - - spring-security-mvc-jsonview - - - src/main/resources - true - - - - - org.apache.maven.plugins - maven-war-plugin - ${maven-war-plugin.version} - - - default-war - prepare-package - - false - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - - - ${project.build.directory}/${project.name}.war - war - - / - - - - - 2400000 - tomcat8x - embedded - - - - - - - 8084 - - - - - - - - - 1.6.1 - 2.4.0 - - - \ No newline at end of file diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java deleted file mode 100644 index 4f38d190eb..0000000000 --- a/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.baeldung; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRegistration; - -import org.springframework.web.WebApplicationInitializer; -import org.springframework.web.context.ContextLoaderListener; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.context.support.GenericWebApplicationContext; -import org.springframework.web.filter.DelegatingFilterProxy; -import org.springframework.web.servlet.DispatcherServlet; - -public class AppInitializer implements WebApplicationInitializer { - - @Override - public void onStartup(final ServletContext sc) throws ServletException { - - AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); - - root.scan("com.baeldung"); - sc.addListener(new ContextLoaderListener(root)); - - ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet(new GenericWebApplicationContext())); - appServlet.setLoadOnStartup(1); - appServlet.addMapping("/"); - - sc.addFilter("securityFilter", new DelegatingFilterProxy("springSecurityFilterChain")) - .addMappingForUrlPatterns(null, false, "/*"); - - } - -} diff --git a/spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml deleted file mode 100644 index 56af2d397e..0000000000 --- a/spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java deleted file mode 100644 index b1a3de714e..0000000000 --- a/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung; - -import com.baeldung.spring.AppConfig; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.web.WebAppConfiguration; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = AppConfig.class) -@WebAppConfiguration -public class SpringContextTest { - @Test - public void whenSpringContextIsBootstrapped_thenNoExceptions() { - } -} From d73bc7adb0f154bbcd5e15fc86f28fd4e0a7dca2 Mon Sep 17 00:00:00 2001 From: Amit Pandey Date: Mon, 14 Sep 2020 21:53:09 +0530 Subject: [PATCH 24/25] moved spring-rest-hal-browser to spring-data-rest module (#10019) * moved spring-rest-hal-browser to spring-data-rest module * removed module from build --- pom.xml | 2 - spring-data-rest/README.md | 1 + spring-data-rest/pom.xml | 9 +++ .../java/com/baeldung/halbrowser}/App.java | 2 +- .../baeldung/halbrowser}/config/DBLoader.java | 11 ++-- .../halbrowser}/config/RestConfig.java | 2 +- .../halbrowser}/data/BookRepository.java | 6 +- .../com/baeldung/halbrowser}/model/Book.java | 2 +- spring-rest-hal-browser/README.md | 6 -- spring-rest-hal-browser/pom.xml | 62 ------------------- .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 13 ---- 12 files changed, 22 insertions(+), 94 deletions(-) rename {spring-rest-hal-browser/src/main/java/com/baeldung => spring-data-rest/src/main/java/com/baeldung/halbrowser}/App.java (88%) rename {spring-rest-hal-browser/src/main/java/com/baeldung => spring-data-rest/src/main/java/com/baeldung/halbrowser}/config/DBLoader.java (95%) rename {spring-rest-hal-browser/src/main/java/com/baeldung => spring-data-rest/src/main/java/com/baeldung/halbrowser}/config/RestConfig.java (95%) rename {spring-rest-hal-browser/src/main/java/com/baeldung => spring-data-rest/src/main/java/com/baeldung/halbrowser}/data/BookRepository.java (86%) rename {spring-rest-hal-browser/src/main/java/com/baeldung => spring-data-rest/src/main/java/com/baeldung/halbrowser}/model/Book.java (97%) delete mode 100644 spring-rest-hal-browser/README.md delete mode 100644 spring-rest-hal-browser/pom.xml delete mode 100644 spring-rest-hal-browser/src/main/resources/application.properties delete mode 100644 spring-rest-hal-browser/src/main/resources/logback.xml diff --git a/pom.xml b/pom.xml index a2e09c0f91..9406d2e180 100644 --- a/pom.xml +++ b/pom.xml @@ -697,7 +697,6 @@ spring-remoting spring-rest-angular spring-rest-compress - spring-rest-hal-browser spring-rest-http spring-rest-http-2 spring-rest-query-language @@ -1200,7 +1199,6 @@ spring-remoting spring-rest-angular spring-rest-compress - spring-rest-hal-browser spring-rest-http spring-rest-query-language spring-rest-shell diff --git a/spring-data-rest/README.md b/spring-data-rest/README.md index bae2fe8eaf..ab1991b08f 100644 --- a/spring-data-rest/README.md +++ b/spring-data-rest/README.md @@ -12,6 +12,7 @@ This module contains articles about Spring Data REST - [Customizing HTTP Endpoints in Spring Data REST](https://www.baeldung.com/spring-data-rest-customize-http-endpoints) - [Spring Boot with SQLite](https://www.baeldung.com/spring-boot-sqlite) - [Spring Data Web Support](https://www.baeldung.com/spring-data-web-support) +- [Spring REST and HAL Browser](https://www.baeldung.com/spring-rest-hal) ### The Course The "REST With Spring" Classes: http://bit.ly/restwithspring diff --git a/spring-data-rest/pom.xml b/spring-data-rest/pom.xml index 741d146fbf..63a42857f4 100644 --- a/spring-data-rest/pom.xml +++ b/spring-data-rest/pom.xml @@ -32,6 +32,15 @@ org.springframework.boot spring-boot-starter-data-jpa + + + org.springframework.data + spring-data-rest-hal-browser + + + org.springframework.boot + spring-boot-starter-validation + org.springframework.boot spring-boot-autoconfigure diff --git a/spring-rest-hal-browser/src/main/java/com/baeldung/App.java b/spring-data-rest/src/main/java/com/baeldung/halbrowser/App.java similarity index 88% rename from spring-rest-hal-browser/src/main/java/com/baeldung/App.java rename to spring-data-rest/src/main/java/com/baeldung/halbrowser/App.java index 14b6c201d5..6421b7ac33 100644 --- a/spring-rest-hal-browser/src/main/java/com/baeldung/App.java +++ b/spring-data-rest/src/main/java/com/baeldung/halbrowser/App.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.halbrowser; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/spring-rest-hal-browser/src/main/java/com/baeldung/config/DBLoader.java b/spring-data-rest/src/main/java/com/baeldung/halbrowser/config/DBLoader.java similarity index 95% rename from spring-rest-hal-browser/src/main/java/com/baeldung/config/DBLoader.java rename to spring-data-rest/src/main/java/com/baeldung/halbrowser/config/DBLoader.java index 7251ef0e8c..3cd059ce63 100644 --- a/spring-rest-hal-browser/src/main/java/com/baeldung/config/DBLoader.java +++ b/spring-data-rest/src/main/java/com/baeldung/halbrowser/config/DBLoader.java @@ -1,14 +1,15 @@ -package com.baeldung.config; +package com.baeldung.halbrowser.config; + +import java.util.Random; +import java.util.stream.IntStream; -import com.baeldung.data.BookRepository; -import com.baeldung.model.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; -import java.util.Random; -import java.util.stream.IntStream; +import com.baeldung.halbrowser.data.BookRepository; +import com.baeldung.halbrowser.model.Book; @Component public class DBLoader implements ApplicationRunner { diff --git a/spring-rest-hal-browser/src/main/java/com/baeldung/config/RestConfig.java b/spring-data-rest/src/main/java/com/baeldung/halbrowser/config/RestConfig.java similarity index 95% rename from spring-rest-hal-browser/src/main/java/com/baeldung/config/RestConfig.java rename to spring-data-rest/src/main/java/com/baeldung/halbrowser/config/RestConfig.java index 858371facc..73f7e0f26a 100644 --- a/spring-rest-hal-browser/src/main/java/com/baeldung/config/RestConfig.java +++ b/spring-data-rest/src/main/java/com/baeldung/halbrowser/config/RestConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.config; +package com.baeldung.halbrowser.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; diff --git a/spring-rest-hal-browser/src/main/java/com/baeldung/data/BookRepository.java b/spring-data-rest/src/main/java/com/baeldung/halbrowser/data/BookRepository.java similarity index 86% rename from spring-rest-hal-browser/src/main/java/com/baeldung/data/BookRepository.java rename to spring-data-rest/src/main/java/com/baeldung/halbrowser/data/BookRepository.java index d8e35974b1..375f6886ef 100644 --- a/spring-rest-hal-browser/src/main/java/com/baeldung/data/BookRepository.java +++ b/spring-data-rest/src/main/java/com/baeldung/halbrowser/data/BookRepository.java @@ -1,14 +1,14 @@ -package com.baeldung.data; +package com.baeldung.halbrowser.data; -import com.baeldung.model.Book; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; import org.springframework.data.rest.core.annotation.RestResource; import org.springframework.stereotype.Repository; +import com.baeldung.halbrowser.model.Book; + @Repository public interface BookRepository extends PagingAndSortingRepository { diff --git a/spring-rest-hal-browser/src/main/java/com/baeldung/model/Book.java b/spring-data-rest/src/main/java/com/baeldung/halbrowser/model/Book.java similarity index 97% rename from spring-rest-hal-browser/src/main/java/com/baeldung/model/Book.java rename to spring-data-rest/src/main/java/com/baeldung/halbrowser/model/Book.java index b1dc1b41f3..06056df525 100644 --- a/spring-rest-hal-browser/src/main/java/com/baeldung/model/Book.java +++ b/spring-data-rest/src/main/java/com/baeldung/halbrowser/model/Book.java @@ -1,4 +1,4 @@ -package com.baeldung.model; +package com.baeldung.halbrowser.model; import javax.persistence.*; import javax.validation.constraints.NotNull; diff --git a/spring-rest-hal-browser/README.md b/spring-rest-hal-browser/README.md deleted file mode 100644 index 90337aad1a..0000000000 --- a/spring-rest-hal-browser/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Spring REST HAL Browser - -This module contains articles about Spring REST with the HAL browser - -### Relevant Articles: -- [Spring REST and HAL Browser](https://www.baeldung.com/spring-rest-hal) diff --git a/spring-rest-hal-browser/pom.xml b/spring-rest-hal-browser/pom.xml deleted file mode 100644 index c8066b89a4..0000000000 --- a/spring-rest-hal-browser/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - 4.0.0 - spring-rest-hal-browser - 1.0-SNAPSHOT - spring-rest-hal-browser - - - com.baeldung - parent-boot-2 - 0.0.1-SNAPSHOT - ../parent-boot-2 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - - org.springframework.data - spring-data-rest-hal-browser - - - - com.h2database - h2 - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${source.version} - ${target.version} - - - - - - - 1.8 - 1.8 - - - \ No newline at end of file diff --git a/spring-rest-hal-browser/src/main/resources/application.properties b/spring-rest-hal-browser/src/main/resources/application.properties deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/spring-rest-hal-browser/src/main/resources/logback.xml b/spring-rest-hal-browser/src/main/resources/logback.xml deleted file mode 100644 index 7d900d8ea8..0000000000 --- a/spring-rest-hal-browser/src/main/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - \ No newline at end of file From 9725f52fad7b336ff7f44d57ba9b5d648f63a6d1 Mon Sep 17 00:00:00 2001 From: AmitB Date: Tue, 15 Sep 2020 10:14:25 +0530 Subject: [PATCH 25/25] [BAEL-4495] Performance of removeAll() in a HashSet (#10011) * [BAEL-4495] Performance of removeAll() in a HashSet * [BAEL-4495] Add unit test for hashset removeAll() * [BAEL-4495] Update test methods to camelCase --- .../HashSetBenchmark.java | 86 +++++++++++++++++++ .../collections/hashset/HashSetUnitTest.java | 33 +++++++ 2 files changed, 119 insertions(+) create mode 100644 core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/removeallperformance/HashSetBenchmark.java create mode 100644 core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashset/HashSetUnitTest.java diff --git a/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/removeallperformance/HashSetBenchmark.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/removeallperformance/HashSetBenchmark.java new file mode 100644 index 0000000000..8ce58c865e --- /dev/null +++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/removeallperformance/HashSetBenchmark.java @@ -0,0 +1,86 @@ +package com.baeldung.collections.removeallperformance; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +import org.apache.commons.lang3.RandomStringUtils; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Level; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.runner.Runner; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.OptionsBuilder; + +import com.baeldung.collections.containsperformance.Employee; + +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +@Warmup(iterations = 5) +public class HashSetBenchmark { + + @State(Scope.Thread) + public static class MyState { + private Set employeeSet1 = new HashSet<>(); + private List employeeList1 = new ArrayList<>(); + private Set employeeSet2 = new HashSet<>(); + private List employeeList2 = new ArrayList<>(); + + private long set1Size = 60000; + private long list1Size = 50000; + private long set2Size = 50000; + private long list2Size = 60000; + + @Setup(Level.Trial) + public void setUp() { + + for (long i = 0; i < set1Size; i++) { + employeeSet1.add(new Employee(i, RandomStringUtils.random(7, true, false))); + } + + for (long i = 0; i < list1Size; i++) { + employeeList1.add(new Employee(i, RandomStringUtils.random(7, true, false))); + } + + for (long i = 0; i < set2Size; i++) { + employeeSet2.add(new Employee(i, RandomStringUtils.random(7, true, false))); + } + + for (long i = 0; i < list2Size; i++) { + employeeList2.add(new Employee(i, RandomStringUtils.random(7, true, false))); + } + + } + + } + + @Benchmark + public boolean given_SizeOfHashsetGreaterThanSizeOfCollection_When_RemoveAllFromHashSet_Then_GoodPerformance(MyState state) { + return state.employeeSet1.removeAll(state.employeeList1); + } + + @Benchmark + public boolean given_SizeOfHashsetSmallerThanSizeOfCollection_When_RemoveAllFromHashSet_Then_BadPerformance(MyState state) { + return state.employeeSet2.removeAll(state.employeeList2); + } + + public static void main(String[] args) throws Exception { + Options options = new OptionsBuilder().include(HashSetBenchmark.class.getSimpleName()) + .threads(1) + .forks(1) + .shouldFailOnError(true) + .shouldDoGC(true) + .jvmArgs("-server") + .build(); + new Runner(options).run(); + } + +} \ No newline at end of file diff --git a/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashset/HashSetUnitTest.java b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashset/HashSetUnitTest.java new file mode 100644 index 0000000000..1c23538675 --- /dev/null +++ b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashset/HashSetUnitTest.java @@ -0,0 +1,33 @@ +package com.baeldung.collections.hashset; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +class HashSetUnitTest { + + @Test + void whenRemoveAllFromHashset_thenRemovesAllElementsFromHashsetThatArePresentInCollection() { + Set set = new HashSet<>(); + Collection collection = new ArrayList<>(); + set.add(1); + set.add(2); + set.add(3); + set.add(4); + collection.add(1); + collection.add(3); + + set.removeAll(collection); + + assertEquals(2, set.size()); + Integer[] actualElements = new Integer[set.size()]; + Integer[] expectedElements = new Integer[] { 2, 4 }; + assertArrayEquals(expectedElements, set.toArray(actualElements)); + } + +}