diff --git a/core-java-modules/core-java-collections-list-3/src/main/java/com/baeldung/list/DuplicatesCounter.java b/core-java-modules/core-java-collections-list-3/src/main/java/com/baeldung/list/duplicatescounter/DuplicatesCounter.java similarity index 96% rename from core-java-modules/core-java-collections-list-3/src/main/java/com/baeldung/list/DuplicatesCounter.java rename to core-java-modules/core-java-collections-list-3/src/main/java/com/baeldung/list/duplicatescounter/DuplicatesCounter.java index 04e24e5fa1..b5138eed7d 100644 --- a/core-java-modules/core-java-collections-list-3/src/main/java/com/baeldung/list/DuplicatesCounter.java +++ b/core-java-modules/core-java-collections-list-3/src/main/java/com/baeldung/list/duplicatescounter/DuplicatesCounter.java @@ -1,4 +1,4 @@ -package com.baeldung.list; +package com.baeldung.list.duplicatescounter; import java.util.HashMap; import java.util.List; diff --git a/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/collection/filtering/CollectionFilteringUnitTest.java b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/collection/filtering/CollectionFilteringUnitTest.java index cbc7136192..d41c12cd23 100644 --- a/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/collection/filtering/CollectionFilteringUnitTest.java +++ b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/collection/filtering/CollectionFilteringUnitTest.java @@ -33,9 +33,9 @@ public class CollectionFilteringUnitTest { for (Employee employee : originalList) { for (String name : nameFilter) { - if (employee.getName() - .equalsIgnoreCase(name)) { + if (employee.getName().equals(name)) { filteredList.add(employee); + //break; } } } diff --git a/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/DuplicatesCounterUnitTest.java b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/duplicatescounter/DuplicatesCounterUnitTest.java similarity index 97% rename from core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/DuplicatesCounterUnitTest.java rename to core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/duplicatescounter/DuplicatesCounterUnitTest.java index 4b6a03aaef..be9ccded9b 100644 --- a/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/DuplicatesCounterUnitTest.java +++ b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/duplicatescounter/DuplicatesCounterUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.list; +package com.baeldung.list.duplicatescounter; import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; diff --git a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/file/FileClassDemoUnitTest.java b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/file/FileClassDemoUnitTest.java index b60a12d208..322060fed8 100644 --- a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/file/FileClassDemoUnitTest.java +++ b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/file/FileClassDemoUnitTest.java @@ -11,148 +11,171 @@ import static org.junit.Assert.*; public class FileClassDemoUnitTest { @Test - public void givenDirectoryCreated_whenMkdirIsInvoked_thenDirectoryIsDeleted() { - File directory = new File("testDirectory"); - if (!directory.isDirectory() || !directory.exists()) { - directory.mkdir(); - } - + public void givenDir_whenMkdir_thenDirIsDeleted() { + File directory = new File("dir"); + assertTrue(directory.mkdir()); assertTrue(directory.delete()); } @Test - public void givenFileCreated_whenCreateNewFileIsInvoked_thenFileIsDeleted() throws IOException { - File file = new File("testFile.txt"); - if (!file.isFile() || !file.exists()) { - file.createNewFile(); + public void givenFile_whenCreateNewFile_thenFileIsDeleted() { + File file = new File("file.txt"); + try { + assertTrue(file.createNewFile()); + } catch (IOException e) { + fail("Could not create " + "file.txt"); } - assertTrue(file.delete()); } + @Test + public void givenFile_whenCreateNewFile_thenMetadataIsCorrect() { + + String sep = File.separator; + + File parentDir = makeDir("filesDir"); + + File child = new File(parentDir, "file.txt"); + try { + child.createNewFile(); + } catch (IOException e) { + fail("Could not create " + "file.txt"); + } + + assertEquals("file.txt", child.getName()); + assertEquals(parentDir.getName(), child.getParentFile().getName()); + assertEquals(parentDir.getPath() + sep + "file.txt", child.getPath()); + + removeDir(parentDir); + } + @Test - public void givenFileCreated_whenCreateNewFileInvoked_thenMetadataIsAsExpected() throws IOException { + public void givenReadOnlyFile_whenCreateNewFile_thenCantModFile() { + File parentDir = makeDir("readDir"); - // different Operating systems have different separator characters - String separatorCharacter = System.getProperty("file.separator"); - - File parentDirectory = makeDirectory("filesDirectory"); - - File childFile = new File(parentDirectory, "file1.txt"); - childFile.createNewFile(); - - assertTrue(childFile.getName().equals("file1.txt")); - assertTrue(childFile.getParentFile().getName().equals(parentDirectory.getName())); - assertTrue(childFile.getPath().equals(parentDirectory.getPath() + separatorCharacter + "file1.txt")); - - removeDirectory(parentDirectory); - } - - - @Test(expected = FileNotFoundException.class) - public void givenReadOnlyFileCreated_whenCreateNewFileInvoked_thenFileCannotBeWrittenTo() throws IOException { - File parentDirectory = makeDirectory("filesDirectory"); - - File childFile = new File(parentDirectory, "file1.txt"); - childFile.createNewFile(); - - childFile.setWritable(false); - - FileOutputStream fos = new FileOutputStream(childFile); - fos.write("Hello World".getBytes()); // write operation - fos.flush(); - fos.close(); - - removeDirectory(parentDirectory); - } - - @Test(expected = FileNotFoundException.class) - public void givenWriteOnlyFileCreated_whenCreateNewFileInvoked_thenFileCannotBeReadFrom() throws IOException { - File parentDirectory = makeDirectory("filesDirectory"); - - File childFile = new File(parentDirectory, "file1.txt"); - childFile.createNewFile(); - - childFile.setReadable(false); - - FileInputStream fis = new FileInputStream(childFile); - fis.read(); // read operation - fis.close(); - - removeDirectory(parentDirectory); + File child = new File(parentDir, "file.txt"); + try { + child.createNewFile(); + } catch (IOException e) { + fail("Could not create " + "file.txt"); + } + child.setWritable(false); + boolean writable = true; + try (FileOutputStream fos = new FileOutputStream(child)) { + fos.write("Hello World".getBytes()); // write operation + fos.flush(); + } catch (IOException e) { + writable = false; + } finally { + removeDir(parentDir); + } + assertFalse(writable); } @Test - public void givenFilesCreatedInDirectory_whenCreateNewFileInvoked_thenTheyCanBeListedAsExpected() throws IOException { - File directory = makeDirectory("filtersDirectory"); + public void givenWriteOnlyFile_whenCreateNewFile_thenCantReadFile() { + File parentDir = makeDir("writeDir"); - File csvFile = new File(directory, "csvFile.csv"); - csvFile.createNewFile(); + File child = new File(parentDir, "file.txt"); + try { + child.createNewFile(); + } catch (IOException e) { + fail("Could not create " + "file.txt"); + } + child.setReadable(false); + boolean readable = true; + try (FileInputStream fis = new FileInputStream(child)) { + fis.read(); // read operation + } catch (IOException e) { + readable = false; + } finally { + removeDir(parentDir); + } + assertFalse(readable); + } - File txtFile = new File(directory, "txtFile.txt"); - txtFile.createNewFile(); + @Test + public void givenFilesInDir_whenCreateNewFile_thenCanListFiles() { + File parentDir = makeDir("filtersDir"); + + String[] files = {"file1.csv", "file2.txt"}; + for (String file : files) { + try { + new File(parentDir, file).createNewFile(); + } catch (IOException e) { + fail("Could not create " + file); + } + } //normal listing - assertEquals(2, directory.list().length); + assertEquals(2, parentDir.list().length); //filtered listing FilenameFilter csvFilter = (dir, ext) -> ext.endsWith(".csv"); - assertEquals(1, directory.list(csvFilter).length); + assertEquals(1, parentDir.list(csvFilter).length); - removeDirectory(directory); + removeDir(parentDir); } @Test - public void givenDirectoryIsCreated_whenMkdirInvoked_thenDirectoryCanBeRenamed() { + public void givenDir_whenMkdir_thenCanRenameDir() { - File source = makeDirectory("source"); - File destination = makeDirectory("destination"); - source.renameTo(destination); + File source = makeDir("source"); + File destination = makeDir("destination"); + boolean renamed = source.renameTo(destination); - assertFalse(source.isDirectory()); - assertTrue(destination.isDirectory()); + if (renamed) { + assertFalse(source.isDirectory()); + assertTrue(destination.isDirectory()); - removeDirectory(destination); + removeDir(destination); + } } @Test - public void givenDataIsWrittenToFile_whenWriteIsInvoked_thenFreeSpaceOnSystemDecreases() throws IOException { + public void givenDataWritten_whenWrite_thenFreeSpaceReduces() { - String name = System.getProperty("user.home") + System.getProperty("file.separator") + "test"; - File testDir = makeDirectory(name); + String home = System.getProperty("user.home"); + String sep = File.separator; + File testDir = makeDir(home + sep + "test"); File sample = new File(testDir, "sample.txt"); - long freeSpaceBeforeWrite = testDir.getFreeSpace(); - writeSampleDataToFile(sample); + long freeSpaceBefore = testDir.getFreeSpace(); + try { + writeSampleDataToFile(sample); + } catch (IOException e) { + fail("Could not write to " + "sample.txt"); + } - long freeSpaceAfterWrite = testDir.getFreeSpace(); - assertTrue(freeSpaceAfterWrite < freeSpaceBeforeWrite); + long freeSpaceAfter = testDir.getFreeSpace(); + assertTrue(freeSpaceAfter < freeSpaceBefore); - removeDirectory(testDir); + removeDir(testDir); } - private static File makeDirectory(String directoryName) { - File directory = new File(directoryName); + private static File makeDir(String name) { + File directory = new File(name); directory.mkdir(); if (directory.isDirectory()) { return directory; } - throw new RuntimeException("Directory not created for " + directoryName); + throw new RuntimeException("'" + name + "' not made!"); } - private static void removeDirectory(File directory) { + private static void removeDir(File directory) { // make sure you don't delete your home directory here - if (directory.getPath().equals(System.getProperty("user.home"))) { + String home = System.getProperty("user.home"); + if (directory.getPath().equals(home)) { return; } // remove directory and its files from system - if (directory != null && directory.exists()) { + if (directory.exists()) { // delete all files inside the directory - File[] filesInDirectory = directory.listFiles(); - if (filesInDirectory != null) { - List files = Arrays.asList(filesInDirectory); + File[] dirFiles = directory.listFiles(); + if (dirFiles != null) { + List files = Arrays.asList(dirFiles); files.forEach(f -> deleteFile(f)); } @@ -171,8 +194,8 @@ public class FileClassDemoUnitTest { //write sample text to file try (FileOutputStream out = new FileOutputStream(sample)) { for (int i = 1; i <= 100000; i++) { - String sampleText = "Sample line number " + i + "\n"; - out.write(sampleText.getBytes()); + String text = "Sample line number " + i + "\n"; + out.write(text.getBytes()); } } } diff --git a/core-java-modules/core-java-lang-oop-4/src/main/java/com/baeldung/strictfpUsage/Circle.java b/core-java-modules/core-java-lang-oop-4/src/main/java/com/baeldung/strictfpUsage/Circle.java new file mode 100644 index 0000000000..a1f08d1bff --- /dev/null +++ b/core-java-modules/core-java-lang-oop-4/src/main/java/com/baeldung/strictfpUsage/Circle.java @@ -0,0 +1,5 @@ +package com.baeldung.strictfpUsage; + +public strictfp interface Circle { + double computeArea(double radius); +} diff --git a/core-java-modules/core-java-lang-oop-4/src/main/java/com/baeldung/strictfpUsage/ScientificCalculator.java b/core-java-modules/core-java-lang-oop-4/src/main/java/com/baeldung/strictfpUsage/ScientificCalculator.java new file mode 100644 index 0000000000..b898c3da3e --- /dev/null +++ b/core-java-modules/core-java-lang-oop-4/src/main/java/com/baeldung/strictfpUsage/ScientificCalculator.java @@ -0,0 +1,12 @@ +package com.baeldung.strictfpUsage; + +public strictfp class ScientificCalculator { + + public double sum(double value1, double value2) { + return value1 + value2; + } + + public double diff(double value1, double value2) { + return value1 - value2; + } +} diff --git a/core-java-modules/core-java-lang-oop-4/src/test/java/com/baeldung/strictfpUsage/ScientificCalculatorUnitTest.java b/core-java-modules/core-java-lang-oop-4/src/test/java/com/baeldung/strictfpUsage/ScientificCalculatorUnitTest.java new file mode 100644 index 0000000000..775c75ca9d --- /dev/null +++ b/core-java-modules/core-java-lang-oop-4/src/test/java/com/baeldung/strictfpUsage/ScientificCalculatorUnitTest.java @@ -0,0 +1,18 @@ +package com.baeldung.strictfpUsage; + +import org.junit.Test; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + +public class ScientificCalculatorUnitTest { + + @Test + public void whenMethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms() { + ScientificCalculator calculator = new ScientificCalculator(); + double result = calculator.sum(23e10, 98e17); + assertThat(result, is(9.800000230000001E18)); + result = calculator.diff(Double.MAX_VALUE, 1.56); + assertThat(result, is(1.7976931348623157E308)); + } +} diff --git a/core-java-modules/core-java-nio/README.md b/core-java-modules/core-java-nio/README.md index f37c8a3d38..b64a436957 100644 --- a/core-java-modules/core-java-nio/README.md +++ b/core-java-modules/core-java-nio/README.md @@ -14,4 +14,4 @@ This module contains articles about core Java non-blocking input and output (IO) - [Java NIO2 Path API](https://www.baeldung.com/java-nio-2-path) - [Guide to Java NIO2 Asynchronous Channel APIs](https://www.baeldung.com/java-nio-2-async-channels) - [A Guide to NIO2 Asynchronous Socket Channel](https://www.baeldung.com/java-nio2-async-socket-channel) -- [[More -->]](/core-java-modules/core-java-nio-2) \ No newline at end of file +- [[More -->]](/core-java-modules/core-java-nio-2) diff --git a/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/debug/entity/Customer.java b/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/debug/entity/Customer.java new file mode 100644 index 0000000000..b8e1b6db5b --- /dev/null +++ b/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/debug/entity/Customer.java @@ -0,0 +1,19 @@ +package com.baeldung.streams.debug.entity; + +public class Customer { + private final String name; + private final int age; + + public Customer(String name, int age) { + this.name = name; + this.age = age; + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } +} diff --git a/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/debug/Example1.java b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/debug/Example1.java new file mode 100644 index 0000000000..d8087bc98a --- /dev/null +++ b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/debug/Example1.java @@ -0,0 +1,18 @@ +package com.baeldung.streams.debug; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.stream.IntStream; + +import org.junit.Test; + +public class Example1 { + @Test + public void whenDebugging_thenInformationIsShown() { + int[] listOutputSorted = IntStream.of(-3, 10, -4, 1, 3) + .sorted() + .toArray(); + + assertThat(listOutputSorted).isSorted(); + } +} diff --git a/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/debug/Example2.java b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/debug/Example2.java new file mode 100644 index 0000000000..56cbddf0b4 --- /dev/null +++ b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/debug/Example2.java @@ -0,0 +1,36 @@ +package com.baeldung.streams.debug; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; + +import org.junit.Test; + +import com.baeldung.streams.debug.entity.Customer; + +public class Example2 { + @Test + public void whenDebugging_thenInformationIsShown() { + List> customers = Arrays.asList( + Optional.of(new Customer("John P.", 15)), + Optional.of(new Customer("Sarah M.", 78)), + Optional.empty(), + Optional.of(new Customer("Mary T.", 20)), + Optional.empty(), + Optional.of(new Customer("Florian G.", 89)), + Optional.empty() + ); + + long numberOf65PlusCustomers = customers.stream() + .flatMap(c -> c.map(Stream::of) + .orElseGet(Stream::empty)) + .mapToInt(Customer::getAge) + .filter(c -> c > 65) + .count(); + + assertThat(numberOf65PlusCustomers).isEqualTo(2); + } +} diff --git a/core-java-modules/core-java-string-algorithms-2/README.md b/core-java-modules/core-java-string-algorithms-2/README.md index 2cd64e1920..94ace77d66 100644 --- a/core-java-modules/core-java-string-algorithms-2/README.md +++ b/core-java-modules/core-java-string-algorithms-2/README.md @@ -12,5 +12,5 @@ This module contains articles about string-related algorithms. - [Pad a String with Zeros or Spaces in Java](https://www.baeldung.com/java-pad-string) - [Remove Leading and Trailing Characters from a String](https://www.baeldung.com/java-remove-trailing-characters) - [Counting Words in a String](https://www.baeldung.com/java-word-counting) -- [Finding the Difference Between Two Strings](https://www.baeldung.com/java-difference-between-two-strings) +- [Finding the Difference Between Two Strings in Java](https://www.baeldung.com/java-difference-between-two-strings) - More articles: [[<-- prev]](../core-java-string-algorithms) diff --git a/httpclient/README.md b/httpclient/README.md index 678b195965..d88739e901 100644 --- a/httpclient/README.md +++ b/httpclient/README.md @@ -2,7 +2,7 @@ This module contains articles about HttpClient 4.x -###The Course +### The Course The "REST With Spring" Classes: http://bit.ly/restwithspring diff --git a/jackson/README.md b/jackson/README.md index f96a569617..a62a788c41 100644 --- a/jackson/README.md +++ b/jackson/README.md @@ -2,10 +2,12 @@ This module contains articles about Jackson. -###The Course +### The Course + The "REST With Spring" Classes: http://bit.ly/restwithspring ### Relevant Articles: + - [Jackson – Unmarshall to Collection/Array](https://www.baeldung.com/jackson-collection-array) - [Jackson – Custom Serializer](https://www.baeldung.com/jackson-custom-serialization) - [Getting Started with Custom Deserialization in Jackson](https://www.baeldung.com/jackson-deserialization) @@ -24,7 +26,7 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Map Serialization and Deserialization with Jackson](https://www.baeldung.com/jackson-map) - [Jackson Streaming API](https://www.baeldung.com/jackson-streaming-api) - [Jackson – JsonMappingException (No serializer found for class)](https://www.baeldung.com/jackson-jsonmappingexception) -- [How To Serialize Enums as JSON Objects with Jackson](https://www.baeldung.com/jackson-serialize-enums) +- [How To Serialize and Deserialize Enums with Jackson](https://www.baeldung.com/jackson-serialize-enums) - [Jackson – Marshall String to JsonNode](https://www.baeldung.com/jackson-json-to-jsonnode) - [Jackson – Unmarshall to Collection/Array](https://www.baeldung.com/jackson-collection-array) - [Serialize Only Fields that meet a Custom Criteria with Jackson](https://www.baeldung.com/jackson-serialize-field-custom-criteria) diff --git a/java-jdi/README.md b/java-jdi/README.md index c8c2d3e9ab..110906e845 100644 --- a/java-jdi/README.md +++ b/java-jdi/README.md @@ -2,6 +2,6 @@ This module contains articles about JDI, the Java Debug Interface. -###Relevant articles +### Relevant articles - [An Intro to the Java Debug Interface (JDI)](https://www.baeldung.com/java-debug-interface) diff --git a/linux-bash/command-line-arguments/src/main/bash/userReg-flags.sh b/linux-bash/command-line-arguments/src/main/bash/userReg-flags.sh new file mode 100644 index 0000000000..b2b4589d03 --- /dev/null +++ b/linux-bash/command-line-arguments/src/main/bash/userReg-flags.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +while getopts u:a:f: flag +do +case "${flag}" +in +u) username=${OPTARG};; +a) age=${OPTARG};; +f) fullname=${OPTARG};; +esac +done +echo "Username: $username"; +echo "Age: $age"; +echo "Full Name: $fullname"; diff --git a/linux-bash/command-line-arguments/src/main/bash/userReg-positional-parameter.sh b/linux-bash/command-line-arguments/src/main/bash/userReg-positional-parameter.sh new file mode 100644 index 0000000000..7071ff56d4 --- /dev/null +++ b/linux-bash/command-line-arguments/src/main/bash/userReg-positional-parameter.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +echo "Username: $1"; +echo "Age: $2"; +echo "Full Name: $3"; diff --git a/linux-bash/command-line-arguments/src/main/bash/users-loop.sh b/linux-bash/command-line-arguments/src/main/bash/users-loop.sh new file mode 100644 index 0000000000..545416f3e0 --- /dev/null +++ b/linux-bash/command-line-arguments/src/main/bash/users-loop.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +i=1; +for user in "$@" +do +echo "Username - $i: $user"; +i=$((i + 1)); +done diff --git a/linux-bash/command-line-arguments/src/main/bash/users-shift-operator.sh b/linux-bash/command-line-arguments/src/main/bash/users-shift-operator.sh new file mode 100644 index 0000000000..a212b62317 --- /dev/null +++ b/linux-bash/command-line-arguments/src/main/bash/users-shift-operator.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +i=1; +j=$#; +while [ $i -le $j ] +do +echo "Username - $i: $1"; +i=$((i + 1)); +shift 1; +done diff --git a/lombok/pom.xml b/lombok/pom.xml index b67320909e..5e2ad33f66 100644 --- a/lombok/pom.xml +++ b/lombok/pom.xml @@ -77,10 +77,11 @@ 1.18.10 + 1.0.0.Final - 1.18.4.0 + 1.18.10.0 3.8.0 diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/BasicAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/BasicAccount.java index 74ae51c040..a9332735c7 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/BasicAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/BasicAccount.java @@ -3,8 +3,8 @@ package com.baeldung.lombok.accessors.model; import java.math.BigDecimal; public class BasicAccount { - String name; - BigDecimal balance; + private String name; + private BigDecimal balance; public BigDecimal getBalance() { return this.balance; diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedAccount.java index 8fa9a2e8aa..0437d8f60e 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedAccount.java @@ -10,6 +10,6 @@ import java.math.BigDecimal; @Getter @Setter public class ChainedAccount { - String name; - BigDecimal balance; + private String name; + private BigDecimal balance; } diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedFluentAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedFluentAccount.java index 22e85848bd..6ebc080c94 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedFluentAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/ChainedFluentAccount.java @@ -10,6 +10,6 @@ import java.math.BigDecimal; @Getter @Setter public class ChainedFluentAccount { - String name; - BigDecimal balance; + private String name; + private BigDecimal balance; } diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/FluentAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/FluentAccount.java index bc5e6ba70e..4c2e1f7976 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/FluentAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/FluentAccount.java @@ -10,6 +10,6 @@ import java.math.BigDecimal; @Getter @Setter public class FluentAccount { - String name; - BigDecimal balance; + private String name; + private BigDecimal balance; } diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedAccount.java index e3e3ae620b..506d7adc75 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedAccount.java @@ -11,6 +11,10 @@ import java.math.BigDecimal; @Getter @Setter public class PrefixedAccount { - String sName; - BigDecimal bdBalance; + private String sName; + private BigDecimal bdBalance; + + @Accessors(prefix = "s_") + private String s_notes; + } diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedFluentAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedFluentAccount.java index 462a9b41ec..eb23bf58e2 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedFluentAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/PrefixedFluentAccount.java @@ -10,6 +10,6 @@ import java.math.BigDecimal; @Getter @Setter public class PrefixedFluentAccount { - String sName; - BigDecimal bdBalance; + private String sName; + private BigDecimal bdBalance; } diff --git a/lombok/src/main/java/com/baeldung/lombok/accessors/model/StandardAccount.java b/lombok/src/main/java/com/baeldung/lombok/accessors/model/StandardAccount.java index 89727fef19..4d0d578a4d 100644 --- a/lombok/src/main/java/com/baeldung/lombok/accessors/model/StandardAccount.java +++ b/lombok/src/main/java/com/baeldung/lombok/accessors/model/StandardAccount.java @@ -8,6 +8,6 @@ import java.math.BigDecimal; @Getter @Setter public class StandardAccount { - String name; - BigDecimal balance; + private String name; + private BigDecimal balance; } diff --git a/lombok/src/test/java/com/baeldung/lombok/accessors/AccessorsUnitTest.java b/lombok/src/test/java/com/baeldung/lombok/accessors/AccessorsUnitTest.java index 679c7d39ef..04f38bfc32 100644 --- a/lombok/src/test/java/com/baeldung/lombok/accessors/AccessorsUnitTest.java +++ b/lombok/src/test/java/com/baeldung/lombok/accessors/AccessorsUnitTest.java @@ -12,11 +12,11 @@ public class AccessorsUnitTest { @Test public void givenBasicAccount_thenUseBasicAccessors() { BasicAccount account = new BasicAccount(); - account.setBalance(BigDecimal.TEN); account.setName("Basic Accessors"); + account.setBalance(BigDecimal.TEN); - assertEquals(BigDecimal.TEN, account.getBalance()); assertEquals("Basic Accessors", account.getName()); + assertEquals(BigDecimal.TEN, account.getBalance()); } @Test @@ -25,8 +25,8 @@ public class AccessorsUnitTest { account.name("Fluent Account"); account.balance(BigDecimal.TEN); - assertEquals(BigDecimal.TEN, account.balance()); assertEquals("Fluent Account", account.name()); + assertEquals(BigDecimal.TEN, account.balance()); } @Test @@ -34,8 +34,8 @@ public class AccessorsUnitTest { ChainedAccount account = new ChainedAccount(); account.setName("Chained Account").setBalance(BigDecimal.TEN); - assertEquals(BigDecimal.TEN, account.getBalance()); assertEquals("Chained Account", account.getName()); + assertEquals(BigDecimal.TEN, account.getBalance()); } @Test @@ -44,8 +44,8 @@ public class AccessorsUnitTest { .name("Fluent Account") .balance(BigDecimal.TEN); - assertEquals(BigDecimal.TEN, account.balance()); assertEquals("Fluent Account", account.name()); + assertEquals(BigDecimal.TEN, account.balance()); } @Test @@ -53,9 +53,11 @@ public class AccessorsUnitTest { PrefixedAccount account = new PrefixedAccount(); account.setName("Prefixed Fields"); account.setBalance(BigDecimal.TEN); + account.setNotes("Notes"); - assertEquals(BigDecimal.TEN, account.getBalance()); assertEquals("Prefixed Fields", account.getName()); + assertEquals(BigDecimal.TEN, account.getBalance()); + assertEquals("Notes", account.getNotes()); } @Test @@ -65,8 +67,8 @@ public class AccessorsUnitTest { .name("Prefixed Fluent Fields") .balance(BigDecimal.TEN); - assertEquals(BigDecimal.TEN, account.balance()); assertEquals("Prefixed Fluent Fields", account.name()); + assertEquals(BigDecimal.TEN, account.balance()); } } diff --git a/mapstruct/README.md b/mapstruct/README.md index f5a1e1a092..9887a7f43d 100644 --- a/mapstruct/README.md +++ b/mapstruct/README.md @@ -2,7 +2,8 @@ This module contains articles about MapStruct. -###Relevant Articles: +### Relevant Articles: + - [Quick Guide to MapStruct](https://www.baeldung.com/mapstruct) - [Custom Mapper with MapStruct](https://www.baeldung.com/mapstruct-custom-mapper) - [Using Multiple Source Objects with MapStruct](https://www.baeldung.com/mapstruct-multiple-source-objects) diff --git a/persistence-modules/hibernate5-2/README.md b/persistence-modules/hibernate5-2/README.md new file mode 100644 index 0000000000..c61552f305 --- /dev/null +++ b/persistence-modules/hibernate5-2/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: +- [Hibernate Error “Not all named parameters have been set”](https://www.baeldung.com/hibernate-error-named-parameters-not-set) + diff --git a/persistence-modules/spring-data-cassandra-reactive/README.md b/persistence-modules/spring-data-cassandra-reactive/README.md index 87a61d46b3..5352843850 100644 --- a/persistence-modules/spring-data-cassandra-reactive/README.md +++ b/persistence-modules/spring-data-cassandra-reactive/README.md @@ -1,3 +1,3 @@ -#Relevant Articles +### Relevant Articles - [Spring Data with Reactive Cassandra](https://www.baeldung.com/spring-data-cassandra-reactive) diff --git a/persistence-modules/spring-data-jpa-3/README.md b/persistence-modules/spring-data-jpa-3/README.md new file mode 100644 index 0000000000..28e62a9de1 --- /dev/null +++ b/persistence-modules/spring-data-jpa-3/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: +- [Programmatic Transaction Management in Spring](https://www.baeldung.com/spring-programmatic-transaction-management) + diff --git a/pom.xml b/pom.xml index 6f980a893a..c974ba15d9 100644 --- a/pom.xml +++ b/pom.xml @@ -610,7 +610,7 @@ tensorflow-java spf4j - spring-boot-configuration + spring-boot-config-jpa-error spring-boot-flowable spring-boot-mvc-2 spring-boot-performance @@ -697,7 +697,7 @@ spring-boot-bootstrap spring-boot-camel - spring-boot-configuration + spring-boot-config-jpa-error spring-boot-client spring-boot-crud diff --git a/spring-5/README.md b/spring-5/README.md index 8a0cbe807e..857b199562 100644 --- a/spring-5/README.md +++ b/spring-5/README.md @@ -15,4 +15,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Spring ResponseStatusException](https://www.baeldung.com/spring-response-status-exception) - [Spring Assert Statements](https://www.baeldung.com/spring-assert) - [Configuring a Hikari Connection Pool with Spring Boot](https://www.baeldung.com/spring-boot-hikari) -- [Difference between vs ](https://www.baeldung.com/spring-contextannotation-contextcomponentscan) +- [Difference between \ vs \](https://www.baeldung.com/spring-contextannotation-contextcomponentscan) diff --git a/spring-boot-configuration/README.md b/spring-boot-config-jpa-error/README.md similarity index 57% rename from spring-boot-configuration/README.md rename to spring-boot-config-jpa-error/README.md index af634aa5f4..39047a4207 100644 --- a/spring-boot-configuration/README.md +++ b/spring-boot-config-jpa-error/README.md @@ -1,6 +1,6 @@ -# Spring Boot Configuration +# Spring Boot - DataJpaTest Error -This module contains articles about Spring Boot Configuration. +This module contains examples about a corner case using @DataJpaTest with a multi module project. ### Relevant Articles: - [Unable to Find @SpringBootConfiguration with @DataJpaTest](https://www.baeldung.com/spring-boot-unable-to-find-springbootconfiguration-with-datajpatest) diff --git a/spring-boot-configuration/data-jpa-application/pom.xml b/spring-boot-config-jpa-error/data-jpa-application/pom.xml similarity index 74% rename from spring-boot-configuration/data-jpa-application/pom.xml rename to spring-boot-config-jpa-error/data-jpa-application/pom.xml index b1bf6fda43..2952ff4c4c 100644 --- a/spring-boot-configuration/data-jpa-application/pom.xml +++ b/spring-boot-config-jpa-error/data-jpa-application/pom.xml @@ -5,8 +5,8 @@ 0.0.1-SNAPSHOT - com.baeldung.spring-boot-configuration - spring-boot-configuration + com.baeldung.spring-boot-config-jpa-error + spring-boot-config-jpa-error 0.0.1-SNAPSHOT \ No newline at end of file diff --git a/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java b/spring-boot-config-jpa-error/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java similarity index 100% rename from spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java rename to spring-boot-config-jpa-error/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java diff --git a/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java b/spring-boot-config-jpa-error/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java similarity index 100% rename from spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java rename to spring-boot-config-jpa-error/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java diff --git a/spring-boot-configuration/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java b/spring-boot-config-jpa-error/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java similarity index 100% rename from spring-boot-configuration/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java rename to spring-boot-config-jpa-error/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java diff --git a/spring-boot-configuration/data-jpa-library/pom.xml b/spring-boot-config-jpa-error/data-jpa-library/pom.xml similarity index 74% rename from spring-boot-configuration/data-jpa-library/pom.xml rename to spring-boot-config-jpa-error/data-jpa-library/pom.xml index 1534e7ed23..f8b876b65b 100644 --- a/spring-boot-configuration/data-jpa-library/pom.xml +++ b/spring-boot-config-jpa-error/data-jpa-library/pom.xml @@ -5,8 +5,8 @@ 0.0.1-SNAPSHOT - com.baeldung.spring-boot-configuration - spring-boot-configuration + com.baeldung.spring-boot-config-jpa-error + spring-boot-config-jpa-error 0.0.1-SNAPSHOT \ No newline at end of file diff --git a/spring-boot-configuration/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java b/spring-boot-config-jpa-error/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java similarity index 100% rename from spring-boot-configuration/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java rename to spring-boot-config-jpa-error/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java diff --git a/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java b/spring-boot-config-jpa-error/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java similarity index 100% rename from spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java rename to spring-boot-config-jpa-error/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java diff --git a/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java b/spring-boot-config-jpa-error/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java similarity index 100% rename from spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java rename to spring-boot-config-jpa-error/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java diff --git a/spring-boot-configuration/pom.xml b/spring-boot-config-jpa-error/pom.xml similarity index 93% rename from spring-boot-configuration/pom.xml rename to spring-boot-config-jpa-error/pom.xml index e4473c3f2d..12087aa610 100644 --- a/spring-boot-configuration/pom.xml +++ b/spring-boot-config-jpa-error/pom.xml @@ -1,8 +1,8 @@ 4.0.0 - com.baeldung.spring-boot-configuration - spring-boot-configuration + com.baeldung.spring-boot-config-jpa-error + spring-boot-config-jpa-error 0.0.1-SNAPSHOT pom diff --git a/spring-boot-springdoc/README.md b/spring-boot-springdoc/README.md new file mode 100644 index 0000000000..e54f4e926f --- /dev/null +++ b/spring-boot-springdoc/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: +- [Documenting a Spring REST API Using OpenAPI 3.0](https://www.baeldung.com/spring-rest-openapi-documentation) + diff --git a/spring-cloud/spring-cloud-stream-starters/README.md b/spring-cloud/spring-cloud-stream-starters/README.md index 761d54abbd..5b9b70e4f1 100644 --- a/spring-cloud/spring-cloud-stream-starters/README.md +++ b/spring-cloud/spring-cloud-stream-starters/README.md @@ -1,3 +1,3 @@ -#Revelant Articles: +# Relevant Articles: - [Using a Spring Cloud App Starter](http://www.baeldung.com/spring-cloud-app-starter) diff --git a/spring-core-3/README.md b/spring-core-3/README.md index 7ca95ae78e..1c5d911402 100644 --- a/spring-core-3/README.md +++ b/spring-core-3/README.md @@ -1,7 +1,7 @@ ## Relevant Articles: - [Understanding getBean() in Spring](https://www.baeldung.com/spring-getbean) -- [Exploring the Spring BeanFactory API](https://www.baeldung.com/spring-beanfactory) +- [Guide to the Spring BeanFactory](https://www.baeldung.com/spring-beanfactory) - [How to use the Spring FactoryBean?](https://www.baeldung.com/spring-factorybean) - [Spring – Injecting Collections](https://www.baeldung.com/spring-injecting-collections) -- More articles: [[<-- prev]](/spring-core-2) \ No newline at end of file +- More articles: [[<-- prev]](/spring-core-2) diff --git a/spring-mvc-xml/README.md b/spring-mvc-xml/README.md index 44a20e1527..0adf127aaa 100644 --- a/spring-mvc-xml/README.md +++ b/spring-mvc-xml/README.md @@ -2,10 +2,12 @@ This module contains articles about Spring MVC with XML configuration -###The Course +### The Course + The "REST With Spring" Classes: http://bit.ly/restwithspring ### Relevant Articles: + - [Java Session Timeout](https://www.baeldung.com/servlet-session-timeout) - [Returning Image/Media Data with Spring MVC](https://www.baeldung.com/spring-mvc-image-media-data) - [Geolocation by IP in Java](https://www.baeldung.com/geolocation-by-ip-with-maxmind) @@ -17,4 +19,5 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Debugging the Spring MVC 404 “No mapping found for HTTP request” Error](https://www.baeldung.com/spring-mvc-404-error) ## Spring MVC with XML Configuration Example Project + - access a sample jsp page at: `http://localhost:8080/spring-mvc-xml/sample.html` diff --git a/spring-security-mvc-custom/README.md b/spring-security-mvc-custom/README.md index 1a131f4c23..5eb6169f4b 100644 --- a/spring-security-mvc-custom/README.md +++ b/spring-security-mvc-custom/README.md @@ -2,10 +2,12 @@ This module contains articles about Spring Security with custom MVC applications -###The Course +### The Course + The "REST With Spring" Classes: http://github.learnspringsecurity.com ### Relevant Articles: + - [Spring Security Remember Me](https://www.baeldung.com/spring-security-remember-me) - [Redirect to different pages after Login with Spring Security](https://www.baeldung.com/spring_redirect_after_login) - [Changing Spring Model Parameters with Handler Interceptor](https://www.baeldung.com/spring-model-parameters-with-handler-interceptor) @@ -15,6 +17,7 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com - [How to Manually Authenticate User with Spring Security](https://www.baeldung.com/manually-set-user-authentication-spring-security) ### Build the Project + ``` mvn clean install ``` diff --git a/spring-security-mvc-digest-auth/README.md b/spring-security-mvc-digest-auth/README.md index 0d36dbfd63..be06d63fc4 100644 --- a/spring-security-mvc-digest-auth/README.md +++ b/spring-security-mvc-digest-auth/README.md @@ -2,10 +2,12 @@ This module contains articles about digest authentication with Spring Security -###The Course +### The Course + The "Learn Spring Security" Classes: http://github.learnspringsecurity.com ### Relevant Article: + - [Spring Security Digest Authentication](https://www.baeldung.com/spring-security-digest-authentication) - [RestTemplate with Digest Authentication](https://www.baeldung.com/resttemplate-digest-authentication) diff --git a/spring-security-mvc-ldap/README.md b/spring-security-mvc-ldap/README.md index 3230c0398a..288791b389 100644 --- a/spring-security-mvc-ldap/README.md +++ b/spring-security-mvc-ldap/README.md @@ -2,14 +2,17 @@ This module contains articles about Spring Security LDAP -###The Course +### The Course + The "Learn Spring Security" Classes: http://github.learnspringsecurity.com ### Relevant Article: + - [Spring Security – security none, filters none, access permitAll](https://www.baeldung.com/security-none-filters-none-access-permitAll) - [Intro to Spring Security LDAP](https://www.baeldung.com/spring-security-ldap) ### Notes + - the project uses Spring Boot - simply run 'SampleLDAPApplication.java' to start up Spring Boot with a Tomcat container and embedded LDAP server. - Once started, open 'http://localhost:8080' - This will display the publicly available Home Page diff --git a/spring-security-mvc-persisted-remember-me/README.md b/spring-security-mvc-persisted-remember-me/README.md index e3003e89e2..e1208330a3 100644 --- a/spring-security-mvc-persisted-remember-me/README.md +++ b/spring-security-mvc-persisted-remember-me/README.md @@ -2,13 +2,16 @@ This module contains articles about 'remember me' with Spring Security -###The Course +### The Course + The "Learn Spring Security" Classes: http://github.learnspringsecurity.com ### Relevant Articles: + - [Spring Security – Persistent Remember Me](https://www.baeldung.com/spring-security-persistent-remember-me) ### Build the Project + ``` mvn clean install ``` diff --git a/spring-security-mvc/README.md b/spring-security-mvc/README.md index a458127c61..7d1a492cd3 100644 --- a/spring-security-mvc/README.md +++ b/spring-security-mvc/README.md @@ -2,15 +2,18 @@ This module contains articles about Spring Security in MVC applications -###The Course +### The Course + The "Learn Spring Security" Classes: http://github.learnspringsecurity.com ### Relevant Articles: + - [HttpSessionListener Example – Monitoring](https://www.baeldung.com/httpsessionlistener_with_metrics) - [Control the Session with Spring Security](https://www.baeldung.com/spring-security-session) ### Build the Project + ``` mvn clean install ``` diff --git a/spring-security-rest-basic-auth/README.md b/spring-security-rest-basic-auth/README.md index d12427a106..af6dd598cc 100644 --- a/spring-security-rest-basic-auth/README.md +++ b/spring-security-rest-basic-auth/README.md @@ -2,11 +2,12 @@ This module contains articles about basic authentication in RESTful APIs with Spring Security -###The Course +### The Course The "Learn Spring Security" Classes: http://github.learnspringsecurity.com ### Relevant Articles: + - [Basic Authentication with the RestTemplate](https://www.baeldung.com/how-to-use-resttemplate-with-basic-authentication-in-spring) - [A Custom Filter in the Spring Security Filter Chain](https://www.baeldung.com/spring-security-custom-filter) - [Spring Security Basic Authentication](https://www.baeldung.com/spring-security-basic-authentication) diff --git a/spring-security-rest-custom/README.md b/spring-security-rest-custom/README.md index 15cbc22b5f..be360e035e 100644 --- a/spring-security-rest-custom/README.md +++ b/spring-security-rest-custom/README.md @@ -2,10 +2,12 @@ This module contains articles about REST APIs with Spring Security -###The Course +### The Course + The "REST With Spring" Classes: http://github.learnspringsecurity.com ### Relevant Articles: + - [Spring Security Authentication Provider](https://www.baeldung.com/spring-security-authentication-provider) - [Retrieve User Information in Spring Security](https://www.baeldung.com/get-user-in-spring-security) - [Spring Security – Run-As Authentication](https://www.baeldung.com/spring-security-run-as-auth) diff --git a/testing-modules/rest-assured/README.md b/testing-modules/rest-assured/README.md index 0012a63012..96d3c5e353 100644 --- a/testing-modules/rest-assured/README.md +++ b/testing-modules/rest-assured/README.md @@ -1,4 +1,5 @@ -###Relevant Articles: +### Relevant Articles: + - [A Guide to REST-assured](http://www.baeldung.com/rest-assured-tutorial) - [REST-assured Support for Spring MockMvc](https://www.baeldung.com/spring-mock-mvc-rest-assured) - [Getting and Verifying Response Data with REST-assured](https://www.baeldung.com/rest-assured-response) diff --git a/testing-modules/rest-testing/README.md b/testing-modules/rest-testing/README.md index 2d366bd550..27e77e0f51 100644 --- a/testing-modules/rest-testing/README.md +++ b/testing-modules/rest-testing/README.md @@ -2,10 +2,12 @@ ## REST Testing and Examples -###The Course +### The Course + The "REST With Spring" Classes: http://bit.ly/restwithspring ### Relevant Articles: + - [Introduction to WireMock](http://www.baeldung.com/introduction-to-wiremock) - [Using WireMock Scenarios](https://www.baeldung.com/wiremock-scenarios) - [REST API Testing with Cucumber](http://www.baeldung.com/cucumber-rest-api-testing) diff --git a/testing-modules/xmlunit-2/README.md b/testing-modules/xmlunit-2/README.md index 72b683796e..55c2c651f2 100644 --- a/testing-modules/xmlunit-2/README.md +++ b/testing-modules/xmlunit-2/README.md @@ -1,2 +1,3 @@ -###Relevant Articles: +### Relevant Articles: + - [Introduction To XMLUnit 2.x](http://www.baeldung.com/xmlunit2)