From d0c619a0ad084433514d9b36ddf679b55db91c9b Mon Sep 17 00:00:00 2001 From: shreyashthakare Date: Tue, 17 Jul 2018 00:32:13 +0530 Subject: [PATCH 01/22] BAEL-1960: Custom appender for log4j --- logging-modules/log4j2/pom.xml | 219 +++++++++--------- .../logging/log4j2/appender/MapAppender.java | 58 +++++ .../appender/MapAppenderIntegrationTest.java | 35 +++ .../log4j2/src/test/resources/log4j2.xml | 174 +++++++------- 4 files changed, 297 insertions(+), 189 deletions(-) create mode 100644 logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java create mode 100644 logging-modules/log4j2/src/test/java/com/baeldung/logging/log4j2/appender/MapAppenderIntegrationTest.java diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml index 89d37e789c..b577931f0f 100644 --- a/logging-modules/log4j2/pom.xml +++ b/logging-modules/log4j2/pom.xml @@ -1,117 +1,126 @@ - - 4.0.0 - log4j2 + + 4.0.0 + log4j2 - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../../ - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../../ + - - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - + + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - + + + org.apache.logging.log4j + log4j-api + ${log4j-core.version} + - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - ${jackson.version} - - - - com.h2database - h2 - ${h2.version} - - - org.apache.commons - commons-dbcp2 - ${commons-dbcp2.version} - + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - test-jar - test - - + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - none - - - - + + + com.h2database + h2 + ${h2.version} + + + org.apache.commons + commons-dbcp2 + ${commons-dbcp2.version} + - - - integration - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - - - - - - - json - ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json - - - - - - - + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + test-jar + test + + - - 2.9.5 - 1.4.193 - 2.1.1 - 2.11.0 - yyyyMMddHHmmss - + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + none + + + + + + + + integration + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + + + + json + ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json + + + + + + + + + + 2.9.5 + 1.4.193 + 2.1.1 + 2.11.0 + yyyyMMddHHmmss + diff --git a/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java b/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java new file mode 100644 index 0000000000..160ba58395 --- /dev/null +++ b/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java @@ -0,0 +1,58 @@ +/** + * + */ +package com.baeldung.logging.log4j2.appender; + +import java.io.Serializable; +import java.time.Instant; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import org.apache.logging.log4j.core.Appender; +import org.apache.logging.log4j.core.Core; +import org.apache.logging.log4j.core.Filter; +import org.apache.logging.log4j.core.Layout; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.appender.AbstractAppender; +import org.apache.logging.log4j.core.config.plugins.Plugin; +import org.apache.logging.log4j.core.config.plugins.PluginAttribute; +import org.apache.logging.log4j.core.config.plugins.PluginElement; +import org.apache.logging.log4j.core.config.plugins.PluginFactory; +import org.apache.logging.log4j.core.layout.PatternLayout; + +@Plugin(name = "MapAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE, printObject = true) +public class MapAppender extends AbstractAppender { + + private ConcurrentMap eventMap = new ConcurrentHashMap<>(); + + protected MapAppender(String name, Filter filter, Layout layout) { + super(name, filter, layout); + } + + @PluginFactory + public static MapAppender createAppender(@PluginAttribute("name") String name, @PluginElement("Layout") Layout layout, @PluginElement("Filter") final Filter filter) { + if (name == null) { + LOGGER.error("No name provided for MapAppender"); + return null; + } + if (layout == null) { + layout = PatternLayout.createDefaultLayout(); + } + return new MapAppender(name, filter, layout); + } + + @Override + public void append(LogEvent event) { + eventMap.put(Instant.now() + .toString(), event); + } + + public ConcurrentMap getEventMap() { + return eventMap; + } + + public void setEventMap(ConcurrentMap eventMap) { + this.eventMap = eventMap; + } + +} diff --git a/logging-modules/log4j2/src/test/java/com/baeldung/logging/log4j2/appender/MapAppenderIntegrationTest.java b/logging-modules/log4j2/src/test/java/com/baeldung/logging/log4j2/appender/MapAppenderIntegrationTest.java new file mode 100644 index 0000000000..020aaafc74 --- /dev/null +++ b/logging-modules/log4j2/src/test/java/com/baeldung/logging/log4j2/appender/MapAppenderIntegrationTest.java @@ -0,0 +1,35 @@ +package com.baeldung.logging.log4j2.appender; + +import static org.junit.Assert.assertEquals; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public class MapAppenderIntegrationTest { + + private Logger logger; + + @Before + public void setup() { + logger = LogManager.getLogger(MapAppenderIntegrationTest.class); + } + + @Test + public void whenLoggerEmitsLoggingEvent_thenAppenderReceivesEvent() throws Exception { + logger.info("Test from {}", this.getClass() + .getSimpleName()); + LoggerContext context = LoggerContext.getContext(false); + Configuration config = context.getConfiguration(); + MapAppender appender = config.getAppender("MapAppender"); + assertEquals(appender.getEventMap() + .size(), 1); + } + +} diff --git a/logging-modules/log4j2/src/test/resources/log4j2.xml b/logging-modules/log4j2/src/test/resources/log4j2.xml index 83b664a507..d0fd0d088f 100644 --- a/logging-modules/log4j2/src/test/resources/log4j2.xml +++ b/logging-modules/log4j2/src/test/resources/log4j2.xml @@ -1,87 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + packages="com.baeldung" status="WARN"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 380dce8e6e629c7546222cd07ede44099c58608e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Jul 2018 00:21:47 +0530 Subject: [PATCH 02/22] Changes as per suggestion to BAEL-1960 --- .../logging/log4j2/appender/MapAppender.java | 26 ++++++++----------- .../log4j2/src/test/resources/log4j2.xml | 5 +--- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java b/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java index 160ba58395..e9c025f480 100644 --- a/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java +++ b/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java @@ -3,46 +3,42 @@ */ package com.baeldung.logging.log4j2.appender; -import java.io.Serializable; import java.time.Instant; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Core; import org.apache.logging.log4j.core.Filter; -import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.appender.AbstractAppender; import org.apache.logging.log4j.core.config.plugins.Plugin; import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.PluginFactory; -import org.apache.logging.log4j.core.layout.PatternLayout; -@Plugin(name = "MapAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE, printObject = true) +@Plugin(name = "MapAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE, printObject = false) public class MapAppender extends AbstractAppender { private ConcurrentMap eventMap = new ConcurrentHashMap<>(); - protected MapAppender(String name, Filter filter, Layout layout) { - super(name, filter, layout); + protected MapAppender(String name, Filter filter) { + super(name, filter, null); } @PluginFactory - public static MapAppender createAppender(@PluginAttribute("name") String name, @PluginElement("Layout") Layout layout, @PluginElement("Filter") final Filter filter) { - if (name == null) { - LOGGER.error("No name provided for MapAppender"); - return null; - } - if (layout == null) { - layout = PatternLayout.createDefaultLayout(); - } - return new MapAppender(name, filter, layout); + public static MapAppender createAppender(@PluginAttribute("name") String name, @PluginElement("Filter") final Filter filter) { + return new MapAppender(name, filter); } @Override public void append(LogEvent event) { + if (event.getLevel() + .isLessSpecificThan(Level.WARN)) { + error("Unable to log less than WARN level."); + return; + } eventMap.put(Instant.now() .toString(), event); } diff --git a/logging-modules/log4j2/src/test/resources/log4j2.xml b/logging-modules/log4j2/src/test/resources/log4j2.xml index d0fd0d088f..eefa00e1ba 100644 --- a/logging-modules/log4j2/src/test/resources/log4j2.xml +++ b/logging-modules/log4j2/src/test/resources/log4j2.xml @@ -51,10 +51,7 @@ - - - + Date: Wed, 25 Jul 2018 23:24:03 +0530 Subject: [PATCH 03/22] Changes as [er review for BAEL-1960 --- logging-modules/log4j2/pom.xml | 216 +++++++++--------- .../logging/log4j2/appender/MapAppender.java | 2 +- 2 files changed, 108 insertions(+), 110 deletions(-) diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml index b577931f0f..9d8a523462 100644 --- a/logging-modules/log4j2/pom.xml +++ b/logging-modules/log4j2/pom.xml @@ -1,25 +1,24 @@ - - 4.0.0 - log4j2 + + 4.0.0 + log4j2 - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../../ - - - - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../../ + + + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + + org.apache.logging.log4j @@ -27,100 +26,99 @@ ${log4j-core.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - ${jackson.version} - + + + com.h2database + h2 + ${h2.version} + + + org.apache.commons + commons-dbcp2 + ${commons-dbcp2.version} + - - - com.h2database - h2 - ${h2.version} - - - org.apache.commons - commons-dbcp2 - ${commons-dbcp2.version} - + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + test-jar + test + + - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - test-jar - test - - + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + none + + + + - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - none - - - - + + + integration + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + + + + json + ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json + + + + + + + - - - integration - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - - - - - - - json - ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json - - - - - - - + + 2.9.5 + 1.4.193 + 2.1.1 + 2.11.0 + yyyyMMddHHmmss + - - 2.9.5 - 1.4.193 - 2.1.1 - 2.11.0 - yyyyMMddHHmmss - - - + \ No newline at end of file diff --git a/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java b/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java index e9c025f480..2015b6d573 100644 --- a/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java +++ b/logging-modules/log4j2/src/main/java/com/baeldung/logging/log4j2/appender/MapAppender.java @@ -18,7 +18,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.PluginFactory; -@Plugin(name = "MapAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE, printObject = false) +@Plugin(name = "MapAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE) public class MapAppender extends AbstractAppender { private ConcurrentMap eventMap = new ConcurrentHashMap<>(); From 73bd03a331ac2e6f2e6b1e7e9263fe81b275ca6a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Jul 2018 23:27:14 +0530 Subject: [PATCH 04/22] Changes for formatting as per suggestion. --- logging-modules/log4j2/pom.xml | 213 +++++++++++++++++---------------- 1 file changed, 107 insertions(+), 106 deletions(-) diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml index 9d8a523462..f6b3fea227 100644 --- a/logging-modules/log4j2/pom.xml +++ b/logging-modules/log4j2/pom.xml @@ -1,24 +1,25 @@ - - 4.0.0 - log4j2 + + 4.0.0 + log4j2 - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../../ - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../../ + + + + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + - - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - - org.apache.logging.log4j @@ -26,99 +27,99 @@ ${log4j-core.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - ${jackson.version} - + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + - - - com.h2database - h2 - ${h2.version} - - - org.apache.commons - commons-dbcp2 - ${commons-dbcp2.version} - + + + com.h2database + h2 + ${h2.version} + + + org.apache.commons + commons-dbcp2 + ${commons-dbcp2.version} + - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - test-jar - test - - + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + test-jar + test + + - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - none - - - - + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + none + + + + - - - integration - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - - - - - - - json - ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json - - - - - - - + + + integration + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + + + + json + ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json + + + + + + + - - 2.9.5 - 1.4.193 - 2.1.1 - 2.11.0 - yyyyMMddHHmmss - + + 2.9.5 + 1.4.193 + 2.1.1 + 2.11.0 + yyyyMMddHHmmss + \ No newline at end of file From 74787e9026ef52645fcc3178869624b91bfee6c6 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Jul 2018 23:30:08 +0530 Subject: [PATCH 05/22] BAEL-1960. Copied pom.xml from master and pasted my changes against it. --- logging-modules/log4j2/pom.xml | 213 ++++++++++++++++----------------- 1 file changed, 106 insertions(+), 107 deletions(-) diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml index f6b3fea227..9d8a523462 100644 --- a/logging-modules/log4j2/pom.xml +++ b/logging-modules/log4j2/pom.xml @@ -1,25 +1,24 @@ - - 4.0.0 - log4j2 + + 4.0.0 + log4j2 - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../../ - - - - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../../ + + + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + + org.apache.logging.log4j @@ -27,99 +26,99 @@ ${log4j-core.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - ${jackson.version} - + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + - - - com.h2database - h2 - ${h2.version} - - - org.apache.commons - commons-dbcp2 - ${commons-dbcp2.version} - + + + com.h2database + h2 + ${h2.version} + + + org.apache.commons + commons-dbcp2 + ${commons-dbcp2.version} + - - - org.apache.logging.log4j - log4j-core - ${log4j-core.version} - test-jar - test - - + + + org.apache.logging.log4j + log4j-core + ${log4j-core.version} + test-jar + test + + - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - none - - - - + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + none + + + + - - - integration - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - - - - - - - json - ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json - - - - - - - + + + integration + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + + + + json + ${java.io.tmpdir}/${maven.build.timestamp}/logfile.json + + + + + + + - - 2.9.5 - 1.4.193 - 2.1.1 - 2.11.0 - yyyyMMddHHmmss - + + 2.9.5 + 1.4.193 + 2.1.1 + 2.11.0 + yyyyMMddHHmmss + \ No newline at end of file From cd4dbef187d546940ed816c685d84d54b18f6ccf Mon Sep 17 00:00:00 2001 From: root Date: Thu, 26 Jul 2018 12:49:30 +0530 Subject: [PATCH 06/22] Chnages for spaces instead of tabs. --- logging-modules/log4j2/pom.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml index 9d8a523462..65da318636 100644 --- a/logging-modules/log4j2/pom.xml +++ b/logging-modules/log4j2/pom.xml @@ -19,12 +19,12 @@ ${log4j-core.version} - - - org.apache.logging.log4j - log4j-api - ${log4j-core.version} - + + + org.apache.logging.log4j + log4j-api + ${log4j-core.version} + From 2f0b1b46c9feb66ecc7ec622f03626bf824352a3 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 26 Jul 2018 12:54:28 +0530 Subject: [PATCH 07/22] Changes for spaces instead of tabs. --- .../log4j2/src/test/resources/log4j2.xml | 175 +++++++++--------- 1 file changed, 87 insertions(+), 88 deletions(-) diff --git a/logging-modules/log4j2/src/test/resources/log4j2.xml b/logging-modules/log4j2/src/test/resources/log4j2.xml index eefa00e1ba..246ffb0707 100644 --- a/logging-modules/log4j2/src/test/resources/log4j2.xml +++ b/logging-modules/log4j2/src/test/resources/log4j2.xml @@ -1,90 +1,89 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From b7355cbab0ffb30287ca3ec2674ef19c9a9fd0e7 Mon Sep 17 00:00:00 2001 From: Carlo Corti Date: Mon, 6 Aug 2018 23:38:54 +0200 Subject: [PATCH 08/22] BAEL-1843 - JUnit4 -> JUnit5 migration guide (#4816) * Added code for the migration from JUnit 4 to JUnit 5 * Add example for Rule migration support * Add fix to access modifiers to test methods * Remove wrong header * Add junit5-migration module and its code snippets * Add module configuration to pom * Remove test classes that were added for the migration from JUnit 4 to JUnit 5 article (moved under correct module) --- pom.xml | 1 + testing-modules/junit-5/pom.xml | 6 ++ .../java/com/baeldung/AssertionUnitTest.java | 4 + .../java/com/baeldung/NestedUnitTest.java | 6 +- .../junit5}/AssumptionUnitTest.java | 12 +-- testing-modules/junit5-migration/README.md | 3 + testing-modules/junit5-migration/pom.xml | 90 +++++++++++++++++++ .../junit4/AnnotationTestExampleUnitTest.java | 22 +++++ .../baeldung/junit4/AssertionUnitTest.java | 36 ++++++++ .../com/baeldung/junit4/AssumeUnitTest.java | 23 +++++ .../junit4/ExceptionAssertionUnitTest.java | 24 +++++ .../baeldung/junit4/RuleExampleUnitTest.java | 16 ++++ .../junit4/TestAnnotationsUnitTest.java | 34 +++++++ .../baeldung/junit4/TraceUnitTestRule.java | 35 ++++++++ .../junit4/categories/Annotations.java | 5 ++ .../junit4/categories/JUnit4UnitTest.java | 5 ++ .../junit5/AnnotationTestExampleUnitTest.java | 28 ++++++ .../baeldung/junit5/AssertionUnitTest.java | 40 +++++++++ .../baeldung/junit5/AssumptionUnitTest.java | 27 ++++++ .../junit5/ConditionalExecutionUnitTest.java | 69 ++++++++++++++ .../com/baeldung/junit5/NestedUnitTest.java | 77 ++++++++++++++++ .../baeldung/junit5/RuleExampleUnitTest.java | 17 ++++ .../junit5/RuleMigrationSupportUnitTest.java | 27 ++++++ .../junit5/TestAnnotationsUnitTest.java | 39 ++++++++ .../baeldung/junit5/TraceUnitExtension.java | 19 ++++ 25 files changed, 656 insertions(+), 9 deletions(-) rename testing-modules/junit-5/src/test/java/com/baeldung/{ => migration/junit5}/AssumptionUnitTest.java (69%) create mode 100644 testing-modules/junit5-migration/README.md create mode 100644 testing-modules/junit5-migration/pom.xml create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AnnotationTestExampleUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssertionUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssumeUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/ExceptionAssertionUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/RuleExampleUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TestAnnotationsUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TraceUnitTestRule.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/Annotations.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/JUnit4UnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AnnotationTestExampleUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssertionUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssumptionUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/ConditionalExecutionUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/NestedUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleExampleUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleMigrationSupportUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TestAnnotationsUnitTest.java create mode 100644 testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TraceUnitExtension.java diff --git a/pom.xml b/pom.xml index 34b55fd1f4..e120620c30 100644 --- a/pom.xml +++ b/pom.xml @@ -905,6 +905,7 @@ json jsoup testing-modules/junit-5 + testing-modules/junit5-migration jws libraries-data linkrest diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml index 2ef290a7c1..f9ea34ca72 100644 --- a/testing-modules/junit-5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -33,6 +33,12 @@ ${junit.vintage.version} test + + org.junit.jupiter + junit-jupiter-migrationsupport + ${junit.vintage.version} + test + org.apache.logging.log4j log4j-core diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/AssertionUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/AssertionUnitTest.java index 79ba882205..31b6e14d6c 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/AssertionUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/AssertionUnitTest.java @@ -11,14 +11,17 @@ import java.util.Optional; import java.util.function.BooleanSupplier; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; /** * Unit test that demonstrate the different assertions available within JUnit 4 */ +@DisplayName("Test case for assertions") public class AssertionUnitTest { @Test + @DisplayName("Arrays should be equals") public void whenAssertingArraysEquality_thenEqual() { char[] expected = {'J', 'u', 'p', 'i', 't', 'e', 'r'}; char[] actual = "Jupiter".toCharArray(); @@ -27,6 +30,7 @@ public class AssertionUnitTest { } @Test + @DisplayName("The area of two polygons should be equal") public void whenAssertingEquality_thenEqual() { float square = 2 * 2; float rectangle = 2 * 2; diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/NestedUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/NestedUnitTest.java index 7586a2f51a..299cac2480 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/NestedUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/NestedUnitTest.java @@ -10,13 +10,13 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; public class NestedUnitTest { + Stack stack; - boolean isRun = false; @Test @DisplayName("is instantiated with new Stack()") void isInstantiatedWithNew() { - new Stack(); + new Stack<>(); } @Nested @@ -25,7 +25,7 @@ public class NestedUnitTest { @BeforeEach void init() { - stack = new Stack(); + stack = new Stack<>(); } @Test diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/AssumptionUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AssumptionUnitTest.java similarity index 69% rename from testing-modules/junit-5/src/test/java/com/baeldung/AssumptionUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AssumptionUnitTest.java index 7d67d93486..80201a3f44 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/AssumptionUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AssumptionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.migration.junit5; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assumptions.assumeFalse; @@ -10,19 +10,19 @@ import org.junit.jupiter.api.Test; public class AssumptionUnitTest { @Test - void trueAssumption() { - assumeTrue(5 > 1); + public void trueAssumption() { + assumeTrue(5 > 1, () -> "5 is greater the 1"); assertEquals(5 + 2, 7); } @Test - void falseAssumption() { - assumeFalse(5 < 1); + public void falseAssumption() { + assumeFalse(5 < 1, () -> "5 is less then 1"); assertEquals(5 + 2, 7); } @Test - void assumptionThat() { + public void assumptionThat() { String someString = "Just a string"; assumingThat(someString.equals("Just a string"), () -> assertEquals(2 + 2, 4)); } diff --git a/testing-modules/junit5-migration/README.md b/testing-modules/junit5-migration/README.md new file mode 100644 index 0000000000..5fe7fc1f16 --- /dev/null +++ b/testing-modules/junit5-migration/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: +- [JUnit4 -> JUnit5 migration guide](http://www.baeldung.com/junit4-junit5-migration-guide) + diff --git a/testing-modules/junit5-migration/pom.xml b/testing-modules/junit5-migration/pom.xml new file mode 100644 index 0000000000..ae46b479bb --- /dev/null +++ b/testing-modules/junit5-migration/pom.xml @@ -0,0 +1,90 @@ + + + + 4.0.0 + + junit5-migration + 1.0-SNAPSHOT + junit5-migration + JUnit 4 -> JUnit 5 migration + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../../ + + + + + org.junit.platform + junit-platform-engine + ${junit.platform.version} + + + org.junit.platform + junit-platform-runner + ${junit.platform.version} + test + + + org.junit.vintage + junit-vintage-engine + ${junit.vintage.version} + test + + + org.junit.jupiter + junit-jupiter-migrationsupport + ${junit.vintage.version} + test + + + + + + + src/test/resources + true + + + + + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.junit.platform + junit-platform-surefire-provider + ${junit.platform.version} + + + + + org.codehaus.mojo + exec-maven-plugin + ${exec-maven-plugin.version} + + + + java + + + + + com.baeldung.TestLauncher + + + + + + + 5.1.0 + 1.1.0 + 5.2.0 + 2.19.1 + 1.6.0 + + + diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AnnotationTestExampleUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AnnotationTestExampleUnitTest.java new file mode 100644 index 0000000000..a5f5c19c65 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AnnotationTestExampleUnitTest.java @@ -0,0 +1,22 @@ +package com.baeldung.junit4; + +import com.baeldung.junit4.categories.Annotations; +import com.baeldung.junit4.categories.JUnit4UnitTest; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(value = { Annotations.class, JUnit4UnitTest.class }) +public class AnnotationTestExampleUnitTest { + @Test(expected = Exception.class) + public void shouldRaiseAnException() throws Exception { + throw new Exception("This is my expected exception"); + } + + @Test(timeout = 1) + @Ignore + public void shouldFailBecauseTimeout() throws InterruptedException { + Thread.sleep(10); + } + +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssertionUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssertionUnitTest.java new file mode 100644 index 0000000000..8979c9ecbc --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssertionUnitTest.java @@ -0,0 +1,36 @@ +package com.baeldung.junit4; + +import org.junit.Assert; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.hamcrest.CoreMatchers.hasItems; +import static org.junit.Assert.*; +import static org.junit.Assert.assertArrayEquals; + +@DisplayName("Test case for assertions") +public class AssertionUnitTest { + + @Test + @DisplayName("Arrays should be equals") + public void whenAssertingArraysEquality_thenEqual() { + char[] expected = {'J', 'u', 'p', 'i', 't', 'e', 'r'}; + char[] actual = "Jupiter".toCharArray(); + + assertArrayEquals("Arrays should be equal", expected, actual); + } + + @Test + public void givenMultipleAssertion_whenAssertingAll_thenOK() { + assertEquals("4 is 2 times 2", 4, 2 * 2); + assertEquals("java", "JAVA".toLowerCase()); + assertEquals("null is equal to null", null, null); + } + + @Test + public void testAssertThatHasItems() { + assertThat(Arrays.asList("Java", "Kotlin", "Scala"), hasItems("Java", "Kotlin")); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssumeUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssumeUnitTest.java new file mode 100644 index 0000000000..f7730a3dd8 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/AssumeUnitTest.java @@ -0,0 +1,23 @@ +package com.baeldung.junit4; + + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assume.assumeFalse; +import static org.junit.Assume.assumeTrue; + +public class AssumeUnitTest { + + @Test + public void trueAssumption() { + assumeTrue("5 is greater the 1", 5 > 1); + assertEquals(5 + 2, 7); + } + + @Test + public void falseAssumption() { + assumeFalse("5 is less then 1", 5 < 1); + assertEquals(5 + 2, 7); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/ExceptionAssertionUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/ExceptionAssertionUnitTest.java new file mode 100644 index 0000000000..38e7f640a2 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/ExceptionAssertionUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.junit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +public class ExceptionAssertionUnitTest { + + @Rule + public ExpectedException exceptionRule = ExpectedException.none(); + + @Test(expected = NullPointerException.class) + public void whenExceptionThrown_thenExpectationSatisfied() { + String test = null; + test.length(); + } + + @Test + public void whenExceptionThrown_thenRuleIsApplied() { + exceptionRule.expect(NumberFormatException.class); + exceptionRule.expectMessage("For input string"); + Integer.parseInt("1a"); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/RuleExampleUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/RuleExampleUnitTest.java new file mode 100644 index 0000000000..35f96b4f6a --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/RuleExampleUnitTest.java @@ -0,0 +1,16 @@ +package com.baeldung.junit4; + +import org.junit.Rule; +import org.junit.Test; + +public class RuleExampleUnitTest { + + @Rule + public final TraceUnitTestRule traceRuleTests = new TraceUnitTestRule(); + + @Test + public void whenTracingTests() { + System.out.println("This is my test"); + /*...*/ + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TestAnnotationsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TestAnnotationsUnitTest.java new file mode 100644 index 0000000000..89c33cafe6 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TestAnnotationsUnitTest.java @@ -0,0 +1,34 @@ +package com.baeldung.junit4; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; + +import java.util.logging.Logger; + +public class TestAnnotationsUnitTest { + + private static final Logger log = Logger.getLogger(TestAnnotationsUnitTest.class.getName()); + + @BeforeClass + static void setup() { + log.info("@BeforeAll - executes once before all test methods in this class"); + } + + @Before + void init() { + log.info("@BeforeEach - executes before each test method in this class"); + } + + @After + void tearDown() { + log.info("@AfterEach - executed after each test method."); + } + + @AfterClass + static void done() { + log.info("@AfterAll - executed after all test methods."); + } + +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TraceUnitTestRule.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TraceUnitTestRule.java new file mode 100644 index 0000000000..9f4811da3d --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/TraceUnitTestRule.java @@ -0,0 +1,35 @@ +package com.baeldung.junit4; + +import org.junit.rules.TestRule; +import org.junit.runner.Description; +import org.junit.runners.model.MultipleFailureException; +import org.junit.runners.model.Statement; + +import java.util.ArrayList; +import java.util.List; + +public class TraceUnitTestRule implements TestRule { + + @Override + public Statement apply(Statement base, Description description) { + + return new Statement() { + @Override + public void evaluate() throws Throwable { + List errors = new ArrayList(); + + System.out.println("Starting test ... " + description.getMethodName()); + try { + base.evaluate(); + } catch (Throwable e) { + errors.add(e); + } finally { + System.out.println("... test finished. " + description.getMethodName()); + } + + MultipleFailureException.assertEmpty(errors); + } + }; + } + +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/Annotations.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/Annotations.java new file mode 100644 index 0000000000..22214d95b6 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/Annotations.java @@ -0,0 +1,5 @@ +package com.baeldung.junit4.categories; + +public interface Annotations { + +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/JUnit4UnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/JUnit4UnitTest.java new file mode 100644 index 0000000000..a7474d5f24 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit4/categories/JUnit4UnitTest.java @@ -0,0 +1,5 @@ +package com.baeldung.junit4.categories; + +public interface JUnit4UnitTest { + +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AnnotationTestExampleUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AnnotationTestExampleUnitTest.java new file mode 100644 index 0000000000..16de0be9d8 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AnnotationTestExampleUnitTest.java @@ -0,0 +1,28 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +import java.time.Duration; + +@Tag("annotations") +@Tag("junit5") +@RunWith(JUnitPlatform.class) +public class AnnotationTestExampleUnitTest { + @Test + public void shouldRaiseAnException() throws Exception { + Assertions.assertThrows(Exception.class, () -> { + throw new Exception("This is my expected exception"); + }); + } + + @Test + @Disabled + public void shouldFailBecauseTimeout() throws InterruptedException { + Assertions.assertTimeout(Duration.ofMillis(1), () -> Thread.sleep(10)); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssertionUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssertionUnitTest.java new file mode 100644 index 0000000000..d1d08c6e62 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssertionUnitTest.java @@ -0,0 +1,40 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertAll; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@DisplayName("Test case for assertions") +public class AssertionUnitTest { + + @Test + @DisplayName("Arrays should be equals") + public void whenAssertingArraysEquality_thenEqual() { + char[] expected = {'J', 'u', 'p', 'i', 't', 'e', 'r'}; + char[] actual = "Jupiter".toCharArray(); + + assertArrayEquals(expected, actual, "Arrays should be equal"); + } + + @Test + @DisplayName("The area of two polygons should be equal") + public void whenAssertingEquality_thenEqual() { + float square = 2 * 2; + float rectangle = 2 * 2; + + assertEquals(square, rectangle); + } + + @Test + public void givenMultipleAssertion_whenAssertingAll_thenOK() { + assertAll( + "heading", + () -> assertEquals(4, 2 * 2, "4 is 2 times 2"), + () -> assertEquals("java", "JAVA".toLowerCase()), + () -> assertEquals(null, null, "null is equal to null") + ); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssumptionUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssumptionUnitTest.java new file mode 100644 index 0000000000..4f3d827403 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/AssumptionUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assumptions.*; + +public class AssumptionUnitTest { + + @Test + public void trueAssumption() { + assumeTrue(5 > 1, () -> "5 is greater the 1"); + assertEquals(5 + 2, 7); + } + + @Test + public void falseAssumption() { + assumeFalse(5 < 1, () -> "5 is less then 1"); + assertEquals(5 + 2, 7); + } + + @Test + public void assumptionThat() { + String someString = "Just a string"; + assumingThat(someString.equals("Just a string"), () -> assertEquals(2 + 2, 4)); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/ConditionalExecutionUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/ConditionalExecutionUnitTest.java new file mode 100644 index 0000000000..7f76e237f1 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/ConditionalExecutionUnitTest.java @@ -0,0 +1,69 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.*; + +import static org.junit.jupiter.api.Assertions.*; + +public class ConditionalExecutionUnitTest { + + @Test + @EnabledOnOs({OS.MAC}) + void whenOperatingSystemIsMac_thenTestIsEnabled() { + assertEquals(5 + 2, 7); + } + + @Test + @DisabledOnOs({OS.WINDOWS}) + void whenOperatingSystemIsWindows_thenTestIsDisabled() { + assertEquals(5 + 2, 7); + } + + @Test + @EnabledOnJre({JRE.JAVA_8}) + void whenRunningTestsOnJRE8_thenTestIsEnabled() { + assertTrue(5 > 4, "5 is greater the 4"); + assertTrue(null == null, "null is equal to null"); + } + + @Test + @DisabledOnJre({JRE.JAVA_10}) + void whenRunningTestsOnJRE10_thenTestIsDisabled() { + assertTrue(5 > 4, "5 is greater the 4"); + assertTrue(null == null, "null is equal to null"); + } + + @Test + @EnabledIfSystemProperty(named = "os.arch", matches = ".*64.*") + public void whenRunningTestsOn64BitArchitectures_thenTestIsDisabled() { + Integer value = 5; // result of an algorithm + + assertNotEquals(0, value, "The result cannot be 0"); + } + + @Test + @DisabledIfSystemProperty(named = "ci-server", matches = "true") + public void whenRunningTestsOnCIServer_thenTestIsDisabled() { + Integer value = 5; // result of an algorithm + + assertNotEquals(0, value, "The result cannot be 0"); + } + + @Test + @EnabledIfEnvironmentVariable(named = "ENV", matches = "staging-server") + public void whenRunningTestsStagingServer_thenTestIsEnabled() { + char[] expected = {'J', 'u', 'p', 'i', 't', 'e', 'r'}; + char[] actual = "Jupiter".toCharArray(); + + assertArrayEquals(expected, actual, "Arrays should be equal"); + } + + @Test + @DisabledIfEnvironmentVariable(named = "ENV", matches = ".*development.*") + public void whenRunningTestsDevelopmentEnvironment_thenTestIsDisabled() { + char[] expected = {'J', 'u', 'p', 'i', 't', 'e', 'r'}; + char[] actual = "Jupiter".toCharArray(); + + assertArrayEquals(expected, actual, "Arrays should be equal"); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/NestedUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/NestedUnitTest.java new file mode 100644 index 0000000000..9eeff471ba --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/NestedUnitTest.java @@ -0,0 +1,77 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.*; + +import java.util.EmptyStackException; +import java.util.Stack; + +public class NestedUnitTest { + + Stack stack; + + @Test + @DisplayName("is instantiated with new Stack()") + void isInstantiatedWithNew() { + new Stack<>(); + } + + @Nested + @DisplayName("when new") + class WhenNew { + + @BeforeEach + void init() { + stack = new Stack<>(); + } + + @Test + @DisplayName("is empty") + void isEmpty() { + Assertions.assertTrue(stack.isEmpty()); + } + + @Test + @DisplayName("throws EmptyStackException when popped") + void throwsExceptionWhenPopped() { + Assertions.assertThrows(EmptyStackException.class, () -> stack.pop()); + } + + @Test + @DisplayName("throws EmptyStackException when peeked") + void throwsExceptionWhenPeeked() { + Assertions.assertThrows(EmptyStackException.class, () -> stack.peek()); + } + + @Nested + @DisplayName("after pushing an element") + class AfterPushing { + + String anElement = "an element"; + + @BeforeEach + void init() { + stack.push(anElement); + } + + @Test + @DisplayName("it is no longer empty") + void isEmpty() { + Assertions.assertFalse(stack.isEmpty()); + } + + @Test + @DisplayName("returns the element when popped and is empty") + void returnElementWhenPopped() { + Assertions.assertEquals(anElement, stack.pop()); + Assertions.assertTrue(stack.isEmpty()); + } + + @Test + @DisplayName("returns the element when peeked but remains not empty") + void returnElementWhenPeeked() { + Assertions.assertEquals(anElement, stack.peek()); + Assertions.assertFalse(stack.isEmpty()); + } + } + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleExampleUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleExampleUnitTest.java new file mode 100644 index 0000000000..297d0f1730 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +@RunWith(JUnitPlatform.class) +@ExtendWith(TraceUnitExtension.class) +public class RuleExampleUnitTest { + + @Test + public void whenTracingTests() { + System.out.println("This is my test"); + /*...*/ + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleMigrationSupportUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleMigrationSupportUnitTest.java new file mode 100644 index 0000000000..bbaa42ec7b --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/RuleMigrationSupportUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.junit5; + +import org.junit.Rule; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport; +import org.junit.rules.ExpectedException; + +@EnableRuleMigrationSupport +public class RuleMigrationSupportUnitTest { + + @Rule + public ExpectedException exceptionRule = ExpectedException.none(); + + @Test + public void whenExceptionThrown_thenExpectationSatisfied() { + exceptionRule.expect(NullPointerException.class); + String test = null; + test.length(); + } + + @Test + public void whenExceptionThrown_thenRuleIsApplied() { + exceptionRule.expect(NumberFormatException.class); + exceptionRule.expectMessage("For input string"); + Integer.parseInt("1a"); + } +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TestAnnotationsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TestAnnotationsUnitTest.java new file mode 100644 index 0000000000..8daf952747 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TestAnnotationsUnitTest.java @@ -0,0 +1,39 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.*; + +import java.util.logging.Logger; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class TestAnnotationsUnitTest { + + private static final Logger log = Logger.getLogger(TestAnnotationsUnitTest.class.getName()); + + @BeforeAll + static void setup() { + log.info("@BeforeAll - executes once before all test methods in this class"); + } + + @BeforeEach + void init() { + log.info("@BeforeEach - executes before each test method in this class"); + } + + @Test + @Disabled + void disabledTest() { + assertTrue(false); + } + + @AfterEach + void tearDown() { + log.info("@AfterEach - executed after each test method."); + } + + @AfterAll + static void done() { + log.info("@AfterAll - executed after all test methods."); + } + +} diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TraceUnitExtension.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TraceUnitExtension.java new file mode 100644 index 0000000000..bd5ae47d63 --- /dev/null +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5/TraceUnitExtension.java @@ -0,0 +1,19 @@ +package com.baeldung.junit5; + +import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +public class TraceUnitExtension implements AfterEachCallback, BeforeEachCallback { + + @Override + public void beforeEach(ExtensionContext context) throws Exception { + System.out.println("Starting test ... " + context.getDisplayName()); + } + + @Override + public void afterEach(ExtensionContext context) throws Exception { + System.out.println("... test finished. " + context.getDisplayName()); + } + +} From 43f4ef8e3c8dea7780eccab965e43282ed5a4e3d Mon Sep 17 00:00:00 2001 From: RanjeetKaur17 Date: Tue, 3 Jul 2018 22:55:47 +0400 Subject: [PATCH 09/22] A simple Real Time streaming example with Spring Webflux. 1. Added an API to generate a real time stream returning numbers. 2. Added Test case to consume that API with a webTestClient. 3. Added a client to consume that API, over the network. --- .../pom.xml | 70 +++++++++++++++++ .../java/com/springwebflux/sample/Client.java | 29 +++++++ .../src/main/resources/application.properties | 1 + springflux-5-reactive-ranjeetkaur/pom.xml | 76 +++++++++++++++++++ .../springwebflux/controller/Controller.java | 28 +++++++ .../com/springwebflux/sample/Application.java | 17 +++++ .../src/main/resources/application.properties | 1 + .../sample/ApplicationTests.java | 36 +++++++++ 8 files changed, 258 insertions(+) create mode 100644 springflux-5-reactive-client-ranjeetkaur/pom.xml create mode 100644 springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java create mode 100644 springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties create mode 100644 springflux-5-reactive-ranjeetkaur/pom.xml create mode 100644 springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java create mode 100644 springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java create mode 100644 springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties create mode 100644 springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java diff --git a/springflux-5-reactive-client-ranjeetkaur/pom.xml b/springflux-5-reactive-client-ranjeetkaur/pom.xml new file mode 100644 index 0000000000..bb832ae055 --- /dev/null +++ b/springflux-5-reactive-client-ranjeetkaur/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + com.springboot + sample + 0.0.1-SNAPSHOT + jar + + client + SpringFlux Sample Client + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-webflux + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + --spring.profiles.active=dev + + + + + + + + + spring-releases + https://repo.spring.io/libs-release + + + + + spring-releases + https://repo.spring.io/libs-release + + + + diff --git a/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java b/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java new file mode 100644 index 0000000000..5846969803 --- /dev/null +++ b/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java @@ -0,0 +1,29 @@ +package com.springwebflux.sample; + +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.web.reactive.function.client.WebClient; + +/** + * @author ranjeetkaur + * + */ +@SpringBootApplication(scanBasePackages = "com.springwebflux.*") +@EnableAsync +public class Client { + + public static void main(String[] args) throws InterruptedException { + + WebClient webClient = WebClient.builder() + .baseUrl("http://localhost:8090") + .build(); + + webClient.get() + .uri("/v1/dice") + .retrieve() + .bodyToFlux(Integer.class) + .log(); + + Thread.sleep(10000); + } +} \ No newline at end of file diff --git a/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties b/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties new file mode 100644 index 0000000000..f667a68bc2 --- /dev/null +++ b/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties @@ -0,0 +1 @@ +server.port =8091 \ No newline at end of file diff --git a/springflux-5-reactive-ranjeetkaur/pom.xml b/springflux-5-reactive-ranjeetkaur/pom.xml new file mode 100644 index 0000000000..3fe4156360 --- /dev/null +++ b/springflux-5-reactive-ranjeetkaur/pom.xml @@ -0,0 +1,76 @@ + + + 4.0.0 + + com.springboot + sample + 0.0.1-SNAPSHOT + jar + + webflux-server + SpringFlux Sample Server + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-webflux + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + --spring.profiles.active=dev + + + + + + + + + spring-releases + https://repo.spring.io/libs-release + + + + + spring-releases + https://repo.spring.io/libs-release + + + + diff --git a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java new file mode 100644 index 0000000000..fa3070640e --- /dev/null +++ b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java @@ -0,0 +1,28 @@ +package com.springwebflux.controller; + +import java.time.Duration; +import java.util.Random; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import reactor.core.publisher.Flux; + +/** + * @author ranjeetkaur + * + */ +@RestController +@RequestMapping(value = "/v1") +public class Controller { + + private static Random random = new Random(); + + @GetMapping("/dice") + public Flux rollDice() { + return Flux.interval(Duration.ofSeconds(1)) + .map(pulse -> random.nextInt(5) + 1); + } + +} diff --git a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java new file mode 100644 index 0000000000..1641885f41 --- /dev/null +++ b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java @@ -0,0 +1,17 @@ +package com.springwebflux.sample; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author ranjeetkaur + * + */ +@SpringBootApplication(scanBasePackages = "com.springwebflux.*") +public class Application { + + public static void main(String[] args) { + + SpringApplication.run(Application.class, args); + } +} \ No newline at end of file diff --git a/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties b/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties new file mode 100644 index 0000000000..91f7491179 --- /dev/null +++ b/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties @@ -0,0 +1 @@ +server.port = 8090 \ No newline at end of file diff --git a/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java b/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java new file mode 100644 index 0000000000..ce09d9ae37 --- /dev/null +++ b/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java @@ -0,0 +1,36 @@ +package com.springwebflux.sample; + +import java.time.Duration; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.reactive.server.WebTestClient; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class ApplicationTests { + + @Autowired + private WebTestClient webTestClient; + + @Before + private void setUp() { + webTestClient = webTestClient.mutate() + .responseTimeout(Duration.ofMillis(10000)) + .build(); + } + + @Test + public void rollDice() throws InterruptedException { + webTestClient.get() + .uri("/v1/dice") + .exchange() + .expectStatus() + .isOk() + .expectBodyList(Integer.class); + } +} \ No newline at end of file From c9e901abbea965dd94113e2dc110652830da65f6 Mon Sep 17 00:00:00 2001 From: RanjeetKaur17 Date: Mon, 30 Jul 2018 23:48:50 +0400 Subject: [PATCH 10/22] Examples for Reading a file into an arraylist. 1. Using FileReader 2. Using BufferedReader 3. Using Scanner(String and int) 4. Using Files.readAllLines --- .../fileparser/BufferedReaderExample.java | 34 +++++++++++++++++ .../fileparser/FileReaderExample.java | 37 +++++++++++++++++++ .../fileparser/FilesReadLineExample.java | 28 ++++++++++++++ .../fileparser/ScannerIntExample.java | 34 +++++++++++++++++ .../fileparser/ScannerStringExample.java | 34 +++++++++++++++++ file-parser/src/resources/num.txt | 2 + file-parser/src/resources/txt.txt | 2 + 7 files changed, 171 insertions(+) create mode 100644 file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java create mode 100644 file-parser/src/com/baeldung/fileparser/FileReaderExample.java create mode 100644 file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java create mode 100644 file-parser/src/com/baeldung/fileparser/ScannerIntExample.java create mode 100644 file-parser/src/com/baeldung/fileparser/ScannerStringExample.java create mode 100644 file-parser/src/resources/num.txt create mode 100644 file-parser/src/resources/txt.txt diff --git a/file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java b/file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java new file mode 100644 index 0000000000..a139ed80ab --- /dev/null +++ b/file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java @@ -0,0 +1,34 @@ +package com.baeldung.fileparser; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; + +public class BufferedReaderExample { + + private static final String FILENAME = "src/resources/txt.txt"; + + public static void main(String[] args) { + try { + System.out.println(generateArrayListFromFile(FILENAME)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ArrayList generateArrayListFromFile(String filename) throws IOException { + + ArrayList result = new ArrayList<>(); + + try (BufferedReader br = new BufferedReader(new FileReader(filename))) { + + while (br.ready()) { + result.add(br.readLine()); + } + return result; + } + + } + +} diff --git a/file-parser/src/com/baeldung/fileparser/FileReaderExample.java b/file-parser/src/com/baeldung/fileparser/FileReaderExample.java new file mode 100644 index 0000000000..1ab98973c7 --- /dev/null +++ b/file-parser/src/com/baeldung/fileparser/FileReaderExample.java @@ -0,0 +1,37 @@ +package com.baeldung.fileparser; + +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; + +public class FileReaderExample { + + private static final String FILENAME = "src/resources/txt.txt"; + + public static void main(String[] args) { + try { + System.out.println(generateArrayListFromFile(FILENAME)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ArrayList generateArrayListFromFile(String filename) throws IOException { + + ArrayList result = new ArrayList<>(); + + try (FileReader f = new FileReader(filename)) { + + while (f.ready()) { + char c = (char) f.read(); + + if (c != ' ' && c != '\t' && c != '\n') { + result.add(c); + } + } + return result; + } + + } + +} diff --git a/file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java b/file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java new file mode 100644 index 0000000000..7f94525c22 --- /dev/null +++ b/file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java @@ -0,0 +1,28 @@ +package com.baeldung.fileparser; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +public class FilesReadLineExample { + + private static final String FILENAME = "src/resources/txt.txt"; + + public static void main(String[] args) { + try { + System.out.println(generateArrayListFromFile(FILENAME)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ArrayList generateArrayListFromFile(String filename) throws IOException { + + List result = Files.readAllLines(Paths.get(filename)); + + return (ArrayList) result; + } + +} diff --git a/file-parser/src/com/baeldung/fileparser/ScannerIntExample.java b/file-parser/src/com/baeldung/fileparser/ScannerIntExample.java new file mode 100644 index 0000000000..aab7455c30 --- /dev/null +++ b/file-parser/src/com/baeldung/fileparser/ScannerIntExample.java @@ -0,0 +1,34 @@ +package com.baeldung.fileparser; + +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Scanner; + +public class ScannerIntExample { + + private static final String FILENAME = "src/resources/num.txt"; + + public static void main(String[] args) { + try { + System.out.println(generateArrayListFromFile(FILENAME)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ArrayList generateArrayListFromFile(String filename) throws IOException { + + ArrayList result = new ArrayList<>(); + + try (Scanner s = new Scanner(new FileReader(filename))) { + + while (s.hasNext()) { + result.add(s.nextInt()); + } + return result; + } + + } + +} diff --git a/file-parser/src/com/baeldung/fileparser/ScannerStringExample.java b/file-parser/src/com/baeldung/fileparser/ScannerStringExample.java new file mode 100644 index 0000000000..fc18b53609 --- /dev/null +++ b/file-parser/src/com/baeldung/fileparser/ScannerStringExample.java @@ -0,0 +1,34 @@ +package com.baeldung.fileparser; + +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Scanner; + +public class ScannerStringExample { + + private static final String FILENAME = "src/resources/txt.txt"; + + public static void main(String[] args) { + try { + System.out.println(generateArrayListFromFile(FILENAME)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ArrayList generateArrayListFromFile(String filename) throws IOException { + + ArrayList result = new ArrayList<>(); + + try (Scanner s = new Scanner(new FileReader(filename))) { + + while (s.hasNext()) { + result.add(s.nextLine()); + } + return result; + } + + } + +} diff --git a/file-parser/src/resources/num.txt b/file-parser/src/resources/num.txt new file mode 100644 index 0000000000..7787faa3c1 --- /dev/null +++ b/file-parser/src/resources/num.txt @@ -0,0 +1,2 @@ +111 +222 \ No newline at end of file diff --git a/file-parser/src/resources/txt.txt b/file-parser/src/resources/txt.txt new file mode 100644 index 0000000000..75cb50aafa --- /dev/null +++ b/file-parser/src/resources/txt.txt @@ -0,0 +1,2 @@ +Hello +World \ No newline at end of file From c0fb463b89cb9839a66247b73ca766356c1a82f4 Mon Sep 17 00:00:00 2001 From: RanjeetKaur17 Date: Wed, 1 Aug 2018 10:12:20 +0400 Subject: [PATCH 11/22] Revert "A simple Real Time streaming example with Spring Webflux." This reverts commit b7d4a00dacdcddc877e1726832c4aeec378b6ed8. --- .../pom.xml | 70 ----------------- .../java/com/springwebflux/sample/Client.java | 29 ------- .../src/main/resources/application.properties | 1 - springflux-5-reactive-ranjeetkaur/pom.xml | 76 ------------------- .../springwebflux/controller/Controller.java | 28 ------- .../com/springwebflux/sample/Application.java | 17 ----- .../src/main/resources/application.properties | 1 - .../sample/ApplicationTests.java | 36 --------- 8 files changed, 258 deletions(-) delete mode 100644 springflux-5-reactive-client-ranjeetkaur/pom.xml delete mode 100644 springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java delete mode 100644 springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties delete mode 100644 springflux-5-reactive-ranjeetkaur/pom.xml delete mode 100644 springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java delete mode 100644 springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java delete mode 100644 springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties delete mode 100644 springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java diff --git a/springflux-5-reactive-client-ranjeetkaur/pom.xml b/springflux-5-reactive-client-ranjeetkaur/pom.xml deleted file mode 100644 index bb832ae055..0000000000 --- a/springflux-5-reactive-client-ranjeetkaur/pom.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - 4.0.0 - - com.springboot - sample - 0.0.1-SNAPSHOT - jar - - client - SpringFlux Sample Client - - - org.springframework.boot - spring-boot-starter-parent - 2.0.3.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-webflux - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - --spring.profiles.active=dev - - - - - - - - - spring-releases - https://repo.spring.io/libs-release - - - - - spring-releases - https://repo.spring.io/libs-release - - - - diff --git a/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java b/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java deleted file mode 100644 index 5846969803..0000000000 --- a/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.springwebflux.sample; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.web.reactive.function.client.WebClient; - -/** - * @author ranjeetkaur - * - */ -@SpringBootApplication(scanBasePackages = "com.springwebflux.*") -@EnableAsync -public class Client { - - public static void main(String[] args) throws InterruptedException { - - WebClient webClient = WebClient.builder() - .baseUrl("http://localhost:8090") - .build(); - - webClient.get() - .uri("/v1/dice") - .retrieve() - .bodyToFlux(Integer.class) - .log(); - - Thread.sleep(10000); - } -} \ No newline at end of file diff --git a/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties b/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties deleted file mode 100644 index f667a68bc2..0000000000 --- a/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -server.port =8091 \ No newline at end of file diff --git a/springflux-5-reactive-ranjeetkaur/pom.xml b/springflux-5-reactive-ranjeetkaur/pom.xml deleted file mode 100644 index 3fe4156360..0000000000 --- a/springflux-5-reactive-ranjeetkaur/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - 4.0.0 - - com.springboot - sample - 0.0.1-SNAPSHOT - jar - - webflux-server - SpringFlux Sample Server - - - org.springframework.boot - spring-boot-starter-parent - 2.0.3.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-webflux - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - --spring.profiles.active=dev - - - - - - - - - spring-releases - https://repo.spring.io/libs-release - - - - - spring-releases - https://repo.spring.io/libs-release - - - - diff --git a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java deleted file mode 100644 index fa3070640e..0000000000 --- a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.springwebflux.controller; - -import java.time.Duration; -import java.util.Random; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import reactor.core.publisher.Flux; - -/** - * @author ranjeetkaur - * - */ -@RestController -@RequestMapping(value = "/v1") -public class Controller { - - private static Random random = new Random(); - - @GetMapping("/dice") - public Flux rollDice() { - return Flux.interval(Duration.ofSeconds(1)) - .map(pulse -> random.nextInt(5) + 1); - } - -} diff --git a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java deleted file mode 100644 index 1641885f41..0000000000 --- a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.springwebflux.sample; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @author ranjeetkaur - * - */ -@SpringBootApplication(scanBasePackages = "com.springwebflux.*") -public class Application { - - public static void main(String[] args) { - - SpringApplication.run(Application.class, args); - } -} \ No newline at end of file diff --git a/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties b/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties deleted file mode 100644 index 91f7491179..0000000000 --- a/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -server.port = 8090 \ No newline at end of file diff --git a/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java b/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java deleted file mode 100644 index ce09d9ae37..0000000000 --- a/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.springwebflux.sample; - -import java.time.Duration; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.web.reactive.server.WebTestClient; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -public class ApplicationTests { - - @Autowired - private WebTestClient webTestClient; - - @Before - private void setUp() { - webTestClient = webTestClient.mutate() - .responseTimeout(Duration.ofMillis(10000)) - .build(); - } - - @Test - public void rollDice() throws InterruptedException { - webTestClient.get() - .uri("/v1/dice") - .exchange() - .expectStatus() - .isOk() - .expectBodyList(Integer.class); - } -} \ No newline at end of file From 840b0e1f9c7a58f281ba9fd7069ea97312982979 Mon Sep 17 00:00:00 2001 From: RanjeetKaur17 Date: Sat, 4 Aug 2018 16:45:02 +0400 Subject: [PATCH 12/22] Moving file parser inside the core-java module. Adding Test cases for reading files. --- .../fileparser/BufferedReaderExample.java | 12 +----- .../baeldung/fileparser/FileConstants.java | 8 ++++ .../fileparser/FileReaderExample.java | 31 ++++++++++++++++ .../fileparser/FilesReadLinesExample.java | 18 +++++++++ .../fileparser/ScannerIntExample.java | 12 +----- .../fileparser/ScannerStringExample.java | 12 +----- .../fileparser/BufferedReaderUnitTest.java | 19 ++++++++++ .../fileparser/FileReaderUnitTest.java | 19 ++++++++++ .../fileparser/FilesReadAllLinesUnitTest.java | 19 ++++++++++ .../fileparser/ScannerIntUnitTest.java | 19 ++++++++++ .../fileparser/ScannerStringUnitTest.java | 19 ++++++++++ .../src/test/resources/sampleNumberFile.txt | 2 + .../src/test/resources/sampleTextFile.txt | 2 + .../fileparser/FileReaderExample.java | 37 ------------------- .../fileparser/FilesReadLineExample.java | 28 -------------- 15 files changed, 159 insertions(+), 98 deletions(-) rename {file-parser/src => core-java/src/main/java}/com/baeldung/fileparser/BufferedReaderExample.java (54%) create mode 100644 core-java/src/main/java/com/baeldung/fileparser/FileConstants.java create mode 100644 core-java/src/main/java/com/baeldung/fileparser/FileReaderExample.java create mode 100644 core-java/src/main/java/com/baeldung/fileparser/FilesReadLinesExample.java rename {file-parser/src => core-java/src/main/java}/com/baeldung/fileparser/ScannerIntExample.java (53%) rename {file-parser/src => core-java/src/main/java}/com/baeldung/fileparser/ScannerStringExample.java (54%) create mode 100644 core-java/src/test/java/com/baeldung/fileparser/BufferedReaderUnitTest.java create mode 100644 core-java/src/test/java/com/baeldung/fileparser/FileReaderUnitTest.java create mode 100644 core-java/src/test/java/com/baeldung/fileparser/FilesReadAllLinesUnitTest.java create mode 100644 core-java/src/test/java/com/baeldung/fileparser/ScannerIntUnitTest.java create mode 100644 core-java/src/test/java/com/baeldung/fileparser/ScannerStringUnitTest.java create mode 100644 core-java/src/test/resources/sampleNumberFile.txt create mode 100644 core-java/src/test/resources/sampleTextFile.txt delete mode 100644 file-parser/src/com/baeldung/fileparser/FileReaderExample.java delete mode 100644 file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java diff --git a/file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java b/core-java/src/main/java/com/baeldung/fileparser/BufferedReaderExample.java similarity index 54% rename from file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java rename to core-java/src/main/java/com/baeldung/fileparser/BufferedReaderExample.java index a139ed80ab..45ff486a79 100644 --- a/file-parser/src/com/baeldung/fileparser/BufferedReaderExample.java +++ b/core-java/src/main/java/com/baeldung/fileparser/BufferedReaderExample.java @@ -7,18 +7,8 @@ import java.util.ArrayList; public class BufferedReaderExample { - private static final String FILENAME = "src/resources/txt.txt"; + protected static ArrayList generateArrayListFromFile(String filename) throws IOException { - public static void main(String[] args) { - try { - System.out.println(generateArrayListFromFile(FILENAME)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static ArrayList generateArrayListFromFile(String filename) throws IOException { - ArrayList result = new ArrayList<>(); try (BufferedReader br = new BufferedReader(new FileReader(filename))) { diff --git a/core-java/src/main/java/com/baeldung/fileparser/FileConstants.java b/core-java/src/main/java/com/baeldung/fileparser/FileConstants.java new file mode 100644 index 0000000000..1d3cce79f2 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/fileparser/FileConstants.java @@ -0,0 +1,8 @@ +package com.baeldung.fileparser; + +public class FileConstants { + + protected static final String TEXT_FILENAME = "src/main/resources/sampleTextFile.txt"; + + protected static final String NNUMBER_FILENAME = "src/main/resources/sampleNumberFile.txt"; +} diff --git a/core-java/src/main/java/com/baeldung/fileparser/FileReaderExample.java b/core-java/src/main/java/com/baeldung/fileparser/FileReaderExample.java new file mode 100644 index 0000000000..f9dd2a9ec5 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/fileparser/FileReaderExample.java @@ -0,0 +1,31 @@ +package com.baeldung.fileparser; + +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; + +public class FileReaderExample { + + protected static ArrayList generateArrayListFromFile(String filename) throws IOException { + + ArrayList result = new ArrayList<>(); + + try (FileReader f = new FileReader(filename)) { + StringBuffer sb = new StringBuffer(); + while (f.ready()) { + char c = (char) f.read(); + if (c == '\n') { + result.add(sb.toString()); + sb = new StringBuffer(); + } else { + sb.append(c); + } + } + if (sb.length() > 0) { + result.add(sb.toString()); + } + } + + return result; + } +} diff --git a/core-java/src/main/java/com/baeldung/fileparser/FilesReadLinesExample.java b/core-java/src/main/java/com/baeldung/fileparser/FilesReadLinesExample.java new file mode 100644 index 0000000000..8e74f7d386 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/fileparser/FilesReadLinesExample.java @@ -0,0 +1,18 @@ +package com.baeldung.fileparser; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +public class FilesReadLinesExample { + + protected static ArrayList generateArrayListFromFile(String filename) throws IOException { + + List result = Files.readAllLines(Paths.get(filename)); + + return (ArrayList) result; + } + +} diff --git a/file-parser/src/com/baeldung/fileparser/ScannerIntExample.java b/core-java/src/main/java/com/baeldung/fileparser/ScannerIntExample.java similarity index 53% rename from file-parser/src/com/baeldung/fileparser/ScannerIntExample.java rename to core-java/src/main/java/com/baeldung/fileparser/ScannerIntExample.java index aab7455c30..25d17af4ea 100644 --- a/file-parser/src/com/baeldung/fileparser/ScannerIntExample.java +++ b/core-java/src/main/java/com/baeldung/fileparser/ScannerIntExample.java @@ -7,17 +7,7 @@ import java.util.Scanner; public class ScannerIntExample { - private static final String FILENAME = "src/resources/num.txt"; - - public static void main(String[] args) { - try { - System.out.println(generateArrayListFromFile(FILENAME)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static ArrayList generateArrayListFromFile(String filename) throws IOException { + protected static ArrayList generateArrayListFromFile(String filename) throws IOException { ArrayList result = new ArrayList<>(); diff --git a/file-parser/src/com/baeldung/fileparser/ScannerStringExample.java b/core-java/src/main/java/com/baeldung/fileparser/ScannerStringExample.java similarity index 54% rename from file-parser/src/com/baeldung/fileparser/ScannerStringExample.java rename to core-java/src/main/java/com/baeldung/fileparser/ScannerStringExample.java index fc18b53609..ec213c9490 100644 --- a/file-parser/src/com/baeldung/fileparser/ScannerStringExample.java +++ b/core-java/src/main/java/com/baeldung/fileparser/ScannerStringExample.java @@ -7,17 +7,7 @@ import java.util.Scanner; public class ScannerStringExample { - private static final String FILENAME = "src/resources/txt.txt"; - - public static void main(String[] args) { - try { - System.out.println(generateArrayListFromFile(FILENAME)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static ArrayList generateArrayListFromFile(String filename) throws IOException { + protected static ArrayList generateArrayListFromFile(String filename) throws IOException { ArrayList result = new ArrayList<>(); diff --git a/core-java/src/test/java/com/baeldung/fileparser/BufferedReaderUnitTest.java b/core-java/src/test/java/com/baeldung/fileparser/BufferedReaderUnitTest.java new file mode 100644 index 0000000000..78f900d796 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/fileparser/BufferedReaderUnitTest.java @@ -0,0 +1,19 @@ +package com.baeldung.fileparser; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; + +public class BufferedReaderUnitTest { + + protected static final String TEXT_FILENAME = "src/test/resources/sampleTextFile.txt"; + + @Test + public void whenParsingExistingTextFile_thenGetArrayList() throws IOException { + List lines = BufferedReaderExample.generateArrayListFromFile(TEXT_FILENAME); + assertTrue("File does not has 2 lines", lines.size() == 2); + } +} diff --git a/core-java/src/test/java/com/baeldung/fileparser/FileReaderUnitTest.java b/core-java/src/test/java/com/baeldung/fileparser/FileReaderUnitTest.java new file mode 100644 index 0000000000..a38e58d348 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/fileparser/FileReaderUnitTest.java @@ -0,0 +1,19 @@ +package com.baeldung.fileparser; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; + +public class FileReaderUnitTest { + + protected static final String TEXT_FILENAME = "src/test/resources/sampleTextFile.txt"; + + @Test + public void whenParsingExistingTextFile_thenGetArrayList() throws IOException { + List lines = FileReaderExample.generateArrayListFromFile(TEXT_FILENAME); + assertTrue("File does not has 2 lines", lines.size() == 2); + } +} diff --git a/core-java/src/test/java/com/baeldung/fileparser/FilesReadAllLinesUnitTest.java b/core-java/src/test/java/com/baeldung/fileparser/FilesReadAllLinesUnitTest.java new file mode 100644 index 0000000000..c0b742fd47 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/fileparser/FilesReadAllLinesUnitTest.java @@ -0,0 +1,19 @@ +package com.baeldung.fileparser; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; + +public class FilesReadAllLinesUnitTest { + + protected static final String TEXT_FILENAME = "src/test/resources/sampleTextFile.txt"; + + @Test + public void whenParsingExistingTextFile_thenGetArrayList() throws IOException { + List lines = FilesReadLinesExample.generateArrayListFromFile(TEXT_FILENAME); + assertTrue("File does not has 2 lines", lines.size() == 2); + } +} diff --git a/core-java/src/test/java/com/baeldung/fileparser/ScannerIntUnitTest.java b/core-java/src/test/java/com/baeldung/fileparser/ScannerIntUnitTest.java new file mode 100644 index 0000000000..0a398ba7c6 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/fileparser/ScannerIntUnitTest.java @@ -0,0 +1,19 @@ +package com.baeldung.fileparser; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; + +public class ScannerIntUnitTest { + + protected static final String NUMBER_FILENAME = "src/test/resources/sampleNumberFile.txt"; + + @Test + public void whenParsingExistingTextFile_thenGetIntArrayList() throws IOException { + List numbers = ScannerIntExample.generateArrayListFromFile(NUMBER_FILENAME); + assertTrue("File does not has 2 lines", numbers.size() == 2); + } +} diff --git a/core-java/src/test/java/com/baeldung/fileparser/ScannerStringUnitTest.java b/core-java/src/test/java/com/baeldung/fileparser/ScannerStringUnitTest.java new file mode 100644 index 0000000000..8f9b0a56c0 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/fileparser/ScannerStringUnitTest.java @@ -0,0 +1,19 @@ +package com.baeldung.fileparser; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; + +public class ScannerStringUnitTest { + + protected static final String TEXT_FILENAME = "src/test/resources/sampleTextFile.txt"; + + @Test + public void whenParsingExistingTextFile_thenGetArrayList() throws IOException { + List lines = ScannerStringExample.generateArrayListFromFile(TEXT_FILENAME); + assertTrue("File does not has 2 lines", lines.size() == 2); + } +} diff --git a/core-java/src/test/resources/sampleNumberFile.txt b/core-java/src/test/resources/sampleNumberFile.txt new file mode 100644 index 0000000000..7787faa3c1 --- /dev/null +++ b/core-java/src/test/resources/sampleNumberFile.txt @@ -0,0 +1,2 @@ +111 +222 \ No newline at end of file diff --git a/core-java/src/test/resources/sampleTextFile.txt b/core-java/src/test/resources/sampleTextFile.txt new file mode 100644 index 0000000000..75cb50aafa --- /dev/null +++ b/core-java/src/test/resources/sampleTextFile.txt @@ -0,0 +1,2 @@ +Hello +World \ No newline at end of file diff --git a/file-parser/src/com/baeldung/fileparser/FileReaderExample.java b/file-parser/src/com/baeldung/fileparser/FileReaderExample.java deleted file mode 100644 index 1ab98973c7..0000000000 --- a/file-parser/src/com/baeldung/fileparser/FileReaderExample.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.baeldung.fileparser; - -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; - -public class FileReaderExample { - - private static final String FILENAME = "src/resources/txt.txt"; - - public static void main(String[] args) { - try { - System.out.println(generateArrayListFromFile(FILENAME)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static ArrayList generateArrayListFromFile(String filename) throws IOException { - - ArrayList result = new ArrayList<>(); - - try (FileReader f = new FileReader(filename)) { - - while (f.ready()) { - char c = (char) f.read(); - - if (c != ' ' && c != '\t' && c != '\n') { - result.add(c); - } - } - return result; - } - - } - -} diff --git a/file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java b/file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java deleted file mode 100644 index 7f94525c22..0000000000 --- a/file-parser/src/com/baeldung/fileparser/FilesReadLineExample.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.fileparser; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; - -public class FilesReadLineExample { - - private static final String FILENAME = "src/resources/txt.txt"; - - public static void main(String[] args) { - try { - System.out.println(generateArrayListFromFile(FILENAME)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static ArrayList generateArrayListFromFile(String filename) throws IOException { - - List result = Files.readAllLines(Paths.get(filename)); - - return (ArrayList) result; - } - -} From bf0c538bc9bfa99094a01131c39ab919b8fb4088 Mon Sep 17 00:00:00 2001 From: RanjeetKaur17 Date: Sat, 4 Aug 2018 16:52:27 +0400 Subject: [PATCH 13/22] Removing unused file. --- .../main/java/com/baeldung/fileparser/FileConstants.java | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 core-java/src/main/java/com/baeldung/fileparser/FileConstants.java diff --git a/core-java/src/main/java/com/baeldung/fileparser/FileConstants.java b/core-java/src/main/java/com/baeldung/fileparser/FileConstants.java deleted file mode 100644 index 1d3cce79f2..0000000000 --- a/core-java/src/main/java/com/baeldung/fileparser/FileConstants.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.fileparser; - -public class FileConstants { - - protected static final String TEXT_FILENAME = "src/main/resources/sampleTextFile.txt"; - - protected static final String NNUMBER_FILENAME = "src/main/resources/sampleNumberFile.txt"; -} From a17637b88ab6b694d32f62bab62f524183ddfe90 Mon Sep 17 00:00:00 2001 From: RanjeetKaur17 Date: Sat, 4 Aug 2018 16:53:38 +0400 Subject: [PATCH 14/22] Removing unused files. --- file-parser/src/resources/num.txt | 2 -- file-parser/src/resources/txt.txt | 2 -- 2 files changed, 4 deletions(-) delete mode 100644 file-parser/src/resources/num.txt delete mode 100644 file-parser/src/resources/txt.txt diff --git a/file-parser/src/resources/num.txt b/file-parser/src/resources/num.txt deleted file mode 100644 index 7787faa3c1..0000000000 --- a/file-parser/src/resources/num.txt +++ /dev/null @@ -1,2 +0,0 @@ -111 -222 \ No newline at end of file diff --git a/file-parser/src/resources/txt.txt b/file-parser/src/resources/txt.txt deleted file mode 100644 index 75cb50aafa..0000000000 --- a/file-parser/src/resources/txt.txt +++ /dev/null @@ -1,2 +0,0 @@ -Hello -World \ No newline at end of file From 0be91964dfda73817a65d747e1d885cc838d4be1 Mon Sep 17 00:00:00 2001 From: Shreyash Date: Tue, 7 Aug 2018 13:14:21 +0530 Subject: [PATCH 15/22] BAEL-1164 hzaelcast Jet. --- hazelcast/pom.xml | 20 +++----- .../baeldung/hazelcast/jet/WordCounter.java | 51 +++++++++++++++++++ .../hazelcast/jet/WordCounterUnitTest.java | 21 ++++++++ 3 files changed, 80 insertions(+), 12 deletions(-) create mode 100644 hazelcast/src/main/java/com/baeldung/hazelcast/jet/WordCounter.java create mode 100644 hazelcast/src/test/java/com/baeldung/hazelcast/jet/WordCounterUnitTest.java diff --git a/hazelcast/pom.xml b/hazelcast/pom.xml index cc366cd0a6..705792ad05 100644 --- a/hazelcast/pom.xml +++ b/hazelcast/pom.xml @@ -13,16 +13,12 @@ - - com.hazelcast - hazelcast - ${hazelcast.version} - - - com.hazelcast - hazelcast-client - ${hazelcast.version} - + + + com.hazelcast.jet + hazelcast-jet + ${hazelcast.jet.version} + @@ -36,8 +32,8 @@ - - 3.8.4 + + 0.6 \ No newline at end of file diff --git a/hazelcast/src/main/java/com/baeldung/hazelcast/jet/WordCounter.java b/hazelcast/src/main/java/com/baeldung/hazelcast/jet/WordCounter.java new file mode 100644 index 0000000000..971986bcae --- /dev/null +++ b/hazelcast/src/main/java/com/baeldung/hazelcast/jet/WordCounter.java @@ -0,0 +1,51 @@ +package com.baeldung.hazelcast.jet; + +import java.util.List; +import java.util.Map; + +import static com.hazelcast.jet.Traversers.traverseArray; +import static com.hazelcast.jet.aggregate.AggregateOperations.counting; +import static com.hazelcast.jet.function.DistributedFunctions.wholeItem; + +import com.hazelcast.jet.Jet; +import com.hazelcast.jet.JetInstance; +import com.hazelcast.jet.pipeline.Pipeline; +import com.hazelcast.jet.pipeline.Sinks; +import com.hazelcast.jet.pipeline.Sources; + +public class WordCounter { + + private static final String LIST_NAME = "textList"; + + private static final String MAP_NAME = "countMap"; + + private Pipeline createPipeLine() { + Pipeline p = Pipeline.create(); + p.drawFrom(Sources. list(LIST_NAME)) + .flatMap(word -> traverseArray(word.toLowerCase() + .split("\\W+"))) + .filter(word -> !word.isEmpty()) + .groupingKey(wholeItem()) + .aggregate(counting()) + .drainTo(Sinks.map(MAP_NAME)); + return p; + } + + public Long countWord(List sentences, String word) { + long count = 0; + JetInstance jet = Jet.newJetInstance(); + try { + List textList = jet.getList(LIST_NAME); + textList.addAll(sentences); + Pipeline p = createPipeLine(); + jet.newJob(p) + .join(); + Map counts = jet.getMap(MAP_NAME); + count = counts.get(word); + } finally { + Jet.shutdownAll(); + } + return count; + } + +} diff --git a/hazelcast/src/test/java/com/baeldung/hazelcast/jet/WordCounterUnitTest.java b/hazelcast/src/test/java/com/baeldung/hazelcast/jet/WordCounterUnitTest.java new file mode 100644 index 0000000000..95596b3860 --- /dev/null +++ b/hazelcast/src/test/java/com/baeldung/hazelcast/jet/WordCounterUnitTest.java @@ -0,0 +1,21 @@ +package com.baeldung.hazelcast.jet; + +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +public class WordCounterUnitTest { + + @Test + public void whenGivenSentencesAndWord_ThenReturnCountOfWord() { + List sentences = new ArrayList<>(); + sentences.add("The first second was alright, but the second second was tough."); + WordCounter wordCounter = new WordCounter(); + long countSecond = wordCounter.countWord(sentences, "second"); + assertTrue(countSecond == 3); + } + +} From ddc106ccd9931c778304b63d2622498312b373d3 Mon Sep 17 00:00:00 2001 From: Predrag Maric Date: Tue, 7 Aug 2018 14:42:57 +0200 Subject: [PATCH 16/22] BAEL-1852 moved the code into junit-5 module (#4915) * BAEL-1852 moved the code into junit-5 module * BAEL-1852 removed junit-abstract module from parent-modules --- pom.xml | 3 - testing-modules/junit-5/pom.xml | 21 ++++++- .../abstractmethod/AbstractMethodCalling.java | 2 +- .../indepedentmethod/AbstractIndependent.java | 2 +- .../indepedentmethod/ConcreteImpl.java | 2 +- .../AbstractInstanceFields.java | 2 +- .../privatemethod/AbstractPrivateMethods.java | 2 +- .../AbstractMethodCallingUnitTest.java | 2 +- .../AbstractIndependentUnitTest.java | 2 +- .../AbstractInstanceFieldsUnitTest.java | 2 +- .../AbstractPrivateMethodsUnitTest.java | 6 +- testing-modules/junit-abstract/pom.xml | 62 ------------------- .../src/main/resources/logback.xml | 13 ---- 13 files changed, 31 insertions(+), 90 deletions(-) rename testing-modules/{junit-abstract/src/main/java/org/baeldung/testing => junit-5/src/main/java/com/baeldung}/abstractclass/abstractmethod/AbstractMethodCalling.java (83%) rename testing-modules/{junit-abstract/src/main/java/org/baeldung/testing => junit-5/src/main/java/com/baeldung}/abstractclass/indepedentmethod/AbstractIndependent.java (76%) rename testing-modules/{junit-abstract/src/main/java/org/baeldung/testing => junit-5/src/main/java/com/baeldung}/abstractclass/indepedentmethod/ConcreteImpl.java (68%) rename testing-modules/{junit-abstract/src/main/java/org/baeldung/testing => junit-5/src/main/java/com/baeldung}/abstractclass/instancefields/AbstractInstanceFields.java (87%) rename testing-modules/{junit-abstract/src/main/java/org/baeldung/testing => junit-5/src/main/java/com/baeldung}/abstractclass/privatemethod/AbstractPrivateMethods.java (84%) rename testing-modules/{junit-abstract/src/test/java/org/baeldung/testing => junit-5/src/test/java/com/baeldung}/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java (94%) rename testing-modules/{junit-abstract/src/test/java/org/baeldung/testing => junit-5/src/test/java/com/baeldung}/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java (91%) rename testing-modules/{junit-abstract/src/test/java/org/baeldung/testing => junit-5/src/test/java/com/baeldung}/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java (95%) rename testing-modules/{junit-abstract/src/test/java/org/baeldung/testing => junit-5/src/test/java/com/baeldung}/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java (95%) delete mode 100644 testing-modules/junit-abstract/pom.xml delete mode 100644 testing-modules/junit-abstract/src/main/resources/logback.xml diff --git a/pom.xml b/pom.xml index e120620c30..a9aaff3e22 100644 --- a/pom.xml +++ b/pom.xml @@ -551,7 +551,6 @@ apache-meecrowave spring-reactive-kotlin jnosql - testing-modules/junit-abstract sse-jaxrs spring-boot-angular-ecommerce @@ -673,7 +672,6 @@ spring-amqp-simple spring-apache-camel spring-batch - testing-modules/junit-abstract jmh @@ -1080,7 +1078,6 @@ antlr maven-archetype apache-meecrowave - testing-modules/junit-abstract spring-hibernate4 xml diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml index f9ea34ca72..c60cc00c2c 100644 --- a/testing-modules/junit-5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -60,6 +60,24 @@ spring-context ${spring.version} + + org.powermock + powermock-module-junit4 + ${powermock.version} + test + + + junit + junit + + + + + org.powermock + powermock-api-mockito2 + ${powermock.version} + test + @@ -105,7 +123,8 @@ 5.2.0 2.8.2 1.4.196 - 2.11.0 + 2.8.9 + 1.7.4 2.19.1 1.6.0 5.0.1.RELEASE diff --git a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/abstractmethod/AbstractMethodCalling.java b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/abstractmethod/AbstractMethodCalling.java similarity index 83% rename from testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/abstractmethod/AbstractMethodCalling.java rename to testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/abstractmethod/AbstractMethodCalling.java index b0709bf6bf..e55c6b98e2 100644 --- a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/abstractmethod/AbstractMethodCalling.java +++ b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/abstractmethod/AbstractMethodCalling.java @@ -1,7 +1,7 @@ /** * */ -package org.baeldung.testing.abstractclass.abstractmethod; +package com.baeldung.abstractclass.abstractmethod; /** * When method calls abstract method. diff --git a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/indepedentmethod/AbstractIndependent.java b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/indepedentmethod/AbstractIndependent.java similarity index 76% rename from testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/indepedentmethod/AbstractIndependent.java rename to testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/indepedentmethod/AbstractIndependent.java index 7456a51c43..4dce2665d5 100644 --- a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/indepedentmethod/AbstractIndependent.java +++ b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/indepedentmethod/AbstractIndependent.java @@ -1,4 +1,4 @@ -package org.baeldung.testing.abstractclass.indepedentmethod; +package com.baeldung.abstractclass.indepedentmethod; /** * Test Independent Method diff --git a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/indepedentmethod/ConcreteImpl.java b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/indepedentmethod/ConcreteImpl.java similarity index 68% rename from testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/indepedentmethod/ConcreteImpl.java rename to testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/indepedentmethod/ConcreteImpl.java index f568ad4eec..6e71b88946 100644 --- a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/indepedentmethod/ConcreteImpl.java +++ b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/indepedentmethod/ConcreteImpl.java @@ -1,4 +1,4 @@ -package org.baeldung.testing.abstractclass.indepedentmethod; +package com.baeldung.abstractclass.indepedentmethod; public class ConcreteImpl extends AbstractIndependent { diff --git a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/instancefields/AbstractInstanceFields.java b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/instancefields/AbstractInstanceFields.java similarity index 87% rename from testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/instancefields/AbstractInstanceFields.java rename to testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/instancefields/AbstractInstanceFields.java index 3761eb8c3b..262f72e393 100644 --- a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/instancefields/AbstractInstanceFields.java +++ b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/instancefields/AbstractInstanceFields.java @@ -1,4 +1,4 @@ -package org.baeldung.testing.abstractclass.instancefields; +package com.baeldung.abstractclass.instancefields; /** * Test Independent Method diff --git a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/privatemethod/AbstractPrivateMethods.java b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/privatemethod/AbstractPrivateMethods.java similarity index 84% rename from testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/privatemethod/AbstractPrivateMethods.java rename to testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/privatemethod/AbstractPrivateMethods.java index 98a9bcaa07..fe7fb25931 100644 --- a/testing-modules/junit-abstract/src/main/java/org/baeldung/testing/abstractclass/privatemethod/AbstractPrivateMethods.java +++ b/testing-modules/junit-5/src/main/java/com/baeldung/abstractclass/privatemethod/AbstractPrivateMethods.java @@ -1,4 +1,4 @@ -package org.baeldung.testing.abstractclass.privatemethod; +package com.baeldung.abstractclass.privatemethod; import java.time.LocalDateTime; diff --git a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java similarity index 94% rename from testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java index e02915db51..7ebd866f3d 100644 --- a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/abstractmethod/AbstractMethodCallingUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.testing.abstractclass.abstractmethod; +package com.baeldung.abstractclass.abstractmethod; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java similarity index 91% rename from testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java index 80e42af756..db9811e6c1 100644 --- a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/indepedentmethod/AbstractIndependentUnitTest.java @@ -1,7 +1,7 @@ /** * */ -package org.baeldung.testing.abstractclass.indepedentmethod; +package com.baeldung.abstractclass.indepedentmethod; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java similarity index 95% rename from testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java index ce2577521b..5187ce00ab 100644 --- a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/instancefields/AbstractInstanceFieldsUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.testing.abstractclass.instancefields; +package com.baeldung.abstractclass.instancefields; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java similarity index 95% rename from testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java index 7220d9cc47..9ce7ff8706 100644 --- a/testing-modules/junit-abstract/src/test/java/org/baeldung/testing/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/abstractclass/privatemethod/AbstractPrivateMethodsUnitTest.java @@ -1,9 +1,7 @@ /** * */ -package org.baeldung.testing.abstractclass.privatemethod; - -import java.time.LocalDateTime; +package com.baeldung.abstractclass.privatemethod; import org.junit.Test; import org.junit.jupiter.api.Assertions; @@ -12,6 +10,8 @@ import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; +import java.time.LocalDateTime; + /** * Providing custom values for private methods using powermock * diff --git a/testing-modules/junit-abstract/pom.xml b/testing-modules/junit-abstract/pom.xml deleted file mode 100644 index 106ed8e3a4..0000000000 --- a/testing-modules/junit-abstract/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ - - 4.0.0 - - junit-abstract - 1.0-SNAPSHOT - jar - - abstractclasses - http://maven.apache.org - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../../ - - - - UTF-8 - 1.7.4 - 1.8 - 5.1.0 - 1.1.0 - 5.2.0 - - - - - org.powermock - powermock-module-junit4 - ${powermock.version} - test - - - junit - junit - - - - - org.powermock - powermock-api-mockito2 - ${powermock.version} - test - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.0 - - - junit-abstract - - - - - diff --git a/testing-modules/junit-abstract/src/main/resources/logback.xml b/testing-modules/junit-abstract/src/main/resources/logback.xml deleted file mode 100644 index 7d900d8ea8..0000000000 --- a/testing-modules/junit-abstract/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 e730b0d8f8c4f682dfac2fd720d2e4aa3ad999e7 Mon Sep 17 00:00:00 2001 From: Predrag Maric Date: Tue, 7 Aug 2018 18:50:33 +0200 Subject: [PATCH 17/22] BAEL 1861 (#4913) * BAEL-1861 Replaced real tests with demo test "placeholders" * BAEL-1861 Moved code from new module into existing ones * BAEL-1861 Renamed main() classes to not violate PMD rules --- .../baeldung/runfromjava/FirstUnitTest.java | 24 +++++++++ .../runfromjava/RunJUnit5TestsFromJava.java} | 8 +-- .../baeldung/runfromjava/SecondUnitTest.java | 18 +++++++ testing-modules/runjunitfromjava/pom.xml | 54 ------------------- .../junit/runfromjava/listnode/ListNode.java | 41 -------------- .../runfromjava/listnode/MergeLists.java | 22 -------- .../listnode/RemovedNthElement.java | 26 --------- .../runfromjava/listnode/RotateList.java | 30 ----------- .../junit/runfromjava/listnode/SwapNodes.java | 33 ------------ .../baeldung/runfromjava/FirstUnitTest.java | 24 +++++++++ .../baeldung}/runfromjava/MyTestSuite.java | 2 +- .../runfromjava/RunJUnit4TestsFromJava.java} | 4 +- .../baeldung/runfromjava/SecondUnitTest.java | 18 +++++++ 13 files changed, 91 insertions(+), 213 deletions(-) create mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java rename testing-modules/{runjunitfromjava/src/test/java/com/baeldung/junit5/runfromjava/RunJUnit5Tests.java => junit-5/src/test/java/com/baeldung/runfromjava/RunJUnit5TestsFromJava.java} (90%) create mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java delete mode 100644 testing-modules/runjunitfromjava/pom.xml delete mode 100644 testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/ListNode.java delete mode 100644 testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/MergeLists.java delete mode 100644 testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RemovedNthElement.java delete mode 100644 testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RotateList.java delete mode 100644 testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/SwapNodes.java create mode 100644 testing-modules/testing/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java rename testing-modules/{runjunitfromjava/src/test/java/com/baeldung/junit4 => testing/src/test/java/com/baeldung}/runfromjava/MyTestSuite.java (81%) rename testing-modules/{runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/RunJUnit4Tests.java => testing/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java} (97%) create mode 100644 testing-modules/testing/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java new file mode 100644 index 0000000000..835132240e --- /dev/null +++ b/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.runfromjava; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +class FirstUnitTest { + + @Test + void whenThis_thenThat() { + assertTrue(true); + } + + @Test + void whenSomething_thenSomething() { + assertTrue(true); + } + + @Test + void whenSomethingElse_thenSomethingElse() { + assertTrue(true); + } + +} diff --git a/testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit5/runfromjava/RunJUnit5Tests.java b/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/RunJUnit5TestsFromJava.java similarity index 90% rename from testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit5/runfromjava/RunJUnit5Tests.java rename to testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/RunJUnit5TestsFromJava.java index 8a8f3aae17..309c1bc8c9 100644 --- a/testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit5/runfromjava/RunJUnit5Tests.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/RunJUnit5TestsFromJava.java @@ -1,4 +1,4 @@ -package com.baeldung.junit5.runfromjava; +package com.baeldung.runfromjava; import org.junit.platform.launcher.Launcher; import org.junit.platform.launcher.LauncherDiscoveryRequest; @@ -14,7 +14,7 @@ import static org.junit.platform.engine.discovery.ClassNameFilter.includeClassNa import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass; import static org.junit.platform.engine.discovery.DiscoverySelectors.selectPackage; -public class RunJUnit5Tests { +public class RunJUnit5TestsFromJava { SummaryGeneratingListener listener = new SummaryGeneratingListener(); public void runOne() { @@ -32,7 +32,7 @@ public class RunJUnit5Tests { public void runAll() { LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder .request() - .selectors(selectPackage("com.baeldung.junit5.runfromjava")) + .selectors(selectPackage("com.baeldung.runfromjava")) .filters(includeClassNamePatterns(".*Test")) .build(); Launcher launcher = LauncherFactory.create(); @@ -45,7 +45,7 @@ public class RunJUnit5Tests { } public static void main(String[] args) { - RunJUnit5Tests runner = new RunJUnit5Tests(); + RunJUnit5TestsFromJava runner = new RunJUnit5TestsFromJava(); runner.runAll(); TestExecutionSummary summary = runner.listener.getSummary(); diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java new file mode 100644 index 0000000000..b6a387d852 --- /dev/null +++ b/testing-modules/junit-5/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java @@ -0,0 +1,18 @@ +package com.baeldung.runfromjava; + +import org.junit.jupiter.api.RepeatedTest; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +class SecondUnitTest { + + @RepeatedTest(10) + void whenSomething_thenSomething() { + assertTrue(true); + } + + @RepeatedTest(5) + void whenSomethingElse_thenSomethingElse() { + assertTrue(true); + } +} diff --git a/testing-modules/runjunitfromjava/pom.xml b/testing-modules/runjunitfromjava/pom.xml deleted file mode 100644 index 8ad3e7ed00..0000000000 --- a/testing-modules/runjunitfromjava/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - 4.0.0 - - com.baeldung.junit - applicationtesting - 0.0.1-SNAPSHOT - jar - - applicationtesting - http://maven.apache.org - - - UTF-8 - 1.8 - 5.2.0 - 1.2.0 - 4.12 - 3.7.0 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${java.version} - ${java.version} - - - - - - - - org.junit.jupiter - junit-jupiter-engine - ${junit-jupiter.version} - - - org.junit.platform - junit-platform-launcher - ${junit-launcher.version} - - - junit - junit - ${junit4.version} - - - - diff --git a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/ListNode.java b/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/ListNode.java deleted file mode 100644 index 31cbda15d3..0000000000 --- a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/ListNode.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.baeldung.junit.runfromjava.listnode; - -public class ListNode { - private int value; - private ListNode next; - - public ListNode(int v) { - value = v; - } - - public ListNode(int v, ListNode next) { - value = v; - this.next = next; - } - - public int getValue() { - return value; - } - - public ListNode getNext() { - return next; - } - - public void setNext(ListNode next) { - this.next = next; - } - - public String toString() { - String result = ""; - ListNode tmp = this; - - while (tmp.next != null) { - result += tmp.value + "->"; - tmp = tmp.next; - } - - result += tmp.value; - - return result.toString(); - } -} diff --git a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/MergeLists.java b/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/MergeLists.java deleted file mode 100644 index f2a24487c8..0000000000 --- a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/MergeLists.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.junit.runfromjava.listnode; - -public class MergeLists { - - public ListNode merge(ListNode list1, ListNode list2) { - - if (list1 == null) { - return list2; - } - if (list2 == null) { - return list1; - } - - if (list1.getValue() <= list2.getValue()) { - list1.setNext(merge(list1.getNext(), list2)); - return list1; - } else { - list2.setNext(merge(list2.getNext(), list1)); - return list2; - } - } -} \ No newline at end of file diff --git a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RemovedNthElement.java b/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RemovedNthElement.java deleted file mode 100644 index 22357aaeee..0000000000 --- a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RemovedNthElement.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.baeldung.junit.runfromjava.listnode; - -public class RemovedNthElement { - public ListNode removeNthFromEnd(ListNode head, int n) { - - ListNode start = new ListNode(0); - start.setNext(head); - - ListNode fast = start; - ListNode slow = start; - - for (int i = 0; i < n + 1 && fast != null; i++) { - fast = fast.getNext(); - } - - while (fast != null) { - fast = fast.getNext(); - slow = slow.getNext(); - } - - slow.setNext(slow.getNext() - .getNext()); - - return start.getNext(); - } -} diff --git a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RotateList.java b/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RotateList.java deleted file mode 100644 index 52167cbacc..0000000000 --- a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/RotateList.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.baeldung.junit.runfromjava.listnode; - -public class RotateList { - public ListNode rotateRight(ListNode list, int n) { - - if (list == null || list.getNext() == null) { - return list; - } - - ListNode tmpList = new ListNode(0); - tmpList.setNext(list); - ListNode fast = tmpList; - ListNode slow = tmpList; - - int listLength; - for (listLength = 0; fast.getNext() != null; listLength++) { - fast = fast.getNext(); - } - - for (int j = listLength - n % listLength; j > 0; j--) { - slow = slow.getNext(); - } - - fast.setNext(tmpList.getNext()); - tmpList.setNext(slow.getNext()); - slow.setNext(null); - - return tmpList.getNext(); - } -} diff --git a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/SwapNodes.java b/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/SwapNodes.java deleted file mode 100644 index 076fed0d5e..0000000000 --- a/testing-modules/runjunitfromjava/src/main/java/com/baeldung/junit/runfromjava/listnode/SwapNodes.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.baeldung.junit.runfromjava.listnode; - -public class SwapNodes { - public ListNode swapPairs(ListNode listHead) { - - ListNode result = new ListNode(0); - result.setNext(listHead); - - ListNode current = result; - - while (current.getNext() != null && current - .getNext() - .getNext() != null) { - - ListNode first = current.getNext(); - ListNode second = current - .getNext() - .getNext(); - - first.setNext(second.getNext()); - current.setNext(second); - current - .getNext() - .setNext(first); - - current = current - .getNext() - .getNext(); - } - - return result.getNext(); - } -} diff --git a/testing-modules/testing/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java new file mode 100644 index 0000000000..0e08c43021 --- /dev/null +++ b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.runfromjava; + +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +public class FirstUnitTest { + + @Test + public void whenThis_thenThat() { + assertTrue(true); + } + + @Test + public void whenSomething_thenSomething() { + assertTrue(true); + } + + @Test + public void whenSomethingElse_thenSomethingElse() { + assertTrue(true); + } + +} diff --git a/testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/MyTestSuite.java b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/MyTestSuite.java similarity index 81% rename from testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/MyTestSuite.java rename to testing-modules/testing/src/test/java/com/baeldung/runfromjava/MyTestSuite.java index 4739b47b88..2413fb1ddf 100644 --- a/testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/MyTestSuite.java +++ b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/MyTestSuite.java @@ -1,4 +1,4 @@ -package com.baeldung.junit4.runfromjava; +package com.baeldung.runfromjava; import org.junit.runner.RunWith; import org.junit.runners.Suite; diff --git a/testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/RunJUnit4Tests.java b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java similarity index 97% rename from testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/RunJUnit4Tests.java rename to testing-modules/testing/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java index 69b821032a..b44b66440a 100644 --- a/testing-modules/runjunitfromjava/src/test/java/com/baeldung/junit4/runfromjava/RunJUnit4Tests.java +++ b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java @@ -1,4 +1,4 @@ -package com.baeldung.junit4.runfromjava; +package com.baeldung.runfromjava; import junit.extensions.ActiveTestSuite; import junit.extensions.RepeatedTest; @@ -10,7 +10,7 @@ import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; -public class RunJUnit4Tests { +public class RunJUnit4TestsFromJava { public static void runOne() { JUnitCore junit = new JUnitCore(); diff --git a/testing-modules/testing/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java new file mode 100644 index 0000000000..aa5883562e --- /dev/null +++ b/testing-modules/testing/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java @@ -0,0 +1,18 @@ +package com.baeldung.runfromjava; + +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +public class SecondUnitTest { + + @Test + public void whenSomething_thenSomething() { + assertTrue(true); + } + + @Test + public void whensomethingElse_thenSomethingElse() { + assertTrue(true); + } +} From fb0a6ab53977d540297bbe2cde1c2dbcb72e725f Mon Sep 17 00:00:00 2001 From: DOHA Date: Thu, 9 Aug 2018 15:37:13 +0300 Subject: [PATCH 18/22] upgrade and cleanup spring-thymeleaf --- spring-thymeleaf/pom.xml | 100 +++++++----------- .../thymeleaf/config/WebMVCConfig.java | 21 ++-- .../thymeleaf/config/WebMVCSecurity.java | 2 +- .../controller/FragmentsIntegrationTest.java | 27 +++-- 4 files changed, 64 insertions(+), 86 deletions(-) diff --git a/spring-thymeleaf/pom.xml b/spring-thymeleaf/pom.xml index c023dcdb5f..0926728aba 100644 --- a/spring-thymeleaf/pom.xml +++ b/spring-thymeleaf/pom.xml @@ -1,5 +1,5 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.baeldung spring-thymeleaf @@ -8,8 +8,9 @@ com.baeldung - parent-modules - 1.0.0-SNAPSHOT + parent-spring-5 + 0.0.1-SNAPSHOT + ../parent-spring-5 @@ -17,7 +18,7 @@ org.springframework spring-context - ${org.springframework-version} + ${spring.version} @@ -29,19 +30,38 @@ org.springframework spring-webmvc - ${org.springframework-version} + ${spring.version} + + + org.springframework.data + spring-data-commons + ${spring-data.version} + + + + javax.validation + validation-api + ${javax.validation-version} + + + org.hibernate.validator + hibernate-validator + ${hibernate-validator.version} + + org.springframework.security spring-security-web - ${springframework-security.version} + ${spring-security.version} org.springframework.security spring-security-config - ${springframework-security.version} + ${spring-security.version} + org.thymeleaf @@ -50,10 +70,9 @@ org.thymeleaf - thymeleaf-spring4 + thymeleaf-spring5 ${org.thymeleaf-version} - nz.net.ultraq.thymeleaf thymeleaf-layout-dialect @@ -64,60 +83,29 @@ thymeleaf-extras-java8time ${org.thymeleaf.extras-version} + javax.servlet javax.servlet-api - ${javax.servlet-version} + ${javax.servlet-api.version} provided - - - javax.validation - validation-api - ${javax.validation-version} - - - org.hibernate - hibernate-validator - ${hibernate-validator.version} - - + org.springframework spring-test - ${org.springframework-version} + ${spring.version} test - org.springframework.security spring-security-test - ${springframework-security.version} + ${spring-security.version} test - - - - - - org.springframework.data - spring-data-commons - ${springFramework-data.version} - @@ -131,7 +119,7 @@ false - + org.codehaus.cargo cargo-maven2-plugin @@ -151,7 +139,7 @@ - + org.apache.tomcat.maven tomcat7-maven-plugin @@ -176,22 +164,14 @@ - - 4.3.4.RELEASE - 4.2.0.RELEASE - 2.0.7.RELEASE - 3.1.0 - + 2.0.9.RELEASE 3.0.9.RELEASE - 3.0.0.RELEASE - 2.1.2 - - 1.1.0.Final - 5.3.3.Final - 5.2.5.Final + 3.0.1.RELEASE + 2.3.0 + 2.0.1.Final + 6.0.11.Final - 2.6 1.6.1 2.2 diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java index 2e76877199..34a59ea391 100644 --- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java +++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java @@ -2,6 +2,9 @@ package com.baeldung.thymeleaf.config; import java.util.Locale; +import nz.net.ultraq.thymeleaf.LayoutDialect; +import nz.net.ultraq.thymeleaf.decorators.strategies.GroupingStrategy; + import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Bean; @@ -15,23 +18,20 @@ import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.SessionLocaleResolver; -import org.thymeleaf.TemplateEngine; import org.thymeleaf.extras.java8time.dialect.Java8TimeDialect; -import org.thymeleaf.spring4.SpringTemplateEngine; -import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver; -import org.thymeleaf.spring4.view.ThymeleafViewResolver; +import org.thymeleaf.spring5.ISpringTemplateEngine; +import org.thymeleaf.spring5.SpringTemplateEngine; +import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; +import org.thymeleaf.spring5.view.ThymeleafViewResolver; import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateresolver.ITemplateResolver; import com.baeldung.thymeleaf.formatter.NameFormatter; import com.baeldung.thymeleaf.utils.ArrayUtil; -import nz.net.ultraq.thymeleaf.LayoutDialect; -import nz.net.ultraq.thymeleaf.decorators.strategies.GroupingStrategy; - @Configuration @EnableWebMvc @ComponentScan({ "com.baeldung.thymeleaf" }) @@ -39,10 +39,11 @@ import nz.net.ultraq.thymeleaf.decorators.strategies.GroupingStrategy; * Java configuration file that is used for Spring MVC and Thymeleaf * configurations */ -public class WebMVCConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware { +public class WebMVCConfig implements WebMvcConfigurer, ApplicationContextAware { private ApplicationContext applicationContext; + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -77,7 +78,7 @@ public class WebMVCConfig extends WebMvcConfigurerAdapter implements Application return resolver; } - private TemplateEngine templateEngine(ITemplateResolver templateResolver) { + private ISpringTemplateEngine templateEngine(ITemplateResolver templateResolver) { SpringTemplateEngine engine = new SpringTemplateEngine(); engine.addDialect(new LayoutDialect(new GroupingStrategy())); engine.addDialect(new Java8TimeDialect()); diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java index 46bff38a3f..ea51ca3cd9 100644 --- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java +++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java @@ -27,7 +27,7 @@ public class WebMVCSecurity extends WebSecurityConfigurerAdapter { @Override protected void configure(final AuthenticationManagerBuilder auth) throws Exception { - auth.inMemoryAuthentication().withUser("user1").password("user1Pass").authorities("ROLE_USER"); + auth.inMemoryAuthentication().withUser("user1").password("{noop}user1Pass").authorities("ROLE_USER"); } @Override diff --git a/spring-thymeleaf/src/test/java/com/baeldung/thymeleaf/controller/FragmentsIntegrationTest.java b/spring-thymeleaf/src/test/java/com/baeldung/thymeleaf/controller/FragmentsIntegrationTest.java index 5bc45d0004..c6158b76b1 100644 --- a/spring-thymeleaf/src/test/java/com/baeldung/thymeleaf/controller/FragmentsIntegrationTest.java +++ b/spring-thymeleaf/src/test/java/com/baeldung/thymeleaf/controller/FragmentsIntegrationTest.java @@ -1,10 +1,22 @@ package com.baeldung.thymeleaf.controller; +import static org.hamcrest.Matchers.containsString; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import javax.servlet.Filter; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockHttpSession; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.RequestPostProcessor; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -15,21 +27,6 @@ import com.baeldung.thymeleaf.config.WebApp; import com.baeldung.thymeleaf.config.WebMVCConfig; import com.baeldung.thymeleaf.config.WebMVCSecurity; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; - -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import javax.servlet.Filter; - -import static org.hamcrest.Matchers.containsString; - @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration(classes = { WebApp.class, WebMVCConfig.class, WebMVCSecurity.class, InitSecurity.class }) From e7485a181318f1cc0f2a54bdb4fe0d437594207f Mon Sep 17 00:00:00 2001 From: Dhawal Kapil Date: Thu, 9 Aug 2018 21:43:44 +0530 Subject: [PATCH 19/22] Task/bael 8020 (#4919) * BAEL-8020 Fix surefire configs of spring-5 projects -Removed surefire configurations from spring-5 projects * BAEL-8020 Fix surefire configs of spring-5 projects -Fixed surefire and junit configuration of spring-5-** projects -Fixed mavensurefire plugin to execute JUnit5 tests BAEL-8125 * BAEL-8020 Fix sure fire configs in spring5 project -Fixed dependency for junit-5 * BAEL-8020 Fix sure fire configs in spring5 project -Fixed dependency for junit5-migration * BAEL-8020 Fix surefire configs -Updated maven war plugin to 3.0.0 * BAEL-8020 Fix surefire configs -Upgraded surefire custom logger api version to 2.21.0 for all child projects * BAEL-8020 -Deleted empty test SpringBootMvcApplicationTests.java in spring-boot-mvc. -Renamed SpringBootMvcApplicationTests.java correct in spring-boot-vue * BAEL-8020 Fix surfire configs -Added junit vintage dependency to run junit4 tests --- core-java-sun/pom.xml | 2 +- core-java/pom.xml | 2 +- java-numbers/pom.xml | 2 +- jee-7/pom.xml | 2 +- mustache/pom.xml | 2 +- parent-boot-2/pom.xml | 107 ++++-------------- pom.xml | 45 +++++++- spring-5-mvc/pom.xml | 18 --- spring-5-reactive-client/pom.xml | 61 +--------- spring-5-reactive/pom.xml | 55 --------- spring-5-security/pom.xml | 16 --- ...nMemoryAuthControllerIntegrationTest.java} | 2 +- spring-5/pom.xml | 55 --------- .../SpringBootMvcApplicationTests.java | 16 --- ... => SpringBootMvcApplicationUnitTest.java} | 2 +- spring-boot/pom.xml | 1 + .../spring-cloud-connectors-heroku/pom.xml | 2 +- spring-reactive-kotlin/pom.xml | 3 - spring-rest-embedded-tomcat/pom.xml | 1 - testing-modules/junit-5/pom.xml | 6 +- testing-modules/junit5-migration/pom.xml | 6 +- testing-modules/test-containers/pom.xml | 2 +- 22 files changed, 83 insertions(+), 325 deletions(-) rename spring-5-security/src/test/java/com/baeldung/inmemory/{InMemoryAuthControllerTest.java => InMemoryAuthControllerIntegrationTest.java} (97%) delete mode 100644 spring-boot-mvc/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java rename spring-boot-vue/src/test/java/com/baeldung/springbootmvc/{SpringBootMvcApplicationTests.java => SpringBootMvcApplicationUnitTest.java} (96%) diff --git a/core-java-sun/pom.xml b/core-java-sun/pom.xml index f489f3b030..7292335232 100644 --- a/core-java-sun/pom.xml +++ b/core-java-sun/pom.xml @@ -303,7 +303,7 @@ 1.7.0 - 2.19.1 + 2.21.0 1.8.0 3.0.2 diff --git a/core-java/pom.xml b/core-java/pom.xml index b83cb478d4..3f44851f97 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -530,7 +530,7 @@ 3.10.0 - 2.19.1 + 2.21.0 4.3.4.RELEASE 1.5.8.RELEASE diff --git a/java-numbers/pom.xml b/java-numbers/pom.xml index a9fb556517..bf4d3e8792 100644 --- a/java-numbers/pom.xml +++ b/java-numbers/pom.xml @@ -156,7 +156,7 @@ 1.19 1.19 - 2.19.1 + 2.21.0 3.0.0-M1 3.0.2 diff --git a/jee-7/pom.xml b/jee-7/pom.xml index d0246f650a..fbf102185d 100644 --- a/jee-7/pom.xml +++ b/jee-7/pom.xml @@ -418,7 +418,7 @@ 1.0.0.Final 2.6 4.2.3.RELEASE - 2.17 + 2.21.0 1.1.2 2.4 2.2.14 diff --git a/mustache/pom.xml b/mustache/pom.xml index 6012c9a15a..d385246182 100644 --- a/mustache/pom.xml +++ b/mustache/pom.xml @@ -153,7 +153,7 @@ 3.7.0 - 2.19.1 + 2.21.0 0.8 3.3.7 1.8 diff --git a/parent-boot-2/pom.xml b/parent-boot-2/pom.xml index ab6162a5a5..2fc46e4c28 100644 --- a/parent-boot-2/pom.xml +++ b/parent-boot-2/pom.xml @@ -8,18 +8,27 @@ Parent for all Spring Boot 2 modules - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-dependencies + 2.0.1.RELEASE + pom + import + + + io.rest-assured rest-assured - ${rest-assured.version} - + org.springframework.boot spring-boot-starter-test @@ -27,79 +36,16 @@ - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - 3 - true - - **/*IntegrationTest.java - **/*IntTest.java - **/*LongRunningUnitTest.java - **/*ManualTest.java - **/*LiveTest.java - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${maven.compiler.source} - ${maven.compiler.target} - - - - - + + + + org.springframework.boot + spring-boot-maven-plugin + 2.0.1.RELEASE + + + - - integration - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - **/*ManualTest.java - **/*LiveTest.java - **/AutoconfigurationTest.java - **/*UnitTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - */EthControllerTestOne.java - **/*EntryPointsTest.java - - - - - - - json - - - - - - thin-jar @@ -122,13 +68,8 @@ - UTF-8 - UTF-8 - 1.8 3.1.0 - 1.8 - 1.8 1.0.11.RELEASE diff --git a/pom.xml b/pom.xml index a9aaff3e22..978e27f055 100644 --- a/pom.xml +++ b/pom.xml @@ -43,9 +43,15 @@ org.junit.jupiter junit-jupiter-engine - ${junit.jupiter.version} + ${junit-jupiter.version} test + + org.junit.jupiter + junit-jupiter-api + ${junit-jupiter.version} + test + org.hamcrest hamcrest-core @@ -70,6 +76,14 @@ ${mockito.version} test + + org.apache.maven.surefire + surefire-logger-api + ${maven-surefire-plugin.version} + + test + true + @@ -98,6 +112,23 @@ **/*LiveTest.java + + + org.junit.platform + junit-platform-surefire-provider + ${junit-platform.version} + + + org.junit.jupiter + junit-jupiter-engine + ${junit-jupiter.version} + + + org.junit.vintage + junit-vintage-engine + ${junit-jupiter.version} + + org.apache.maven.plugins @@ -187,6 +218,10 @@ + + maven-war-plugin + ${maven-war-plugin.version} + @@ -406,6 +441,7 @@ spring-4 spring-5 spring-5-reactive + spring-5-reactive-client spring-5-mvc spring-5-security spring-activiti @@ -663,6 +699,7 @@ spring-4 spring-5 spring-5-reactive + spring-5-reactive-client spring-5-mvc spring-5-security spring-activiti @@ -942,6 +979,7 @@ spark-java spring-4 spring-5-reactive + spring-5-reactive-client spring-5-mvc spring-5-security spring-activiti @@ -1220,7 +1258,7 @@ 2.19.1 2.5 1.4 - 2.6 + 3.0.0 3.1.0 1.2 2.3.1 @@ -1228,7 +1266,8 @@ 1.2 2.5.0 1.3 - 5.0.2 + 1.2.0 + 5.2.0 0.3.1 2.5.1 0.0.1 diff --git a/spring-5-mvc/pom.xml b/spring-5-mvc/pom.xml index 0408550c79..2d28eb741e 100644 --- a/spring-5-mvc/pom.xml +++ b/spring-5-mvc/pom.xml @@ -82,11 +82,6 @@ spring-boot-starter-test test - - junit - junit - test - com.jayway.restassured rest-assured @@ -137,19 +132,6 @@ - - org.apache.maven.plugins - maven-surefire-plugin - - - false - - **/*IntegrationTest.java - **/*IntTest.java - **/*LiveTest.java - - - diff --git a/spring-5-reactive-client/pom.xml b/spring-5-reactive-client/pom.xml index 9388ee83c1..f60832d545 100644 --- a/spring-5-reactive-client/pom.xml +++ b/spring-5-reactive-client/pom.xml @@ -11,8 +11,8 @@ spring 5 sample project about new features - parent-boot-2 com.baeldung + parent-boot-2 0.0.1-SNAPSHOT ../parent-boot-2 @@ -43,20 +43,6 @@ javax.json.bind javax.json.bind-api - - - - - - - - - - - - - - org.apache.geronimo.specs geronimo-json_1.1_spec @@ -102,28 +88,6 @@ test - - org.junit.jupiter - junit-jupiter-api - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.junit.platform - junit-platform-surefire-provider - ${junit.platform.version} - test - - - org.junit.platform - junit-platform-runner - ${junit.platform.version} - test - - org.projectlombok lombok @@ -145,22 +109,6 @@ JAR - - - org.apache.maven.plugins - maven-surefire-plugin - - 3 - true - methods - true - - **/*IntegrationTest.java - **/*IntTest.java - **/*LiveTest.java - - - @@ -186,13 +134,6 @@ - UTF-8 - UTF-8 - 1.8 - 1.0.0 - 5.0.0 - 2.20 - 5.0.2.RELEASE 1.0.1.RELEASE 1.1.3 1.0 diff --git a/spring-5-reactive/pom.xml b/spring-5-reactive/pom.xml index acc82be0d1..f89fd45581 100644 --- a/spring-5-reactive/pom.xml +++ b/spring-5-reactive/pom.xml @@ -43,20 +43,6 @@ org.springframework.boot spring-boot-starter-actuator - - - - - - - - - - - - - - org.projectlombok lombok @@ -100,28 +86,6 @@ ${commons-collections4.version} test - - - org.junit.jupiter - junit-jupiter-api - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.junit.platform - junit-platform-surefire-provider - ${junit.platform.version} - test - - - org.junit.platform - junit-platform-runner - ${junit.platform.version} - test - org.apache.commons commons-lang3 @@ -159,29 +123,10 @@ JAR - - - org.apache.maven.plugins - maven-surefire-plugin - - 3 - true - methods - true - - **/*IntegrationTest.java - **/*IntTest.java - **/*LiveTest.java - - - - 1.0.0 - 5.0.2 - 2.20 1.0.1.RELEASE 2.1.12 1.1.3 diff --git a/spring-5-security/pom.xml b/spring-5-security/pom.xml index 7024e6f873..ebcd6556a4 100644 --- a/spring-5-security/pom.xml +++ b/spring-5-security/pom.xml @@ -76,22 +76,6 @@ JAR - - - org.apache.maven.plugins - maven-surefire-plugin - - 3 - true - methods - true - - **/*IntegrationTest.java - **/*IntTest.java - **/*LiveTest.java - - - diff --git a/spring-5-security/src/test/java/com/baeldung/inmemory/InMemoryAuthControllerTest.java b/spring-5-security/src/test/java/com/baeldung/inmemory/InMemoryAuthControllerIntegrationTest.java similarity index 97% rename from spring-5-security/src/test/java/com/baeldung/inmemory/InMemoryAuthControllerTest.java rename to spring-5-security/src/test/java/com/baeldung/inmemory/InMemoryAuthControllerIntegrationTest.java index 7a8ea7b248..9d08cb7cfa 100644 --- a/spring-5-security/src/test/java/com/baeldung/inmemory/InMemoryAuthControllerTest.java +++ b/spring-5-security/src/test/java/com/baeldung/inmemory/InMemoryAuthControllerIntegrationTest.java @@ -14,7 +14,7 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = InMemoryAuthApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT) -public class InMemoryAuthControllerTest { +public class InMemoryAuthControllerIntegrationTest { @Autowired private TestRestTemplate template; diff --git a/spring-5/pom.xml b/spring-5/pom.xml index e37833ff94..9f60b8a364 100644 --- a/spring-5/pom.xml +++ b/spring-5/pom.xml @@ -41,18 +41,6 @@ javax.json.bind javax.json.bind-api - - - - - - - - - - - - org.apache.geronimo.specs geronimo-json_1.1_spec @@ -85,45 +73,21 @@ org.springframework spring-test - - org.springframework.boot - spring-boot-starter-test - test - org.springframework.security spring-security-test test - org.apache.commons commons-collections4 ${commons-collections4.version} test - org.junit.jupiter junit-jupiter-api - - org.junit.jupiter - junit-jupiter-engine - test - - - org.junit.platform - junit-platform-surefire-provider - ${junit.platform.version} - test - - - org.junit.platform - junit-platform-runner - ${junit.platform.version} - test - org.springframework.restdocs @@ -147,22 +111,6 @@ JAR - - - org.apache.maven.plugins - maven-surefire-plugin - - 3 - true - methods - true - - **/*IntegrationTest.java - **/*IntTest.java - **/*LiveTest.java - - - org.asciidoctor asciidoctor-maven-plugin @@ -190,9 +138,6 @@ - 1.0.0 - 5.0.2.RELEASE - 1.0.1.RELEASE 1.0 1.5.6 4.1 diff --git a/spring-boot-mvc/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java b/spring-boot-mvc/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java deleted file mode 100644 index 1add635ed8..0000000000 --- a/spring-boot-mvc/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.springbootmvc; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SpringBootMvcApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/spring-boot-vue/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java b/spring-boot-vue/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationUnitTest.java similarity index 96% rename from spring-boot-vue/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java rename to spring-boot-vue/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationUnitTest.java index 6364351eb3..567b239ed2 100644 --- a/spring-boot-vue/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationTests.java +++ b/spring-boot-vue/src/test/java/com/baeldung/springbootmvc/SpringBootMvcApplicationUnitTest.java @@ -16,7 +16,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc -public class SpringBootMvcApplicationTests { +public class SpringBootMvcApplicationUnitTest { @Autowired private MockMvc mockMvc; diff --git a/spring-boot/pom.xml b/spring-boot/pom.xml index ef30600d45..c0e386a679 100644 --- a/spring-boot/pom.xml +++ b/spring-boot/pom.xml @@ -222,6 +222,7 @@ 3.6.0 3.2.0 18.0 + 1.2.0 \ No newline at end of file diff --git a/spring-cloud/spring-cloud-connectors-heroku/pom.xml b/spring-cloud/spring-cloud-connectors-heroku/pom.xml index 875aa5ceaa..f25c190d56 100644 --- a/spring-cloud/spring-cloud-connectors-heroku/pom.xml +++ b/spring-cloud/spring-cloud-connectors-heroku/pom.xml @@ -79,7 +79,7 @@ Brixton.SR7 - 2.19.1 + 2.21.0 9.4-1201-jdbc4 diff --git a/spring-reactive-kotlin/pom.xml b/spring-reactive-kotlin/pom.xml index 8eafe9f217..f2f0dc58ec 100644 --- a/spring-reactive-kotlin/pom.xml +++ b/spring-reactive-kotlin/pom.xml @@ -19,9 +19,6 @@ - UTF-8 - UTF-8 - 1.8 1.2.41 diff --git a/spring-rest-embedded-tomcat/pom.xml b/spring-rest-embedded-tomcat/pom.xml index edccbb17d5..1a1adce6db 100644 --- a/spring-rest-embedded-tomcat/pom.xml +++ b/spring-rest-embedded-tomcat/pom.xml @@ -85,7 +85,6 @@ - 2.19.1 2.9.2 1.8 1.8 diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml index c60cc00c2c..93365264ac 100644 --- a/testing-modules/junit-5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -118,14 +118,14 @@ - 5.1.0 - 1.1.0 + 5.2.0 + 1.2.0 5.2.0 2.8.2 1.4.196 2.8.9 1.7.4 - 2.19.1 + 2.21.0 1.6.0 5.0.1.RELEASE diff --git a/testing-modules/junit5-migration/pom.xml b/testing-modules/junit5-migration/pom.xml index ae46b479bb..9d9d418774 100644 --- a/testing-modules/junit5-migration/pom.xml +++ b/testing-modules/junit5-migration/pom.xml @@ -80,10 +80,10 @@ - 5.1.0 - 1.1.0 + 5.2.0 + 1.2.0 5.2.0 - 2.19.1 + 2.21.0 1.6.0 diff --git a/testing-modules/test-containers/pom.xml b/testing-modules/test-containers/pom.xml index 2a8f434040..0ace187555 100644 --- a/testing-modules/test-containers/pom.xml +++ b/testing-modules/test-containers/pom.xml @@ -109,7 +109,7 @@ 1.7.2 42.2.2 3.12.0 - 2.19.1 + 2.21.0 From e80c93b72badd46e9f1ce8870d494ca7eb1beba1 Mon Sep 17 00:00:00 2001 From: Adrian Precub Date: Fri, 10 Aug 2018 07:40:47 +0300 Subject: [PATCH 20/22] BAEL-2039: chaos monkey for spring boot (#4889) --- spring-boot/pom.xml | 7 +++++ .../chaosmonkey/SpringBootChaosMonkeyApp.java | 15 +++++++++ .../controller/PermissionsController.java | 25 +++++++++++++++ .../service/PermissionsService.java | 17 ++++++++++ .../src/main/resources/application.properties | 31 +++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 spring-boot/src/main/java/com/baeldung/chaosmonkey/SpringBootChaosMonkeyApp.java create mode 100644 spring-boot/src/main/java/com/baeldung/chaosmonkey/controller/PermissionsController.java create mode 100644 spring-boot/src/main/java/com/baeldung/chaosmonkey/service/PermissionsService.java diff --git a/spring-boot/pom.xml b/spring-boot/pom.xml index c0e386a679..3a43dbd828 100644 --- a/spring-boot/pom.xml +++ b/spring-boot/pom.xml @@ -149,6 +149,12 @@ rome ${rome.version} + + + de.codecentric + chaos-monkey-spring-boot + ${chaos.monkey.version} + @@ -219,6 +225,7 @@ 8.5.11 2.4.1.Final 1.9.0 + 2.0.0 3.6.0 3.2.0 18.0 diff --git a/spring-boot/src/main/java/com/baeldung/chaosmonkey/SpringBootChaosMonkeyApp.java b/spring-boot/src/main/java/com/baeldung/chaosmonkey/SpringBootChaosMonkeyApp.java new file mode 100644 index 0000000000..16a0aea13b --- /dev/null +++ b/spring-boot/src/main/java/com/baeldung/chaosmonkey/SpringBootChaosMonkeyApp.java @@ -0,0 +1,15 @@ +package com.baeldung.chaosmonkey; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Created by adi on 8/2/18. + */ +@SpringBootApplication(scanBasePackages = { "com.baeldung.chaosmonkey" }) +public class SpringBootChaosMonkeyApp { + + public static void main(String[] args) { + SpringApplication.run(SpringBootChaosMonkeyApp.class, args); + } +} diff --git a/spring-boot/src/main/java/com/baeldung/chaosmonkey/controller/PermissionsController.java b/spring-boot/src/main/java/com/baeldung/chaosmonkey/controller/PermissionsController.java new file mode 100644 index 0000000000..6ceb117f4e --- /dev/null +++ b/spring-boot/src/main/java/com/baeldung/chaosmonkey/controller/PermissionsController.java @@ -0,0 +1,25 @@ +package com.baeldung.chaosmonkey.controller; + +import com.baeldung.chaosmonkey.service.PermissionsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Created by adi on 8/2/18. + */ +@RestController +@RequestMapping("/permissions") +public class PermissionsController { + + @Autowired private PermissionsService permissionsService; + + @GetMapping + public List getAllPermissions() { + return permissionsService.getAllPermissions(); + } + +} diff --git a/spring-boot/src/main/java/com/baeldung/chaosmonkey/service/PermissionsService.java b/spring-boot/src/main/java/com/baeldung/chaosmonkey/service/PermissionsService.java new file mode 100644 index 0000000000..435e262901 --- /dev/null +++ b/spring-boot/src/main/java/com/baeldung/chaosmonkey/service/PermissionsService.java @@ -0,0 +1,17 @@ +package com.baeldung.chaosmonkey.service; + +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * Created by adi on 8/2/18. + */ +@Service +public class PermissionsService { + + public List getAllPermissions() { + return Arrays.asList("CREATE", "READ", "UPDATE", "DELETE"); + } +} diff --git a/spring-boot/src/main/resources/application.properties b/spring-boot/src/main/resources/application.properties index 8c02e528ab..629e880940 100644 --- a/spring-boot/src/main/resources/application.properties +++ b/spring-boot/src/main/resources/application.properties @@ -43,3 +43,34 @@ servlet.mapping=/dispatcherExampleURL #spring.banner.image.invert= //TODO contactInfoType=email + +#chaos monkey for spring boot props +management.endpoint.chaosmonkey.enabled=true +management.endpoint.chaosmonkeyjmx.enabled=true + +spring.profiles.active=chaos-monkey +#Determine whether should execute or not +chaos.monkey.enabled=true +#How many requests are to be attacked. 1: attack each request; 5: each 5th request is attacked +chaos.monkey.assaults.level=1 +#Minimum latency in ms added to the request +chaos.monkey.assaults.latencyRangeStart=3000 +#Maximum latency in ms added to the request +chaos.monkey.assaults.latencyRangeEnd=15000 +#Latency assault active +chaos.monkey.assaults.latencyActive=true +#Exception assault active +chaos.monkey.assaults.exceptionsActive=false +#AppKiller assault active +chaos.monkey.assaults.killApplicationActive=false +#Controller watcher active +chaos.monkey.watcher.controller=false +#RestController watcher active +chaos.monkey.watcher.restController=false +#Service watcher active +chaos.monkey.watcher.service=true +#Repository watcher active +chaos.monkey.watcher.repository=false +#Component watcher active +chaos.monkey.watcher.component=false + From 52e055e770341f98e62563fc84311b2660cfaa37 Mon Sep 17 00:00:00 2001 From: Dhawal Kapil Date: Fri, 10 Aug 2018 10:16:38 +0530 Subject: [PATCH 21/22] BAEL-8141 Can we remove some of the Spring milestone/snapshot repos from modules? (#4941) BAEL-8141 --- .../spring-data-dynamodb/pom.xml | 34 ------------------- spring-5-mvc/pom.xml | 24 +------------ spring-5-reactive-client/pom.xml | 21 ------------ spring-5-security/pom.xml | 21 ------------ spring-cloud/spring-cloud-gateway/pom.xml | 23 ++----------- .../spring-cloud-ribbon-client/pom.xml | 19 ----------- spring-security-openid/pom.xml | 21 ------------ 7 files changed, 3 insertions(+), 160 deletions(-) diff --git a/persistence-modules/spring-data-dynamodb/pom.xml b/persistence-modules/spring-data-dynamodb/pom.xml index 9f2b63c17c..e5bd78d208 100644 --- a/persistence-modules/spring-data-dynamodb/pom.xml +++ b/persistence-modules/spring-data-dynamodb/pom.xml @@ -177,46 +177,12 @@ - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - dynamodb-local DynamoDB Local Release Repository ${dynamodblocal.repository.url} - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - diff --git a/spring-5-mvc/pom.xml b/spring-5-mvc/pom.xml index 2d28eb741e..f5346a0fa0 100644 --- a/spring-5-mvc/pom.xml +++ b/spring-5-mvc/pom.xml @@ -134,31 +134,9 @@ - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - + 2.9.0 1.1.2 - diff --git a/spring-5-reactive-client/pom.xml b/spring-5-reactive-client/pom.xml index f60832d545..f2f7dd1729 100644 --- a/spring-5-reactive-client/pom.xml +++ b/spring-5-reactive-client/pom.xml @@ -112,27 +112,6 @@ - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - 1.0.1.RELEASE 1.1.3 diff --git a/spring-5-security/pom.xml b/spring-5-security/pom.xml index ebcd6556a4..1435019c24 100644 --- a/spring-5-security/pom.xml +++ b/spring-5-security/pom.xml @@ -79,25 +79,4 @@ - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - \ No newline at end of file diff --git a/spring-cloud/spring-cloud-gateway/pom.xml b/spring-cloud/spring-cloud-gateway/pom.xml index db57373b6f..8babbff274 100644 --- a/spring-cloud/spring-cloud-gateway/pom.xml +++ b/spring-cloud/spring-cloud-gateway/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter org.springframework.boot @@ -54,27 +54,8 @@ - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - 2.0.0.RC2 + 2.0.1.RELEASE 6.0.2.Final diff --git a/spring-cloud/spring-cloud-ribbon-client/pom.xml b/spring-cloud/spring-cloud-ribbon-client/pom.xml index eb8398848c..fd69dbe043 100644 --- a/spring-cloud/spring-cloud-ribbon-client/pom.xml +++ b/spring-cloud/spring-cloud-ribbon-client/pom.xml @@ -38,25 +38,6 @@ - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - Brixton.SR7 diff --git a/spring-security-openid/pom.xml b/spring-security-openid/pom.xml index 9c498f3700..a2c0b6b119 100644 --- a/spring-security-openid/pom.xml +++ b/spring-security-openid/pom.xml @@ -51,27 +51,6 @@ - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - 2.2.1.RELEASE 1.0.9.RELEASE From 2a3c5b8eac0337782fcf7636fe6167cffd58605e Mon Sep 17 00:00:00 2001 From: Krzysztof Majewski Date: Fri, 10 Aug 2018 13:55:58 +0200 Subject: [PATCH 22/22] BAEL-2056 (#4945) --- .../baeldung/collection/CollectionsEmpty.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 core-java-collections/src/test/java/com/baeldung/collection/CollectionsEmpty.java diff --git a/core-java-collections/src/test/java/com/baeldung/collection/CollectionsEmpty.java b/core-java-collections/src/test/java/com/baeldung/collection/CollectionsEmpty.java new file mode 100644 index 0000000000..86a262107d --- /dev/null +++ b/core-java-collections/src/test/java/com/baeldung/collection/CollectionsEmpty.java @@ -0,0 +1,26 @@ +package com.baeldung.collection; + +import java.util.List; +import java.util.ArrayList; +import java.util.Collections; +import org.junit.Assert; +import org.junit.Test; + +public class CollectionsEmpty { + + @Test + public void givenArrayList_whenAddingElement_addsNewElement() { + ArrayList mutableList = new ArrayList<>(); + mutableList.add("test"); + + Assert.assertEquals(mutableList.size(), 1); + Assert.assertEquals(mutableList.get(0), "test"); + } + + @Test(expected = UnsupportedOperationException.class) + public void givenCollectionsEmptyList_whenAddingElement_throwsUnsupportedOperationException() { + List immutableList = Collections.emptyList(); + immutableList.add("test"); + } + +} \ No newline at end of file