diff --git a/.gitignore b/.gitignore
index 5be11c71ff..2edea19340 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
*/bin/*
+bin/
*.class
@@ -21,6 +22,9 @@
*.iws
out/
+# VSCode
+.vscode/
+
# Mac
.DS_Store
diff --git a/README.md b/README.md
index 1030cbb09c..7f78cf1515 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Running a Spring Boot module
====================
To run a Spring Boot module run the command: `mvn spring-boot:run` in the module directory
-#Running Tests
+###Running Tests
The command `mvn clean install` will run the unit tests in a module.
To run the integration tests, use the command `mvn clean install -Pintegration-lite-first`
diff --git a/algorithms-miscellaneous-3/README.md b/algorithms-miscellaneous-3/README.md
index 71541cd2b3..cd3711d573 100644
--- a/algorithms-miscellaneous-3/README.md
+++ b/algorithms-miscellaneous-3/README.md
@@ -6,4 +6,4 @@
- [Practical Java Examples of the Big O Notation](http://www.baeldung.com/java-algorithm-complexity)
- [Checking If a List Is Sorted in Java](https://www.baeldung.com/java-check-if-list-sorted)
- [Checking if a Java Graph has a Cycle](https://www.baeldung.com/java-graph-has-a-cycle)
-- [A Guide to the Folding Technique](https://www.baeldung.com/folding-hashing-technique)
+- [A Guide to the Folding Technique in Java](https://www.baeldung.com/folding-hashing-technique)
diff --git a/apache-olingo/olingo2/pom.xml b/apache-olingo/olingo2/pom.xml
index e3647b9c57..24e7b4e0b2 100644
--- a/apache-olingo/olingo2/pom.xml
+++ b/apache-olingo/olingo2/pom.xml
@@ -82,7 +82,6 @@
- 1.8
2.0.11
diff --git a/aws/pom.xml b/aws/pom.xml
index 560f9145f9..75d5aac1eb 100644
--- a/aws/pom.xml
+++ b/aws/pom.xml
@@ -112,7 +112,6 @@
- 2.5
1.3.0
1.1.0
2.8.0
diff --git a/core-groovy-2/pom.xml b/core-groovy-2/pom.xml
index 53b3e6a7ec..ba3fd0802b 100644
--- a/core-groovy-2/pom.xml
+++ b/core-groovy-2/pom.xml
@@ -175,8 +175,6 @@
1.0.0
2.4.0
1.1-groovy-2.4
- 3.9
- 1.8
3.8.1
1.2.3
2.5.7
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy b/core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy
new file mode 100644
index 0000000000..1d7527726e
--- /dev/null
+++ b/core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy
@@ -0,0 +1,52 @@
+package com.baeldung.concatenate
+
+class Wonder {
+
+ String numOfWonder = 'seven'
+
+ String operator_plus() {
+ return 'The ' + numOfWonder + ' wonders of the world'
+ }
+
+ String operator_left() {
+ return 'The ' << numOfWonder << ' wonders of ' << 'the world'
+ }
+
+ String interpolation_one() {
+ return "The $numOfWonder wonders of the world"
+
+ }
+
+ String interpolation_two() {
+ return "The ${numOfWonder} wonders of the world"
+ }
+
+ String multilineString() {
+ return """
+ There are $numOfWonder wonders of the world.
+ Can you name them all?
+ 1. The Great Pyramid of Giza
+ 2. Hanging Gardens of Babylon
+ 3. Colossus of Rhode
+ 4. Lighthouse of Alexendra
+ 5. Temple of Artemis
+ 6. Status of Zeus at Olympia
+ 7. Mausoleum at Halicarnassus
+ """
+ }
+
+ String method_concat() {
+ return 'The '.concat(numOfWonder).concat(' wonders of the world')
+
+ }
+
+ String method_builder() {
+ return new StringBuilder()
+ .append('The ').append(numOfWonder).append(' wonders of the world')
+ }
+
+ String method_buffer() {
+ return new StringBuffer()
+ .append('The ').append(numOfWonder).append(' wonders of the world')
+ }
+}
\ No newline at end of file
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy b/core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy
new file mode 100644
index 0000000000..5fc74abd69
--- /dev/null
+++ b/core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy
@@ -0,0 +1,69 @@
+package com.baeldung.concatenate
+
+import org.junit.Before
+import org.junit.Test
+
+import static org.junit.Assert.*
+
+class WonderUnitTest {
+
+ static final String EXPECTED_SINGLE_LINE = "The seven wonders of the world"
+
+ Wonder wonder
+
+ @Before
+ void before() {
+ wonder = new Wonder()
+ }
+
+ @Test
+ void whenUsingOperatorPlus_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.operator_plus())
+ }
+
+ @Test
+ void whenUsingOperatorLeft_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.operator_left())
+ }
+
+ @Test
+ void whenUsingInterpolationOne_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.interpolation_one())
+ }
+
+ @Test
+ void whenUsingInterpolationTwo_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.interpolation_two())
+ }
+
+ @Test
+ void whenUsingMultiline_thenConcatCorrectly() {
+ def expectedMultiline = """
+ There are seven wonders of the world.
+ Can you name them all?
+ 1. The Great Pyramid of Giza
+ 2. Hanging Gardens of Babylon
+ 3. Colossus of Rhode
+ 4. Lighthouse of Alexendra
+ 5. Temple of Artemis
+ 6. Status of Zeus at Olympia
+ 7. Mausoleum at Halicarnassus
+ """
+ assertEquals(expectedMultiline, wonder.multilineString())
+ }
+
+ @Test
+ void whenUsingMethodConcat_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.method_concat())
+ }
+
+ @Test
+ void whenUsingMethodBuilder_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.method_builder())
+ }
+
+ @Test
+ void whenUsingMethodBuffer_thenConcatCorrectly() {
+ assertEquals(EXPECTED_SINGLE_LINE, wonder.method_buffer())
+ }
+}
diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/README.md b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/README.md
new file mode 100644
index 0000000000..6f8f95970e
--- /dev/null
+++ b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/README.md
@@ -0,0 +1,3 @@
+## Relevant articles:
+
+- [Negate a Predicate Method Reference with Java 11](https://www.baeldung.com/java-negate-predicate-method-reference)
diff --git a/core-java-modules/core-java-12/README.md b/core-java-modules/core-java-12/README.md
new file mode 100644
index 0000000000..4514fd1a2b
--- /dev/null
+++ b/core-java-modules/core-java-12/README.md
@@ -0,0 +1,3 @@
+## Relevant articles:
+
+- [String API Updates in Java 12](https://www.baeldung.com/java12-string-api)
diff --git a/core-java-modules/core-java-8/pom.xml b/core-java-modules/core-java-8/pom.xml
index c09c970e07..28182e515b 100644
--- a/core-java-modules/core-java-8/pom.xml
+++ b/core-java-modules/core-java-8/pom.xml
@@ -175,7 +175,6 @@
- 3.5
3.6.1
4.1
4.01
diff --git a/core-java-modules/core-java-8/src/test/java/com/baeldung/java8/optional/OptionalUnitTest.java b/core-java-modules/core-java-8/src/test/java/com/baeldung/java8/optional/OptionalUnitTest.java
index bd7943c77b..bf594610bb 100644
--- a/core-java-modules/core-java-8/src/test/java/com/baeldung/java8/optional/OptionalUnitTest.java
+++ b/core-java-modules/core-java-8/src/test/java/com/baeldung/java8/optional/OptionalUnitTest.java
@@ -259,4 +259,15 @@ public class OptionalUnitTest {
LOG.debug("Getting default value...");
return "Default Value";
}
+
+// Uncomment code when code base is compatiable with Java 11
+// @Test
+// public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected() {
+// Optional opt = Optional.of("Baeldung");
+// assertFalse(opt.isEmpty());
+//
+// opt = Optional.ofNullable(null);
+// assertTrue(opt.isEmpty());
+// }
+
}
\ No newline at end of file
diff --git a/core-java-modules/core-java-collections-array-list/src/test/java/org/baeldung/java/collections/CoreJavaCollectionsUnitTest.java b/core-java-modules/core-java-collections-array-list/src/test/java/org/baeldung/java/collections/CoreJavaCollectionsUnitTest.java
index ecf68e0b2c..5f7fe356c5 100644
--- a/core-java-modules/core-java-collections-array-list/src/test/java/org/baeldung/java/collections/CoreJavaCollectionsUnitTest.java
+++ b/core-java-modules/core-java-collections-array-list/src/test/java/org/baeldung/java/collections/CoreJavaCollectionsUnitTest.java
@@ -42,7 +42,7 @@ public class CoreJavaCollectionsUnitTest {
@Test(expected = UnsupportedOperationException.class)
public final void givenUsingGuavaBuilder_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
final List list = new ArrayList(Arrays.asList("one", "two", "three"));
- final ImmutableList