diff --git a/.gitignore b/.gitignore index c54117203f..fe56746dfd 100644 --- a/.gitignore +++ b/.gitignore @@ -85,5 +85,6 @@ transaction.log *-shell.log apache-cxf/cxf-aegis/baeldung.xml +testing-modules/report-*.json libraries-2/*.db \ No newline at end of file diff --git a/algorithms-miscellaneous-6/README.md b/algorithms-miscellaneous-6/README.md index 6e435e3741..6ddae75f43 100644 --- a/algorithms-miscellaneous-6/README.md +++ b/algorithms-miscellaneous-6/README.md @@ -8,4 +8,5 @@ - [Introduction to Greedy Algorithms with Java](https://www.baeldung.com/java-greedy-algorithms) - [The Caesar Cipher in Java](https://www.baeldung.com/java-caesar-cipher) - [Implementing a 2048 Solver in Java](https://www.baeldung.com/2048-java-solver) +- [Finding Top K Elements in an Array](https://www.baeldung.com/java-array-top-elements) - More articles: [[<-- prev]](/../algorithms-miscellaneous-5) diff --git a/algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java b/algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java new file mode 100644 index 0000000000..2bd1a20ce0 --- /dev/null +++ b/algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java @@ -0,0 +1,126 @@ +package com.baeldung.algorithms.kthsmallest; + +import java.util.Arrays; +import java.util.NoSuchElementException; + +import static java.lang.Math.max; +import static java.lang.Math.min; + +public class KthSmallest { + + public static int findKthSmallestElement(int k, int[] list1, int[] list2) throws NoSuchElementException, IllegalArgumentException { + + checkInput(k, list1, list2); + + // we are looking for the minimum value + if(k == 1) { + return min(list1[0], list2[0]); + } + + // we are looking for the maximum value + if(list1.length + list2.length == k) { + return max(list1[list1.length-1], list2[list2.length-1]); + } + + // swap lists if needed to make sure we take at least one element from list1 + if(k <= list2.length && list2[k-1] < list1[0]) { + int[] list1_ = list1; + list1 = list2; + list2 = list1_; + } + + // correct left boundary if k is bigger than the size of list2 + int left = k < list2.length ? 0 : k - list2.length - 1; + + // the inital right boundary cannot exceed the list1 + int right = min(k-1, list1.length - 1); + + int nElementsList1, nElementsList2; + + // binary search + do { + nElementsList1 = ((left + right) / 2) + 1; + nElementsList2 = k - nElementsList1; + + if(nElementsList2 > 0) { + if (list1[nElementsList1 - 1] > list2[nElementsList2 - 1]) { + right = nElementsList1 - 2; + } else { + left = nElementsList1; + } + } + } while(!kthSmallesElementFound(list1, list2, nElementsList1, nElementsList2)); + + return nElementsList2 == 0 ? list1[nElementsList1-1] : max(list1[nElementsList1-1], list2[nElementsList2-1]); + } + + private static boolean kthSmallesElementFound(int[] list1, int[] list2, int nElementsList1, int nElementsList2) { + + // we do not take any element from the second list + if(nElementsList2 < 1) { + return true; + } + + if(list1[nElementsList1-1] == list2[nElementsList2-1]) { + return true; + } + + if(nElementsList1 == list1.length) { + return list1[nElementsList1-1] <= list2[nElementsList2]; + } + + if(nElementsList2 == list2.length) { + return list2[nElementsList2-1] <= list1[nElementsList1]; + } + + return list1[nElementsList1-1] <= list2[nElementsList2] && list2[nElementsList2-1] <= list1[nElementsList1]; + } + + + private static void checkInput(int k, int[] list1, int[] list2) throws NoSuchElementException, IllegalArgumentException { + + if(list1 == null || list2 == null || k < 1) { + throw new IllegalArgumentException(); + } + + if(list1.length == 0 || list2.length == 0) { + throw new IllegalArgumentException(); + } + + if(k > list1.length + list2.length) { + throw new NoSuchElementException(); + } + } + + public static int getKthElementSorted(int[] list1, int[] list2, int k) { + + int length1 = list1.length, length2 = list2.length; + int[] combinedArray = new int[length1 + length2]; + System.arraycopy(list1, 0, combinedArray, 0, list1.length); + System.arraycopy(list2, 0, combinedArray, list1.length, list2.length); + Arrays.sort(combinedArray); + + return combinedArray[k-1]; + } + + public static int getKthElementMerge(int[] list1, int[] list2, int k) { + + int i1 = 0, i2 = 0; + + while(i1 < list1.length && i2 < list2.length && (i1 + i2) < k) { + if(list1[i1] < list2[i2]) { + i1++; + } else { + i2++; + } + } + + if((i1 + i2) < k) { + return i1 < list1.length ? list1[k - i2 - 1] : list2[k - i1 - 1]; + } else if(i1 > 0 && i2 > 0) { + return Math.max(list1[i1-1], list2[i2-1]); + } else { + return i1 == 0 ? list2[i2-1] : list1[i1-1]; + } + } +} diff --git a/algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java b/algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java new file mode 100644 index 0000000000..740e89d8e7 --- /dev/null +++ b/algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java @@ -0,0 +1,288 @@ +package com.baeldung.algorithms.kthsmallest; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.function.Executable; + +import java.util.*; + +import static com.baeldung.algorithms.kthsmallest.KthSmallest.*; +import static org.junit.jupiter.api.Assertions.*; + +public class KthSmallestUnitTest { + + @Nested + class Exceptions { + + @Test + public void when_at_least_one_list_is_null_then_an_exception_is_thrown() { + + Executable executable1 = () -> findKthSmallestElement(1, null, null); + Executable executable2 = () -> findKthSmallestElement(1, new int[]{2}, null); + Executable executable3 = () -> findKthSmallestElement(1, null, new int[]{2}); + + assertThrows(IllegalArgumentException.class, executable1); + assertThrows(IllegalArgumentException.class, executable2); + assertThrows(IllegalArgumentException.class, executable3); + } + + @Test + public void when_at_least_one_list_is_empty_then_an_exception_is_thrown() { + + Executable executable1 = () -> findKthSmallestElement(1, new int[]{}, new int[]{2}); + Executable executable2 = () -> findKthSmallestElement(1, new int[]{2}, new int[]{}); + Executable executable3 = () -> findKthSmallestElement(1, new int[]{}, new int[]{}); + + assertThrows(IllegalArgumentException.class, executable1); + assertThrows(IllegalArgumentException.class, executable2); + assertThrows(IllegalArgumentException.class, executable3); + } + + @Test + public void when_k_is_smaller_than_0_then_an_exception_is_thrown() { + Executable executable1 = () -> findKthSmallestElement(-1, new int[]{2}, new int[]{2}); + assertThrows(IllegalArgumentException.class, executable1); + } + + @Test + public void when_k_is_smaller_than_1_then_an_exception_is_thrown() { + Executable executable1 = () -> findKthSmallestElement(0, new int[]{2}, new int[]{2}); + assertThrows(IllegalArgumentException.class, executable1); + } + + @Test + public void when_k_bigger_then_the_two_lists_then_an_exception_is_thrown() { + Executable executable1 = () -> findKthSmallestElement(6, new int[]{1, 5, 6}, new int[]{2, 5}); + assertThrows(NoSuchElementException.class, executable1); + } + + } + + @Nested + class K_is_smaller_than_the_size_of_list1_and_the_size_of_list2 { + + @Test + public void when_k_is_1_then_the_smallest_element_is_returned_from_list1() { + int result = findKthSmallestElement(1, new int[]{2, 7}, new int[]{3, 5}); + assertEquals(2, result); + } + + @Test + public void when_k_is_1_then_the_smallest_element_is_returned_list2() { + int result = findKthSmallestElement(1, new int[]{3, 5}, new int[]{2, 7}); + assertEquals(2, result); + } + + @Test + public void when_kth_element_is_smallest_element_and_occurs_in_both_lists() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(1, list1, list2); + assertEquals(1, result); + } + + @Test + public void when_kth_element_is_smallest_element_and_occurs_in_both_lists2() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(2, list1, list2); + assertEquals(1, result); + } + + @Test + public void when_kth_element_is_largest_element_and_occurs_in_both_lists_1() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_kth_element_is_largest_element_and_occurs_in_both_lists_2() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(6, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_kth_element_and_occurs_in_both_lists() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{0, 2, 3}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(2, result); + } + + @Test + public void and_kth_element_is_in_first_list() { + int[] list1 = new int[]{1,2,3,4}; + int[] list2 = new int[]{1,3,4,5}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(2, result); + } + + @Test + public void and_kth_is_in_second_list() { + int[] list1 = new int[]{1,3,4,4}; + int[] list2 = new int[]{1,2,4,5}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(2, result); + } + + @Test + public void and_elements_in_first_list_are_all_smaller_than_second_list() { + int[] list1 = new int[]{1,3,7,9}; + int[] list2 = new int[]{11,12,14,15}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(7, result); + } + + @Test + public void and_elements_in_first_list_are_all_smaller_than_second_list2() { + int[] list1 = new int[]{1,3,7,9}; + int[] list2 = new int[]{11,12,14,15}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(9, result); + } + + @Test + public void and_only_elements_from_second_list_are_part_of_result() { + int[] list1 = new int[]{11,12,14,15}; + int[] list2 = new int[]{1,3,7,9}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(7, result); + } + + @Test + public void and_only_elements_from_second_list_are_part_of_result2() { + int[] list1 = new int[]{11,12,14,15}; + int[] list2 = new int[]{1,3,7,9}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(9, result); + } + } + + @Nested + class K_is_bigger_than_the_size_of_at_least_one_of_the_lists { + + @Test + public void k_is_smaller_than_list1_and_bigger_than_list2() { + int[] list1 = new int[]{1, 2, 3, 4, 7, 9}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(3, result); + } + + @Test + public void k_is_bigger_than_list1_and_smaller_than_list2() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3, 4, 7, 9}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists_and_elements_in_second_list_are_all_smaller_than_first_list() { + int[] list1 = new int[]{9, 11, 13, 55}; + int[] list2 = new int[]{1, 2, 3, 7}; + int result = findKthSmallestElement(6, list1, list2); + assertEquals(11, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists_and_elements_in_second_list_are_all_bigger_than_first_list() { + int[] list1 = new int[]{1, 2, 3, 7}; + int[] list2 = new int[]{9, 11, 13, 55}; + int result = findKthSmallestElement(6, list1, list2); + assertEquals(11, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists() { + int[] list1 = new int[]{3, 7, 9, 11, 55}; + int[] list2 = new int[]{1, 2, 3, 7, 13}; + int result = findKthSmallestElement(7, list1, list2); + assertEquals(9, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists_and_list1_has_more_elements_than_list2() { + int[] list1 = new int[]{3, 7, 9, 11, 55, 77, 100, 200}; + int[] list2 = new int[]{1, 2, 3, 7, 13}; + int result = findKthSmallestElement(11, list1, list2); + assertEquals(77, result); + } + + @Test + public void max_test() { + int[] list1 = new int[]{100, 200}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(100, result); + } + + @Test + public void max_test2() { + int[] list1 = new int[]{100, 200}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(200, result); + } + + @Test + public void when_k_is_smaller_than_the_size_of_both_lists_and_kth_element_in_list2() { + int[] list1 = new int[]{1, 2, 5}; + int[] list2 = new int[]{1, 3, 4, 7}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_k_is_smaller_than_the_size_of_both_lists_and_kth_element_is_smallest_in_list2() { + int[] list1 = new int[]{1, 2, 5}; + int[] list2 = new int[]{3, 4, 7}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_k_is_smaller_than_the_size_of_both_lists_and_kth_element_is_smallest_in_list23() { + int[] list1 = new int[]{3, 11, 27, 53, 90}; + int[] list2 = new int[]{4, 20, 21, 100}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(21, result); + } + } + +// @Test +// public void randomTests() { +// IntStream.range(1, 100000).forEach(i -> random()); +// } + + private void random() { + + Random random = new Random(); + int length1 = (Math.abs(random.nextInt())) % 1000 + 1; + int length2 = (Math.abs(random.nextInt())) % 1000 + 1; + + int[] list1 = sortedRandomIntArrayOfLength(length1); + int[] list2 = sortedRandomIntArrayOfLength(length2); + + int k = (Math.abs(random.nextInt()) % (length1 + length2)) + 1 ; + + int result = findKthSmallestElement(k, list1, list2); + + int result2 = getKthElementSorted(list1, list2, k); + + int result3 = getKthElementMerge(list1, list2, k); + + assertEquals(result2, result); + assertEquals(result2, result3); + } + + private int[] sortedRandomIntArrayOfLength(int length) { + int[] intArray = new Random().ints(length).toArray(); + Arrays.sort(intArray); + return intArray; + } +} \ No newline at end of file diff --git a/apache-cxf/README.md b/apache-cxf/README.md index bedd19a91a..88edaf4e13 100644 --- a/apache-cxf/README.md +++ b/apache-cxf/README.md @@ -7,4 +7,3 @@ This module contains articles about Apache CXF - [Apache CXF Support for RESTful Web Services](https://www.baeldung.com/apache-cxf-rest-api) - [A Guide to Apache CXF with Spring](https://www.baeldung.com/apache-cxf-with-spring) - [Introduction to Apache CXF](https://www.baeldung.com/introduction-to-apache-cxf) -- [Server-Sent Events (SSE) In JAX-RS](https://www.baeldung.com/java-ee-jax-rs-sse) diff --git a/apache-cxf/sse-jaxrs/README.md b/apache-cxf/sse-jaxrs/README.md new file mode 100644 index 0000000000..4d39560b46 --- /dev/null +++ b/apache-cxf/sse-jaxrs/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: + +- [Server-Sent Events (SSE) In JAX-RS](https://www.baeldung.com/java-ee-jax-rs-sse) diff --git a/apache-poi/src/main/java/com/baeldung/poi/excel/setformula/ExcelFormula.java b/apache-poi/src/main/java/com/baeldung/poi/excel/setformula/ExcelFormula.java new file mode 100644 index 0000000000..f5179b19c9 --- /dev/null +++ b/apache-poi/src/main/java/com/baeldung/poi/excel/setformula/ExcelFormula.java @@ -0,0 +1,26 @@ +package com.baeldung.poi.excel.setformula; + +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +public class ExcelFormula { + public double setFormula(String fileLocation, XSSFWorkbook wb, String formula) throws IOException { + XSSFSheet sheet = wb.getSheetAt(0); + int lastCellNum = sheet.getRow(0).getLastCellNum(); + XSSFCell formulaCell = sheet.getRow(0).createCell(lastCellNum); + formulaCell.setCellFormula(formula); + XSSFFormulaEvaluator formulaEvaluator = wb.getCreationHelper().createFormulaEvaluator(); + formulaEvaluator.evaluateFormulaCell(formulaCell); + FileOutputStream fileOut = new FileOutputStream(new File(fileLocation)); + wb.write(fileOut); + wb.close(); + fileOut.close(); + return formulaCell.getNumericCellValue(); + } +} diff --git a/apache-poi/src/main/resources/com/baeldung/poi/excel/setformula/SetFormulaTest.xlsx b/apache-poi/src/main/resources/com/baeldung/poi/excel/setformula/SetFormulaTest.xlsx new file mode 100644 index 0000000000..a0fe73f0eb Binary files /dev/null and b/apache-poi/src/main/resources/com/baeldung/poi/excel/setformula/SetFormulaTest.xlsx differ diff --git a/apache-poi/src/test/java/com/baeldung/poi/excel/setformula/ExcelFormulaUnitTest.java b/apache-poi/src/test/java/com/baeldung/poi/excel/setformula/ExcelFormulaUnitTest.java new file mode 100644 index 0000000000..fa5baa37fa --- /dev/null +++ b/apache-poi/src/test/java/com/baeldung/poi/excel/setformula/ExcelFormulaUnitTest.java @@ -0,0 +1,51 @@ +package com.baeldung.poi.excel.setformula; + +import org.apache.poi.ss.util.CellReference; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.Assert; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Paths; + +class ExcelFormulaUnitTest { + private static String FILE_NAME = "com/baeldung/poi/excel/setformula/SetFormulaTest.xlsx"; + private String fileLocation; + private ExcelFormula excelFormula; + + @BeforeEach + public void setup() throws URISyntaxException { + fileLocation = Paths.get(ClassLoader.getSystemResource(FILE_NAME).toURI()).toString(); + excelFormula = new ExcelFormula(); + } + + @Test + void givenExcelData_whenSetFormula_thenSuccess() throws IOException { + FileInputStream inputStream = new FileInputStream(new File(fileLocation)); + XSSFWorkbook wb = new XSSFWorkbook(inputStream); + XSSFSheet sheet = wb.getSheetAt(0); + double resultColumnA = 0; + double resultColumnB = 0; + for (int row = 0; row <= sheet.getLastRowNum(); row++) { + resultColumnA += sheet.getRow(row).getCell(0).getNumericCellValue(); + resultColumnB += sheet.getRow(row).getCell(1).getNumericCellValue(); + } + String colNameA = CellReference.convertNumToColString(0); + String colNameB = CellReference.convertNumToColString(1); + String startCellA = colNameA + 1; + String stopCellA = colNameA + (sheet.getLastRowNum() + 1); + String sumFormulaForColumnA = String.format("SUM(%s:%s)", startCellA, stopCellA); + String startCellB = colNameB + 1; + String stopCellB = colNameB + (sheet.getLastRowNum() + 1); + String sumFormulaForColumnB = String.format("SUM(%s:%s)", startCellB, stopCellB); + + double resultValue = excelFormula.setFormula(fileLocation, wb, sumFormulaForColumnA + "-" + sumFormulaForColumnB); + + Assert.assertEquals(resultColumnA - resultColumnB, resultValue, 0d); + } +} diff --git a/apache-shiro/README.md b/apache-shiro/README.md index ed63c569da..3a0088072f 100644 --- a/apache-shiro/README.md +++ b/apache-shiro/README.md @@ -6,4 +6,4 @@ This module contains articles about Apache Shiro - [Introduction to Apache Shiro](https://www.baeldung.com/apache-shiro) - [Permissions-Based Access Control with Apache Shiro](https://www.baeldung.com/apache-shiro-access-control) - +- [Spring Security vs Apache Shiro](https://www.baeldung.com/spring-security-vs-apache-shiro) diff --git a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java index 797e0b954a..8ca0066a0d 100644 --- a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java +++ b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java @@ -31,6 +31,6 @@ public class UseDateTimeFormatterUnitTest { public void givenALocalDate_whenFormattingWithStyleAndLocale_thenPass() { String result = subject.formatWithStyleAndLocale(localDateTime, FormatStyle.MEDIUM, Locale.UK); - assertThat(result).isEqualTo("25 Jan 2015, 06:30:00"); + assertThat(result).isEqualTo("25-Jan-2015 06:30:00"); } } \ No newline at end of file diff --git a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java index 78d9a647fe..cb6e804284 100644 --- a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java +++ b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java @@ -3,6 +3,7 @@ package com.baeldung.datetime; import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -24,10 +25,11 @@ public class UseToInstantUnitTest { @Test public void givenADate_whenConvertingToLocalDate_thenAsExpected() { - Date givenDate = new Date(1465817690000L); + LocalDateTime currentDateTime = LocalDateTime.now(); + Date givenDate = Date.from(currentDateTime.atZone(ZoneId.systemDefault()).toInstant()); LocalDateTime localDateTime = subject.convertDateToLocalDate(givenDate); - assertThat(localDateTime).isEqualTo("2016-06-13T13:34:50"); + assertThat(localDateTime).isEqualTo(currentDateTime); } } \ No newline at end of file diff --git a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java index 4a39f6056e..0ee0f72d78 100644 --- a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java +++ b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java @@ -54,7 +54,7 @@ public class UseZonedDateTimeUnitTest { @Test public void givenAStringWithTimeZone_whenParsing_thenEqualsExpected() { ZonedDateTime resultFromString = zonedDateTime.getZonedDateTimeUsingParseMethod("2015-05-03T10:15:30+01:00[Europe/Paris]"); - ZonedDateTime resultFromLocalDateTime = ZonedDateTime.of(2015, 5, 3, 11, 15, 30, 0, ZoneId.of("Europe/Paris")); + ZonedDateTime resultFromLocalDateTime = ZonedDateTime.of(2015, 5, 3, 10, 15, 30, 0, ZoneId.of("Europe/Paris")); assertThat(resultFromString.getZone()).isEqualTo(ZoneId.of("Europe/Paris")); assertThat(resultFromLocalDateTime.getZone()).isEqualTo(ZoneId.of("Europe/Paris")); diff --git a/core-java-modules/core-java-9-new-features/README.md b/core-java-modules/core-java-9-new-features/README.md index d10d0aad2d..5af069c6f0 100644 --- a/core-java-modules/core-java-9-new-features/README.md +++ b/core-java-modules/core-java-9-new-features/README.md @@ -14,3 +14,4 @@ This module contains articles about core Java features that have been introduced - [Java 9 Reactive Streams](https://www.baeldung.com/java-9-reactive-streams) - [Multi-Release JAR Files with Maven](https://www.baeldung.com/maven-multi-release-jars) - [The Difference between RxJava API and the Java 9 Flow API](https://www.baeldung.com/rxjava-vs-java-flow-api) +- [How to Get a Name of a Method Being Executed?](https://www.baeldung.com/java-name-of-executing-method) diff --git a/core-java-modules/core-java-arrays-operations-advanced/src/main/java/com/baeldung/arraycompare/Plane.java b/core-java-modules/core-java-arrays-operations-advanced/src/main/java/com/baeldung/arraycompare/Plane.java new file mode 100644 index 0000000000..1731578b76 --- /dev/null +++ b/core-java-modules/core-java-arrays-operations-advanced/src/main/java/com/baeldung/arraycompare/Plane.java @@ -0,0 +1,39 @@ +package com.baeldung.arraycompare; + +import java.util.Objects; + +public class Plane { + + private final String name; + + private final String model; + + public Plane(String name, String model) { + + this.name = name; + this.model = model; + } + + public String getName() { + return name; + } + + public String getModel() { + return model; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + Plane plane = (Plane) o; + return Objects.equals(name, plane.name) && Objects.equals(model, plane.model); + } + + @Override + public int hashCode() { + return Objects.hash(name, model); + } +} diff --git a/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/DeepEqualsCompareUnitTest.java b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/DeepEqualsCompareUnitTest.java new file mode 100644 index 0000000000..c8ebafb26b --- /dev/null +++ b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/DeepEqualsCompareUnitTest.java @@ -0,0 +1,30 @@ +package com.baeldung.arraycompare; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; + +public class DeepEqualsCompareUnitTest { + + @Test + public void givenSameContents_whenDeepEquals_thenTrue() { + final Plane[][] planes1 = new Plane[][] { new Plane[] { new Plane("Plane 1", "A320") }, + new Plane[] { new Plane("Plane 2", "B738") } }; + final Plane[][] planes2 = new Plane[][] { new Plane[] { new Plane("Plane 1", "A320") }, + new Plane[] { new Plane("Plane 2", "B738") } }; + + assertThat(Arrays.deepEquals(planes1, planes2)).isTrue(); + } + + @Test + public void givenSameContentsWithDifferentOrder_whenDeepEquals_thenFalse() { + final Plane[][] planes1 = new Plane[][] { new Plane[] { new Plane("Plane 1", "A320") }, + new Plane[] { new Plane("Plane 2", "B738") } }; + final Plane[][] planes2 = new Plane[][] { new Plane[] { new Plane("Plane 2", "B738") }, + new Plane[] { new Plane("Plane 1", "A320") } }; + + assertThat(Arrays.deepEquals(planes1, planes2)).isFalse(); + } +} diff --git a/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/EqualsCompareUnitTest.java b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/EqualsCompareUnitTest.java new file mode 100644 index 0000000000..a022bf7082 --- /dev/null +++ b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/EqualsCompareUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.arraycompare; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; + +public class EqualsCompareUnitTest { + + @Test + public void givenSameContents_whenEquals_thenTrue() { + final String[] planes1 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + final String[] planes2 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + + assertThat(Arrays.equals(planes1, planes2)).isTrue(); + } + + @Test + public void givenSameContentsDifferentOrder_whenEquals_thenFalse() { + final String[] planes1 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + final String[] planes2 = new String[] { "B738", "A320", "A321", "A319", "B77W", "B737", "A333", "A332" }; + + assertThat(Arrays.equals(planes1, planes2)).isFalse(); + } +} diff --git a/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/LengthsCompareUnitTest.java b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/LengthsCompareUnitTest.java new file mode 100644 index 0000000000..23187b827c --- /dev/null +++ b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/LengthsCompareUnitTest.java @@ -0,0 +1,18 @@ +package com.baeldung.arraycompare; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LengthsCompareUnitTest { + + @Test + public void givenSameContent_whenSizeCompare_thenTrue() { + final String[] planes1 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + final Integer[] quantities = new Integer[] { 10, 12, 34, 45, 12, 43, 5, 2 }; + + assertThat(planes1).hasSize(8); + assertThat(quantities).hasSize(8); + } +} + diff --git a/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/OrderCompareUnitTest.java b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/OrderCompareUnitTest.java new file mode 100644 index 0000000000..4dd7964020 --- /dev/null +++ b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/OrderCompareUnitTest.java @@ -0,0 +1,33 @@ +package com.baeldung.arraycompare; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.Comparator; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertTrue; + +public class OrderCompareUnitTest { + @Test + public void givenSameContentDifferentOrder_whenSortedAndDeepEquals_thenTrue() { + final Plane[][] planes1 = new Plane[][] { + new Plane[] { new Plane("Plane 1", "A320"), new Plane("Plane 2", "B738") } }; + final Plane[][] planes2 = new Plane[][] { + new Plane[] { new Plane("Plane 2", "B738"), new Plane("Plane 1", "A320") } }; + + Comparator planeComparator = (o1, o2) -> { + if (o1.getName() + .equals(o2.getName())) { + return o2.getModel() + .compareTo(o1.getModel()); + } + return o2.getName() + .compareTo(o1.getName()); + }; + Arrays.sort(planes1[0], planeComparator); + Arrays.sort(planes2[0], planeComparator); + + assertThat(Arrays.deepEquals(planes1, planes2)).isTrue(); + } +} diff --git a/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/ReferenceCompareUnitTest.java b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/ReferenceCompareUnitTest.java new file mode 100644 index 0000000000..d8072a98e3 --- /dev/null +++ b/core-java-modules/core-java-arrays-operations-advanced/src/test/java/com/baeldung/arraycompare/ReferenceCompareUnitTest.java @@ -0,0 +1,30 @@ +package com.baeldung.arraycompare; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class ReferenceCompareUnitTest { + + @Test + public void givenSameReferences_whenSame_thenTrue() { + final String[] planes1 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + final String[] planes2 = planes1; + + assertThat(planes1).isSameAs(planes2); + + planes2[0] = "747"; + + assertThat(planes1).isSameAs(planes2); + assertThat(planes2[0]).isEqualTo("747"); + assertThat(planes1[0]).isEqualTo("747"); + } + + @Test + public void givenSameContentDifferentReferences_whenSame_thenFalse() { + final String[] planes1 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + final String[] planes2 = new String[] { "A320", "B738", "A321", "A319", "B77W", "B737", "A333", "A332" }; + + assertThat(planes1).isNotSameAs(planes2); + } +} diff --git a/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java index 2505adcea7..d474e95cb2 100644 --- a/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java +++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java @@ -5,7 +5,16 @@ import org.apache.commons.lang3.ArrayUtils; import org.junit.Before; import org.junit.Test; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import static org.junit.Assert.assertTrue; @@ -138,7 +147,7 @@ public class JavaSortingUnitTest { HashSet descSortedIntegersSet = new LinkedHashSet<>(Arrays.asList(255, 200, 123, 89, 88, 66, 7, 5, 1)); ArrayList list = new ArrayList<>(integersSet); - list.sort((i1, i2) -> i2 - i1); + list.sort(Comparator.reverseOrder()); integersSet = new LinkedHashSet<>(list); assertTrue(Arrays.equals(integersSet.toArray(), descSortedIntegersSet.toArray())); diff --git a/core-java-modules/core-java-collections-3/README.md b/core-java-modules/core-java-collections-3/README.md index fb983d9abc..4349ef6be3 100644 --- a/core-java-modules/core-java-collections-3/README.md +++ b/core-java-modules/core-java-collections-3/README.md @@ -3,6 +3,7 @@ ## Core Java Collections Cookbooks and Examples ### Relevant Articles: + - [Time Comparison of Arrays.sort(Object[]) and Arrays.sort(int[])](https://www.baeldung.com/arrays-sortobject-vs-sortint) - [Java ArrayList vs Vector](https://www.baeldung.com/java-arraylist-vs-vector) - [Differences Between HashMap and Hashtable](https://www.baeldung.com/hashmap-hashtable-differences) @@ -10,3 +11,4 @@ - [Performance of contains() in a HashSet vs ArrayList](https://www.baeldung.com/java-hashset-arraylist-contains-performance) - [Fail-Safe Iterator vs Fail-Fast Iterator](https://www.baeldung.com/java-fail-safe-vs-fail-fast-iterator) - [Quick Guide to the Java Stack](https://www.baeldung.com/java-stack) +- [Convert an Array of Primitives to a List](https://www.baeldung.com/java-primitive-array-to-list) diff --git a/core-java-modules/core-java-collections-3/pom.xml b/core-java-modules/core-java-collections-3/pom.xml index b206cd61d2..a9a05f5092 100644 --- a/core-java-modules/core-java-collections-3/pom.xml +++ b/core-java-modules/core-java-collections-3/pom.xml @@ -16,6 +16,11 @@ + + org.openjdk.jol + jol-core + ${jol-core.version} + org.openjdk.jmh jmh-core @@ -37,6 +42,7 @@ 1.19 3.11.1 + 0.10 diff --git a/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/bitset/BitSetUnitTest.java b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/bitset/BitSetUnitTest.java new file mode 100644 index 0000000000..d9340f45c1 --- /dev/null +++ b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/bitset/BitSetUnitTest.java @@ -0,0 +1,178 @@ +package com.baeldung.collections.bitset; + +import org.junit.Test; +import org.openjdk.jol.info.ClassLayout; +import org.openjdk.jol.info.GraphLayout; + +import java.util.BitSet; + +import static org.assertj.core.api.Assertions.assertThat; + +public class BitSetUnitTest { + + @Test + public void givenBoolArray_whenMemoryLayout_thenConsumeMoreThanOneBit() { + boolean[] bits = new boolean[1024 * 1024]; + + System.out.println(ClassLayout.parseInstance(bits).toPrintable()); + } + + @Test + public void givenBitSet_whenMemoryLayout_thenConsumeOneBitPerFlag() { + BitSet bitSet = new BitSet(1024 * 1024); + + System.out.println(GraphLayout.parseInstance(bitSet).toPrintable()); + } + + @Test + public void givenBitSet_whenSetting_thenShouldBeTrue() { + BitSet bitSet = new BitSet(); + + bitSet.set(10); + assertThat(bitSet.get(10)).isTrue(); + + bitSet.set(20, 30); + for (int i = 20; i <= 29; i++) { + assertThat(bitSet.get(i)).isTrue(); + } + assertThat(bitSet.get(30)).isFalse(); + + bitSet.set(10, false); + assertThat(bitSet.get(10)).isFalse(); + + bitSet.set(20, 30, false); + for (int i = 20; i <= 30; i++) { + assertThat(bitSet.get(i)).isFalse(); + } + } + + @Test + public void givenBitSet_whenClearing_thenShouldBeFalse() { + BitSet bitSet = new BitSet(); + bitSet.set(42); + assertThat(bitSet.get(42)).isTrue(); + + bitSet.clear(42); + assertThat(bitSet.get(42)).isFalse(); + + bitSet.set(10, 20); + for (int i = 10; i < 20; i++) { + assertThat(bitSet.get(i)).isTrue(); + } + + bitSet.clear(10, 20); + for (int i = 10; i < 20; i++) { + assertThat(bitSet.get(i)).isFalse(); + } + + bitSet.set(10, 20); + bitSet.clear(); + for (int i = 0; i < 100; i++) { + assertThat(bitSet.get(i)).isFalse(); + } + } + + @Test + public void givenBitSet_whenGettingElements_thenShouldReturnRequestedBits() { + BitSet bitSet = new BitSet(); + bitSet.set(42); + + assertThat(bitSet.get(42)).isTrue(); + assertThat(bitSet.get(43)).isFalse(); + + bitSet.set(10, 20); + BitSet newBitSet = bitSet.get(10, 20); + for (int i = 0; i < 10; i++) { + assertThat(newBitSet.get(i)).isTrue(); + } + } + + @Test + public void givenBitSet_whenFlip_thenTogglesTrueToFalseAndViceVersa() { + BitSet bitSet = new BitSet(); + bitSet.set(42); + bitSet.flip(42); + assertThat(bitSet.get(42)).isFalse(); + + bitSet.flip(12); + assertThat(bitSet.get(12)).isTrue(); + + bitSet.flip(30, 40); + for (int i = 30; i < 40; i++) { + assertThat(bitSet.get(i)).isTrue(); + } + } + + @Test + public void givenBitSet_whenGettingTheSize_thenReturnsTheSize() { + BitSet defaultBitSet = new BitSet(); + assertThat(defaultBitSet.size()).isEqualTo(64); + + BitSet bitSet = new BitSet(1024); + assertThat(bitSet.size()).isEqualTo(1024); + + assertThat(bitSet.cardinality()).isEqualTo(0); + bitSet.set(10, 30); + assertThat(bitSet.cardinality()).isEqualTo(30 - 10); + + assertThat(bitSet.length()).isEqualTo(30); + bitSet.set(100); + assertThat(bitSet.length()).isEqualTo(101); + + assertThat(bitSet.isEmpty()).isFalse(); + bitSet.clear(); + assertThat(bitSet.isEmpty()).isTrue(); + } + + @Test + public void givenBitSet_whenSetOperations_thenShouldReturnAnotherBitSet() { + BitSet first = new BitSet(); + first.set(5, 10); + + BitSet second = new BitSet(); + second.set(7, 15); + + assertThat(first.intersects(second)).isTrue(); + + first.and(second); + assertThat(first.get(7)).isTrue(); + assertThat(first.get(8)).isTrue(); + assertThat(first.get(9)).isTrue(); + assertThat(first.get(10)).isFalse(); + + first.clear(); + first.set(5, 10); + + first.xor(second); + for (int i = 5; i < 7; i++) { + assertThat(first.get(i)).isTrue(); + } + for (int i = 10; i < 15; i++) { + assertThat(first.get(i)).isTrue(); + } + } + + @Test + public void givenBitSet_whenStream_thenStreamsAllSetBits() { + BitSet bitSet = new BitSet(); + bitSet.set(15, 25); + + bitSet.stream().forEach(System.out::println); + assertThat(bitSet.stream().count()).isEqualTo(10); + } + + @Test + public void givenBitSet_whenNextOrPrev_thenReturnsTheNextOrPrevClearOrSetBit() { + BitSet bitSet = new BitSet(); + bitSet.set(15, 25); + + assertThat(bitSet.nextSetBit(13)).isEqualTo(15); + assertThat(bitSet.nextSetBit(25)).isEqualTo(-1); + + assertThat(bitSet.nextClearBit(23)).isEqualTo(25); + + assertThat(bitSet.previousClearBit(24)).isEqualTo(14); + assertThat(bitSet.previousSetBit(29)).isEqualTo(24); + assertThat(bitSet.previousSetBit(14)).isEqualTo(-1); + } +} diff --git a/core-java-modules/core-java-collections-list-3/pom.xml b/core-java-modules/core-java-collections-list-3/pom.xml index 373190a130..e1cf645c8a 100644 --- a/core-java-modules/core-java-collections-list-3/pom.xml +++ b/core-java-modules/core-java-collections-list-3/pom.xml @@ -21,6 +21,12 @@ commons-collections4 ${commons-collections4.version} + + com.google.guava + guava + ${guava.version} + compile + org.assertj assertj-core diff --git a/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java new file mode 100644 index 0000000000..ceeff5e442 --- /dev/null +++ b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java @@ -0,0 +1,96 @@ +package com.baeldung.list.difference; + +import com.google.common.collect.Sets; +import org.apache.commons.collections4.CollectionUtils; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import static org.junit.jupiter.api.Assertions.*; +import static org.assertj.core.api.Assertions.*; + +public class FindDifferencesBetweenListsUnitTest { + + private static final List listOne = Arrays.asList("Jack", "Tom", "Sam", "John", "James", "Jack"); + private static final List listTwo = Arrays.asList("Jack", "Daniel", "Sam", "Alan", "James", "George"); + + @Test + public void givenLists_whenUsingPlainJavaImpl_thenDifferencesAreFound() { + List differences = new ArrayList<>(listOne); + differences.removeAll(listTwo); + assertEquals(2, differences.size()); + assertThat(differences).containsExactly("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingPlainJavaImpl_thenDifferencesAreFound() { + List differences = new ArrayList<>(listTwo); + differences.removeAll(listOne); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingJavaStreams_thenDifferencesAreFound() { + List differences = listOne.stream() + .filter(element -> !listTwo.contains(element)) + .collect(Collectors.toList()); + assertEquals(2, differences.size()); + assertThat(differences).containsExactly("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingJavaStreams_thenDifferencesAreFound() { + List differences = listTwo.stream() + .filter(element -> !listOne.contains(element)) + .collect(Collectors.toList()); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingGoogleGuava_thenDifferencesAreFound() { + List differences = new ArrayList<>(Sets.difference(Sets.newHashSet(listOne), Sets.newHashSet(listTwo))); + assertEquals(2, differences.size()); + assertThat(differences).containsExactlyInAnyOrder("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingGoogleGuava_thenDifferencesAreFound() { + List differences = new ArrayList<>(Sets.difference(Sets.newHashSet(listTwo), Sets.newHashSet(listOne))); + assertEquals(3, differences.size()); + assertThat(differences).containsExactlyInAnyOrder("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingApacheCommons_thenDifferencesAreFound() { + List differences = new ArrayList<>((CollectionUtils.removeAll(listOne, listTwo))); + assertEquals(2, differences.size()); + assertThat(differences).containsExactly("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingApacheCommons_thenDifferencesAreFound() { + List differences = new ArrayList<>((CollectionUtils.removeAll(listTwo, listOne))); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingPlainJavaImpl_thenDifferencesWithDuplicatesAreFound() { + List differences = new ArrayList<>(listOne); + listTwo.forEach(differences::remove); + assertThat(differences).containsExactly("Tom", "John", "Jack"); + } + + @Test + public void givenLists_whenUsingApacheCommons_thenDifferencesWithDuplicatesAreFound() { + List differences = new ArrayList<>(CollectionUtils.subtract(listOne, listTwo)); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Tom", "John", "Jack"); + } + +} diff --git a/core-java-modules/core-java-collections-maps-2/pom.xml b/core-java-modules/core-java-collections-maps-2/pom.xml index a64a11c6ea..7c4ab19945 100644 --- a/core-java-modules/core-java-collections-maps-2/pom.xml +++ b/core-java-modules/core-java-collections-maps-2/pom.xml @@ -21,20 +21,15 @@ ${eclipse-collections.version} - net.sf.trove4j - trove4j - ${trove4j.version} + com.carrotsearch + hppc + ${hppc.version} it.unimi.dsi fastutil ${fastutil.version} - - colt - colt - ${colt.version} - org.apache.commons commons-lang3 @@ -69,9 +64,8 @@ 4.1 1.7.0 8.2.0 - 3.0.2 + 0.7.2 8.1.0 - 1.2.0 3.11.1 diff --git a/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java b/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java index 30bec12ccc..e53290f93a 100644 --- a/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java +++ b/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java @@ -1,29 +1,68 @@ package com.baeldung.map.primitives; -import cern.colt.map.AbstractIntDoubleMap; -import cern.colt.map.OpenIntDoubleHashMap; -import gnu.trove.map.TDoubleIntMap; -import gnu.trove.map.hash.TDoubleIntHashMap; +import com.carrotsearch.hppc.IntLongHashMap; +import com.carrotsearch.hppc.IntLongScatterMap; +import com.carrotsearch.hppc.IntObjectHashMap; +import com.carrotsearch.hppc.IntObjectMap; +import com.carrotsearch.hppc.IntObjectScatterMap; + import it.unimi.dsi.fastutil.ints.Int2BooleanMap; +import it.unimi.dsi.fastutil.ints.Int2BooleanMaps; import it.unimi.dsi.fastutil.ints.Int2BooleanOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2BooleanSortedMap; import it.unimi.dsi.fastutil.ints.Int2BooleanSortedMaps; +import it.unimi.dsi.fastutil.objects.ObjectIterator; + import org.eclipse.collections.api.map.primitive.ImmutableIntIntMap; import org.eclipse.collections.api.map.primitive.MutableIntIntMap; import org.eclipse.collections.api.map.primitive.MutableObjectDoubleMap; import org.eclipse.collections.impl.factory.primitive.IntIntMaps; import org.eclipse.collections.impl.factory.primitive.ObjectDoubleMaps; +import static java.lang.String.format; + +import java.math.BigDecimal; + public class PrimitiveMaps { public static void main(String[] args) { + hppcMap(); eclipseCollectionsMap(); - troveMap(); - coltMap(); fastutilMap(); } + private static void hppcMap() { + //Regular maps + IntLongHashMap intLongHashMap = new IntLongHashMap(); + intLongHashMap.put(25,1L); + intLongHashMap.put(150,Long.MAX_VALUE); + intLongHashMap.put(1,0L); + + intLongHashMap.get(150); + + IntObjectMap intObjectMap = new IntObjectHashMap(); + intObjectMap.put(1, BigDecimal.valueOf(1)); + intObjectMap.put(2, BigDecimal.valueOf(2500)); + + BigDecimal value = intObjectMap.get(2); + + //Scatter maps + IntLongScatterMap intLongScatterMap = new IntLongScatterMap(); + intLongScatterMap.put(1, 1L); + intLongScatterMap.put(2, -2L); + intLongScatterMap.put(1000,0L); + + intLongScatterMap.get(1000); + + IntObjectScatterMap intObjectScatterMap = new IntObjectScatterMap(); + intObjectScatterMap.put(1, BigDecimal.valueOf(1)); + intObjectScatterMap.put(2, BigDecimal.valueOf(2500)); + + value = intObjectScatterMap.get(2); + } + + private static void fastutilMap() { Int2BooleanMap int2BooleanMap = new Int2BooleanOpenHashMap(); int2BooleanMap.put(1, true); @@ -32,13 +71,19 @@ public class PrimitiveMaps { boolean value = int2BooleanMap.get(1); - Int2BooleanSortedMap int2BooleanSorted = Int2BooleanSortedMaps.EMPTY_MAP; - } + //Lambda style iteration + Int2BooleanMaps.fastForEach(int2BooleanMap, entry -> { + System.out.println(String.format("Key: %d, Value: %b",entry.getIntKey(),entry.getBooleanValue())); + }); + + //Iterator based loop + ObjectIterator iterator = Int2BooleanMaps.fastIterator(int2BooleanMap); + while(iterator.hasNext()) { + Int2BooleanMap.Entry entry = iterator.next(); + System.out.println(String.format("Key: %d, Value: %b",entry.getIntKey(),entry.getBooleanValue())); + + } - private static void coltMap() { - AbstractIntDoubleMap map = new OpenIntDoubleHashMap(); - map.put(1, 4.5); - double value = map.get(1); } private static void eclipseCollectionsMap() { @@ -53,17 +98,5 @@ public class PrimitiveMaps { dObject.addToValue("stability", 0.8); } - private static void troveMap() { - double[] doubles = new double[] {1.2, 4.5, 0.3}; - int[] ints = new int[] {1, 4, 0}; - TDoubleIntMap doubleIntMap = new TDoubleIntHashMap(doubles, ints); - - doubleIntMap.put(1.2, 22); - doubleIntMap.put(4.5, 16); - - doubleIntMap.adjustValue(1.2, 1); - doubleIntMap.adjustValue(4.5, 4); - doubleIntMap.adjustValue(0.3, 7); - } } diff --git a/core-java-modules/core-java-concurrency-advanced-3/src/test/java/com/baeldung/workstealing/PrimeNumbersUnitManualTest.java b/core-java-modules/core-java-concurrency-advanced-3/src/test/java/com/baeldung/workstealing/PrimeNumbersManualTest.java similarity index 93% rename from core-java-modules/core-java-concurrency-advanced-3/src/test/java/com/baeldung/workstealing/PrimeNumbersUnitManualTest.java rename to core-java-modules/core-java-concurrency-advanced-3/src/test/java/com/baeldung/workstealing/PrimeNumbersManualTest.java index 4fbbef4e61..8d12218c05 100644 --- a/core-java-modules/core-java-concurrency-advanced-3/src/test/java/com/baeldung/workstealing/PrimeNumbersUnitManualTest.java +++ b/core-java-modules/core-java-concurrency-advanced-3/src/test/java/com/baeldung/workstealing/PrimeNumbersManualTest.java @@ -15,7 +15,15 @@ import java.util.logging.Logger; import static org.junit.Assert.fail; -public class PrimeNumbersUnitManualTest { +/** + * This test expects the file target/test-classes/META-INF/BenchmarkList to be present. + * + * Before running the test ensure that the file is present. + * If not, please run mvn install on the module. + * + */ + +public class PrimeNumbersManualTest { private static Logger logger = Logger.getAnonymousLogger(); diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java new file mode 100644 index 0000000000..5a41cd9dbf --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java @@ -0,0 +1,25 @@ +package com.baeldung.threadlocal; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public class ThreadLocalAwareThreadPool extends ThreadPoolExecutor { + + public ThreadLocalAwareThreadPool(int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue workQueue, + ThreadFactory threadFactory, + RejectedExecutionHandler handler) { + super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); + } + + @Override + protected void afterExecute(Runnable r, Throwable t) { + // Call remove on each ThreadLocal + } +} diff --git a/core-java-modules/core-java-concurrency-basic-2/README.md b/core-java-modules/core-java-concurrency-basic-2/README.md index c7143baf36..a8daf14ea9 100644 --- a/core-java-modules/core-java-concurrency-basic-2/README.md +++ b/core-java-modules/core-java-concurrency-basic-2/README.md @@ -3,10 +3,12 @@ This module contains articles about basic Java concurrency ### Relevant Articles: + - [How to Delay Code Execution in Java](https://www.baeldung.com/java-delay-code-execution) - [wait and notify() Methods in Java](https://www.baeldung.com/java-wait-notify) - [Difference Between Wait and Sleep in Java](https://www.baeldung.com/java-wait-and-sleep) - [Guide to the Synchronized Keyword in Java](https://www.baeldung.com/java-synchronized) - [Life Cycle of a Thread in Java](https://www.baeldung.com/java-thread-lifecycle) - [Guide to AtomicMarkableReference](https://www.baeldung.com/java-atomicmarkablereference) +- [Why are Local Variables Thread-Safe in Java](https://www.baeldung.com/java-local-variables-thread-safe) - [[<-- Prev]](/core-java-modules/core-java-concurrency-basic) diff --git a/core-java-modules/core-java-console/src/main/java/com/baeldung/consoleout/ConsoleAndOut.java b/core-java-modules/core-java-console/src/main/java/com/baeldung/consoleout/ConsoleAndOut.java new file mode 100644 index 0000000000..082a5219c9 --- /dev/null +++ b/core-java-modules/core-java-console/src/main/java/com/baeldung/consoleout/ConsoleAndOut.java @@ -0,0 +1,31 @@ +package com.baeldung.consoleout; + +import java.io.Console; + +public class ConsoleAndOut { + public static void main(String[] args) { + try { + printConsoleObject(); + readPasswordFromConsole(); + } catch (Exception ex) { + // Eating NullPointerExcpetion which will occur when this + // program will be run from mediums other than console + } + printSysOut(); + } + + static void printConsoleObject() { + Console console = System.console(); + console.writer().print(console); + } + + static void readPasswordFromConsole() { + Console console = System.console(); + char[] password = console.readPassword("Enter password: "); + console.printf(String.valueOf(password)); + } + + static void printSysOut() { + System.out.println(System.out); + } +} diff --git a/core-java-modules/core-java-console/src/test/java/com/baeldung/consoleout/ConsoleAndOutUnitTest.java b/core-java-modules/core-java-console/src/test/java/com/baeldung/consoleout/ConsoleAndOutUnitTest.java new file mode 100644 index 0000000000..619a65a1fc --- /dev/null +++ b/core-java-modules/core-java-console/src/test/java/com/baeldung/consoleout/ConsoleAndOutUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.consoleout; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +class ConsoleAndOutUnitTest { + + @Test + void whenRetreivingConsole_thenPrintConsoleObject() { + assertThrows(NullPointerException.class, () -> { + ConsoleAndOut.printConsoleObject(); + }); + } + + @Test + void whenReadingPassword_thenReadPassword() { + assertThrows(NullPointerException.class, () -> { + ConsoleAndOut.readPasswordFromConsole(); + }); + } + + @Test + void whenRetrievingSysOut_thenPrintSysOutObject() { + ConsoleAndOut.printSysOut(); + } +} diff --git a/core-java-modules/core-java-exceptions-2/README.md b/core-java-modules/core-java-exceptions-2/README.md index 7c5db06a55..e6441c2c12 100644 --- a/core-java-modules/core-java-exceptions-2/README.md +++ b/core-java-modules/core-java-exceptions-2/README.md @@ -13,3 +13,4 @@ This module contains articles about core java exceptions - [Java Global Exception Handler](https://www.baeldung.com/java-global-exception-handler) - [How to Find an Exception’s Root Cause in Java](https://www.baeldung.com/java-exception-root-cause) - [Java IOException “Too many open files”](https://www.baeldung.com/java-too-many-open-files) +- [When Does Java Throw the ExceptionInInitializerError?](https://www.baeldung.com/java-exceptionininitializererror) diff --git a/core-java-modules/core-java-io-3/.gitignore b/core-java-modules/core-java-io-3/.gitignore new file mode 100644 index 0000000000..0c0cd871c5 --- /dev/null +++ b/core-java-modules/core-java-io-3/.gitignore @@ -0,0 +1,2 @@ +test-link* +0.* \ No newline at end of file diff --git a/core-java-modules/core-java-io-3/README.md b/core-java-modules/core-java-io-3/README.md index 39752346d3..61a040c1ce 100644 --- a/core-java-modules/core-java-io-3/README.md +++ b/core-java-modules/core-java-io-3/README.md @@ -3,5 +3,7 @@ This module contains articles about core Java input and output (IO) ### Relevant Articles: + - [Java – Create a File](https://www.baeldung.com/java-how-to-create-a-file) +- [Check If a Directory Is Empty in Java](https://www.baeldung.com/java-check-empty-directory) - [[<-- Prev]](/core-java-modules/core-java-io-2) diff --git a/core-java-modules/core-java-io-3/pom.xml b/core-java-modules/core-java-io-3/pom.xml index cb341ca2ae..cc4dca5fa5 100644 --- a/core-java-modules/core-java-io-3/pom.xml +++ b/core-java-modules/core-java-io-3/pom.xml @@ -46,41 +46,14 @@ ${assertj.version} test - - - com.github.tomakehurst - wiremock - ${wiremock.version} - test - - core-java-io-3 - - - src/main/resources - true - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - ${maven.compiler.source} - ${maven.compiler.target} - - - 3.6.1 - 3.0.0-M1 - 2.26.3 \ No newline at end of file diff --git a/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/ApacheCommons.java b/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/ApacheCommons.java new file mode 100644 index 0000000000..b8aa283b48 --- /dev/null +++ b/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/ApacheCommons.java @@ -0,0 +1,15 @@ +package com.baeldung.copydirectory; + +import java.io.File; +import java.io.IOException; + +import org.apache.commons.io.FileUtils; + +public class ApacheCommons { + + public static void copyDirectory(String sourceDirectoryLocation, String destinationDirectoryLocation) throws IOException { + File sourceDirectory = new File(sourceDirectoryLocation); + File destinationDirectory = new File(destinationDirectoryLocation); + FileUtils.copyDirectory(sourceDirectory, destinationDirectory); + } +} diff --git a/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/CoreOld.java b/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/CoreOld.java new file mode 100644 index 0000000000..2070977534 --- /dev/null +++ b/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/CoreOld.java @@ -0,0 +1,38 @@ +package com.baeldung.copydirectory; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class CoreOld { + + public static void copyDirectoryJavaUnder7(File source, File destination) throws IOException { + if (source.isDirectory()) { + copyDirectory(source, destination); + } else { + copyFile(source, destination); + } + } + + private static void copyDirectory(File sourceDirectory, File destinationDirectory) throws IOException { + if (!destinationDirectory.exists()) { + destinationDirectory.mkdir(); + } + for (String f : sourceDirectory.list()) { + copyDirectoryJavaUnder7(new File(sourceDirectory, f), new File(destinationDirectory, f)); + } + } + + private static void copyFile(File sourceFile, File destinationFile) throws IOException { + try (InputStream in = new FileInputStream(sourceFile); OutputStream out = new FileOutputStream(destinationFile)) { + byte[] buf = new byte[1024]; + int length; + while ((length = in.read(buf)) > 0) { + out.write(buf, 0, length); + } + } + } +} diff --git a/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/JavaNio.java b/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/JavaNio.java new file mode 100644 index 0000000000..b574042ee5 --- /dev/null +++ b/core-java-modules/core-java-io-3/src/main/java/com/baeldung/copydirectory/JavaNio.java @@ -0,0 +1,22 @@ +package com.baeldung.copydirectory; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class JavaNio { + + public static void copyDirectory(String sourceDirectoryLocation, String destinationDirectoryLocation) throws IOException { + Files.walk(Paths.get(sourceDirectoryLocation)) + .forEach(source -> { + Path destination = Paths.get(destinationDirectoryLocation, source.toString() + .substring(sourceDirectoryLocation.length())); + try { + Files.copy(source, destination); + } catch (IOException e) { + e.printStackTrace(); + } + }); + } +} diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java new file mode 100644 index 0000000000..eee49a37d7 --- /dev/null +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java @@ -0,0 +1,59 @@ +package com.baeldung.copydirectory; + +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Comparator; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class ApacheCommonsUnitTest { + + private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory3"; + private final String subDirectoryName = "/childDirectory"; + private final String fileName = "/file.txt"; + private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory3"; + + @BeforeEach + public void createDirectoryWithSubdirectoryAndFile() throws IOException { + Files.createDirectories(Paths.get(sourceDirectoryLocation)); + Files.createDirectories(Paths.get(sourceDirectoryLocation + subDirectoryName)); + Files.createFile(Paths.get(sourceDirectoryLocation + subDirectoryName + fileName)); + } + + @Test + public void whenSourceDirectoryExists_thenDirectoryIsFullyCopied() throws IOException { + ApacheCommons.copyDirectory(sourceDirectoryLocation, destinationDirectoryLocation); + + assertTrue(new File(destinationDirectoryLocation).exists()); + assertTrue(new File(destinationDirectoryLocation + subDirectoryName).exists()); + assertTrue(new File(destinationDirectoryLocation + subDirectoryName + fileName).exists()); + } + + @Test + public void whenSourceDirectoryDoesNotExist_thenExceptionIsThrown() { + assertThrows(Exception.class, () -> ApacheCommons.copyDirectory("nonExistingDirectory", destinationDirectoryLocation)); + } + + @AfterEach + public void cleanUp() throws IOException { + Files.walk(Paths.get(sourceDirectoryLocation)) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + if (new File(destinationDirectoryLocation).exists()) { + Files.walk(Paths.get(destinationDirectoryLocation)) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } + } + +} diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java new file mode 100644 index 0000000000..1aaca066a0 --- /dev/null +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java @@ -0,0 +1,63 @@ +package com.baeldung.copydirectory; + +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Comparator; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class CoreOldUnitTest { + + private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory1"; + private final String subDirectoryName = "/childDirectory"; + private final String fileName = "/file.txt"; + private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory1"; + + @BeforeEach + public void createDirectoryWithSubdirectoryAndFile() throws IOException { + Files.createDirectories(Paths.get(sourceDirectoryLocation)); + Files.createDirectories(Paths.get(sourceDirectoryLocation + subDirectoryName)); + Files.createFile(Paths.get(sourceDirectoryLocation + subDirectoryName + fileName)); + } + + @Test + public void whenSourceDirectoryExists_thenDirectoryIsFullyCopied() throws IOException { + File sourceDirectory = new File(sourceDirectoryLocation); + File destinationDirectory = new File(destinationDirectoryLocation); + CoreOld.copyDirectoryJavaUnder7(sourceDirectory, destinationDirectory); + + assertTrue(new File(destinationDirectoryLocation).exists()); + assertTrue(new File(destinationDirectoryLocation + subDirectoryName).exists()); + assertTrue(new File(destinationDirectoryLocation + subDirectoryName + fileName).exists()); + } + + @Test + public void whenSourceDirectoryDoesNotExist_thenExceptionIsThrown() throws IOException { + File sourceDirectory = new File("nonExistingDirectory"); + File destinationDirectory = new File(destinationDirectoryLocation); + assertThrows(IOException.class, () -> CoreOld.copyDirectoryJavaUnder7(sourceDirectory, destinationDirectory)); + } + + @AfterEach + public void cleanUp() throws IOException { + Files.walk(Paths.get(sourceDirectoryLocation)) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + if (new File(destinationDirectoryLocation).exists()) { + Files.walk(Paths.get(destinationDirectoryLocation)) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } + } + +} diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java new file mode 100644 index 0000000000..3293e90c0c --- /dev/null +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java @@ -0,0 +1,59 @@ +package com.baeldung.copydirectory; + +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Comparator; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class JavaNioUnitTest { + + private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory2"; + private final String subDirectoryName = "/childDirectory"; + private final String fileName = "/file.txt"; + private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory2"; + + @BeforeEach + public void createDirectoryWithSubdirectoryAndFile() throws IOException { + Files.createDirectories(Paths.get(sourceDirectoryLocation)); + Files.createDirectories(Paths.get(sourceDirectoryLocation + subDirectoryName)); + Files.createFile(Paths.get(sourceDirectoryLocation + subDirectoryName + fileName)); + } + + @Test + public void whenSourceDirectoryExists_thenDirectoryIsFullyCopied() throws IOException { + JavaNio.copyDirectory(sourceDirectoryLocation, destinationDirectoryLocation); + + assertTrue(new File(destinationDirectoryLocation).exists()); + assertTrue(new File(destinationDirectoryLocation + subDirectoryName).exists()); + assertTrue(new File(destinationDirectoryLocation + subDirectoryName + fileName).exists()); + } + + @Test + public void whenSourceDirectoryDoesNotExist_thenExceptionIsThrown() { + assertThrows(IOException.class, () -> JavaNio.copyDirectory("nonExistingDirectory", destinationDirectoryLocation)); + } + + @AfterEach + public void cleanUp() throws IOException { + Files.walk(Paths.get(sourceDirectoryLocation)) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + if (new File(destinationDirectoryLocation).exists()) { + Files.walk(Paths.get(destinationDirectoryLocation)) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } + } + +} diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/existence/ExistenceUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/existence/ExistenceUnitTest.java new file mode 100644 index 0000000000..c52e46e8c1 --- /dev/null +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/existence/ExistenceUnitTest.java @@ -0,0 +1,91 @@ +package com.baeldung.existence; + +import org.junit.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.concurrent.ThreadLocalRandom; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class ExistenceUnitTest { + + @Test + public void givenFile_whenDoesNotExist_thenFilesReturnsFalse() { + Path path = Paths.get("does-not-exist.txt"); + + assertFalse(Files.exists(path)); + assertTrue(Files.notExists(path)); + } + + @Test + public void givenFile_whenExists_thenFilesShouldReturnTrue() throws IOException { + Path tempFile = Files.createTempFile("baeldung", "exist-nio"); + assertTrue(Files.exists(tempFile)); + assertFalse(Files.notExists(tempFile)); + + Path tempDirectory = Files.createTempDirectory("baeldung-exists"); + assertTrue(Files.exists(tempDirectory)); + assertFalse(Files.notExists(tempDirectory)); + + assertTrue(Files.isDirectory(tempDirectory)); + assertFalse(Files.isDirectory(tempFile)); + assertTrue(Files.isRegularFile(tempFile)); + + assertTrue(Files.isReadable(tempFile)); + + Files.deleteIfExists(tempFile); + Files.deleteIfExists(tempDirectory); + } + + @Test + public void givenSymbolicLink_whenTargetDoesNotExists_thenFollowOrNotBasedOnTheOptions() throws IOException { + Path target = Files.createTempFile("baeldung", "target"); + Path symbol = Paths.get("test-link-" + ThreadLocalRandom.current().nextInt()); + + Path symbolicLink = Files.createSymbolicLink(symbol, target); + assertTrue(Files.exists(symbolicLink)); + assertTrue(Files.isSymbolicLink(symbolicLink)); + assertFalse(Files.isSymbolicLink(target)); + + Files.deleteIfExists(target); + assertFalse(Files.exists(symbolicLink)); + assertTrue(Files.exists(symbolicLink, LinkOption.NOFOLLOW_LINKS)); + + Files.deleteIfExists(symbolicLink); + } + + @Test + public void givenFile_whenDoesNotExist_thenFileReturnsFalse() { + assertFalse(new File("invalid").exists()); + assertFalse(new File("invalid").isFile()); + } + + @Test + public void givenFile_whenExist_thenShouldReturnTrue() throws IOException { + Path tempFilePath = Files.createTempFile("baeldung", "exist-io"); + Path tempDirectoryPath = Files.createTempDirectory("baeldung-exists-io"); + + File tempFile = new File(tempFilePath.toString()); + File tempDirectory = new File(tempDirectoryPath.toString()); + + assertTrue(tempFile.exists()); + assertTrue(tempDirectory.exists()); + + assertTrue(tempFile.isFile()); + assertFalse(tempDirectory.isFile()); + + assertTrue(tempDirectory.isDirectory()); + assertFalse(tempFile.isDirectory()); + + assertTrue(tempFile.canRead()); + + Files.deleteIfExists(tempFilePath); + Files.deleteIfExists(tempDirectoryPath); + } +} diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/openoptions/OpenOptionsUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/openoptions/OpenOptionsUnitTest.java new file mode 100644 index 0000000000..323c965edf --- /dev/null +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/openoptions/OpenOptionsUnitTest.java @@ -0,0 +1,96 @@ +package com.baeldung.openoptions; + +import org.hamcrest.CoreMatchers; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; + +import static org.junit.Assert.*; + +public class OpenOptionsUnitTest { + + private static final String HOME = System.getProperty("user.home"); + private static final String DUMMY_FILE_NAME = "sample.txt"; + private static final String EXISTING_FILE_NAME = "existingFile.txt"; + + private static final String DUMMY_TEXT = "This is a sample text."; + private static final String ANOTHER_DUMMY_TEXT = "This is a another text."; + + @BeforeClass + public static void beforeAll() throws IOException { + Path path = Paths.get(HOME, DUMMY_FILE_NAME); + + try (OutputStream out = Files.newOutputStream(path)) { + out.write(DUMMY_TEXT.getBytes()); + } + + Files.createFile(Paths.get(HOME, EXISTING_FILE_NAME)); + } + + @AfterClass + public static void afterAll() throws IOException { + Files.delete(Paths.get(HOME, "newfile.txt")); + Files.delete(Paths.get(HOME, "sparse.txt")); + Files.delete(Paths.get(HOME, DUMMY_FILE_NAME)); + } + + @Test + public void givenExistingPath_whenCreateNewFile_thenCorrect() throws IOException { + Path path = Paths.get(HOME, "newfile.txt"); + assertFalse(Files.exists(path)); + + Files.write(path, DUMMY_TEXT.getBytes(), StandardOpenOption.CREATE); + assertTrue(Files.exists(path)); + } + + @Test + public void givenExistingPath_whenReadExistingFile_thenCorrect() throws IOException { + Path path = Paths.get(HOME, DUMMY_FILE_NAME); + + try (InputStream in = Files.newInputStream(path); BufferedReader reader = new BufferedReader(new InputStreamReader(in))) { + String line; + while ((line = reader.readLine()) != null) { + assertThat(line, CoreMatchers.containsString(DUMMY_TEXT)); + } + } + } + + @Test + public void givenExistingPath_whenWriteToExistingFile_thenCorrect() throws IOException { + Path path = Paths.get(HOME, DUMMY_FILE_NAME); + + try (OutputStream out = Files.newOutputStream(path, StandardOpenOption.APPEND, StandardOpenOption.WRITE)) { + out.write(ANOTHER_DUMMY_TEXT.getBytes()); + } + } + + @Test + public void givenExistingPath_whenCreateSparseFile_thenCorrect() throws IOException { + Path path = Paths.get(HOME, "sparse.txt"); + Files.write(path, DUMMY_TEXT.getBytes(), StandardOpenOption.CREATE_NEW, StandardOpenOption.SPARSE); + } + + @Test + public void givenExistingPath_whenDeleteOnClose_thenCorrect() throws IOException { + Path path = Paths.get(HOME, EXISTING_FILE_NAME); + assertTrue(Files.exists(path)); // file was already created and exists + + try (OutputStream out = Files.newOutputStream(path, StandardOpenOption.APPEND, StandardOpenOption.WRITE, StandardOpenOption.DELETE_ON_CLOSE)) { + out.write(ANOTHER_DUMMY_TEXT.getBytes()); + } + + assertFalse(Files.exists(path)); // file is deleted + } + + @Test + public void givenExistingPath_whenWriteAndSync_thenCorrect() throws IOException { + Path path = Paths.get(HOME, DUMMY_FILE_NAME); + Files.write(path, ANOTHER_DUMMY_TEXT.getBytes(), StandardOpenOption.APPEND, StandardOpenOption.WRITE, StandardOpenOption.SYNC); + } +} diff --git a/core-java-modules/core-java-jvm-2/README.md b/core-java-modules/core-java-jvm-2/README.md index 7a189ceec5..7206a9eef7 100644 --- a/core-java-modules/core-java-jvm-2/README.md +++ b/core-java-modules/core-java-jvm-2/README.md @@ -9,4 +9,5 @@ This module contains articles about working with the Java Virtual Machine (JVM). - [Adding Shutdown Hooks for JVM Applications](https://www.baeldung.com/jvm-shutdown-hooks) - [boolean and boolean[] Memory Layout in the JVM](https://www.baeldung.com/jvm-boolean-memory-layout) - [Where Is the Array Length Stored in JVM?](https://www.baeldung.com/java-jvm-array-length) +- [Memory Address of Objects in Java](https://www.baeldung.com/java-object-memory-address) - More articles: [[<-- prev]](/core-java-modules/core-java-jvm) diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java new file mode 100644 index 0000000000..bd9573d6b5 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java @@ -0,0 +1,19 @@ +package com.baeldung.loadedclasslisting; + +import java.util.Arrays; + +public class Launcher { + + public static void main(String[] args) { + printClassesLoadedBy("BOOTSTRAP"); + printClassesLoadedBy("SYSTEM"); + printClassesLoadedBy("EXTENSION"); + } + + private static void printClassesLoadedBy(String classLoaderType) { + System.out.println(classLoaderType + " ClassLoader : "); + Class[] classes = ListLoadedClassesAgent.listLoadedClasses(classLoaderType); + Arrays.asList(classes) + .forEach(clazz -> System.out.println(clazz.getCanonicalName())); + } +} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java new file mode 100644 index 0000000000..337214a664 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java @@ -0,0 +1,40 @@ +package com.baeldung.loadedclasslisting; + +import java.lang.instrument.Instrumentation; + +public class ListLoadedClassesAgent { + + private static Instrumentation instrumentation; + + public static void premain(String agentArgs, Instrumentation instrumentation) { + ListLoadedClassesAgent.instrumentation = instrumentation; + } + + public static Class[] listLoadedClasses(String classLoaderType) { + if (instrumentation == null) { + throw new IllegalStateException( + "ListLoadedClassesAgent is not initialized."); + } + return instrumentation.getInitiatedClasses( + getClassLoader(classLoaderType)); + } + + private static ClassLoader getClassLoader(String classLoaderType) { + ClassLoader classLoader = null; + switch (classLoaderType) { + case "SYSTEM": + classLoader = ClassLoader.getSystemClassLoader(); + break; + case "EXTENSION": + classLoader = ClassLoader.getSystemClassLoader().getParent(); + break; + // passing a null value to the Instrumentation : getInitiatedClasses method + // defaults to the bootstrap class loader + case "BOOTSTRAP": + break; + default: + break; + } + return classLoader; + } +} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF new file mode 100644 index 0000000000..4a60bda0b7 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF @@ -0,0 +1 @@ +Premain-Class: com.baeldung.loadedclasslisting.ListLoadedClassesAgent \ No newline at end of file diff --git a/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java index cab8546129..98e35d0af2 100644 --- a/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java +++ b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java @@ -37,7 +37,7 @@ public class Human { public static int compareByNameThenAge(final Human lhs, final Human rhs) { if (lhs.name.equals(rhs.name)) { - return lhs.age - rhs.age; + return Integer.compare(lhs.age, rhs.age); } else { return lhs.name.compareTo(rhs.name); } diff --git a/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java b/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java index 9e510575fc..e5f876c84b 100644 --- a/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java +++ b/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java @@ -54,7 +54,7 @@ public class Java8SortUnitTest { final List humans = Lists.newArrayList(new Human("Sarah", 12), new Human("Sarah", 10), new Human("Zack", 12)); humans.sort((lhs, rhs) -> { if (lhs.getName().equals(rhs.getName())) { - return lhs.getAge() - rhs.getAge(); + return Integer.compare(lhs.getAge(), rhs.getAge()); } else { return lhs.getName().compareTo(rhs.getName()); } diff --git a/core-java-modules/core-java-lang-3/README.md b/core-java-modules/core-java-lang-3/README.md index d735937a02..9ce49da868 100644 --- a/core-java-modules/core-java-lang-3/README.md +++ b/core-java-modules/core-java-lang-3/README.md @@ -3,4 +3,5 @@ This module contains articles about core features in the Java language - [Class.isInstance vs Class.isAssignableFrom](https://www.baeldung.com/java-isinstance-isassignablefrom) +- [Converting a Java String Into a Boolean](https://www.baeldung.com/java-string-to-boolean) - [[<-- Prev]](/core-java-modules/core-java-lang-2) diff --git a/core-java-modules/core-java-lang-oop-types/pom.xml b/core-java-modules/core-java-lang-oop-types/pom.xml index 5555df4818..ee167bbae2 100644 --- a/core-java-modules/core-java-lang-oop-types/pom.xml +++ b/core-java-modules/core-java-lang-oop-types/pom.xml @@ -12,4 +12,12 @@ core-java-lang-oop-types core-java-lang-oop-types jar + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + \ No newline at end of file diff --git a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java new file mode 100644 index 0000000000..ff70da1839 --- /dev/null +++ b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java @@ -0,0 +1,26 @@ +package com.baeldung.primitivetype; + +import java.util.HashMap; +import java.util.Map; + +public class PrimitiveTypeUtil { + + private static final Map, Class> WRAPPER_TYPE_MAP; + static { + WRAPPER_TYPE_MAP = new HashMap, Class>(16); + WRAPPER_TYPE_MAP.put(Integer.class, int.class); + WRAPPER_TYPE_MAP.put(Byte.class, byte.class); + WRAPPER_TYPE_MAP.put(Character.class, char.class); + WRAPPER_TYPE_MAP.put(Boolean.class, boolean.class); + WRAPPER_TYPE_MAP.put(Double.class, double.class); + WRAPPER_TYPE_MAP.put(Float.class, float.class); + WRAPPER_TYPE_MAP.put(Long.class, long.class); + WRAPPER_TYPE_MAP.put(Short.class, short.class); + WRAPPER_TYPE_MAP.put(Void.class, void.class); + } + + public static boolean isPrimitiveType(Object source) { + return WRAPPER_TYPE_MAP.containsKey(source.getClass()); + } + +} diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java new file mode 100644 index 0000000000..b9152d3674 --- /dev/null +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java @@ -0,0 +1,34 @@ +package com.baeldung.primitivetype; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.apache.commons.lang3.ClassUtils; +import org.apache.commons.lang3.StringUtils; +import org.junit.Test; + +import com.google.common.primitives.Primitives; + +public class PrimitiveTypeUnitTest { + + @Test + public void givenAClass_whenCheckWithPrimitiveTypeUtil_thenShouldValidate() { + assertTrue(PrimitiveTypeUtil.isPrimitiveType(false)); + assertTrue(PrimitiveTypeUtil.isPrimitiveType(1L)); + assertFalse(PrimitiveTypeUtil.isPrimitiveType(StringUtils.EMPTY)); + } + + @Test + public void givenAClass_whenCheckWithCommonsLang_thenShouldValidate() { + assertTrue(ClassUtils.isPrimitiveOrWrapper(Boolean.FALSE.getClass())); + assertTrue(ClassUtils.isPrimitiveOrWrapper(boolean.class)); + assertFalse(ClassUtils.isPrimitiveOrWrapper(StringUtils.EMPTY.getClass())); + } + + @Test + public void givenAClass_whenCheckWithGuava_thenShouldValidate() { + assertTrue(Primitives.isWrapperType(Boolean.FALSE.getClass())); + assertFalse(Primitives.isWrapperType(StringUtils.EMPTY.getClass())); + assertFalse(Primitives.isWrapperType(Boolean.TYPE.getClass())); + } +} diff --git a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java index 68a78980f3..74d9a7577e 100644 --- a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java +++ b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java @@ -45,7 +45,7 @@ public class Player implements Comparable { @Override public int compareTo(Player otherPlayer) { - return (this.getRanking() - otherPlayer.getRanking()); + return Integer.compare(getRanking(), otherPlayer.getRanking()); } } diff --git a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java index d2e7ca1f42..56e2163f3c 100644 --- a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java +++ b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java @@ -6,7 +6,7 @@ public class PlayerAgeComparator implements Comparator { @Override public int compare(Player firstPlayer, Player secondPlayer) { - return (firstPlayer.getAge() - secondPlayer.getAge()); + return Integer.compare(firstPlayer.getAge(), secondPlayer.getAge()); } } diff --git a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java index 2d42698843..56aa38d11a 100644 --- a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java +++ b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java @@ -6,7 +6,7 @@ public class PlayerRankingComparator implements Comparator { @Override public int compare(Player firstPlayer, Player secondPlayer) { - return (firstPlayer.getRanking() - secondPlayer.getRanking()); + return Integer.compare(firstPlayer.getRanking(), secondPlayer.getRanking()); } } diff --git a/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java new file mode 100644 index 0000000000..fcca743ca1 --- /dev/null +++ b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.comparator; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class AvoidingSubtractionUnitTest { + + @Test + public void givenTwoPlayers_whenUsingSubtraction_thenOverflow() { + Comparator comparator = (p1, p2) -> p1.getRanking() - p2.getRanking(); + Player player1 = new Player(59, "John", Integer.MAX_VALUE); + Player player2 = new Player(67, "Roger", -1); + + List players = Arrays.asList(player1, player2); + players.sort(comparator); + System.out.println(players); + + assertEquals("John", players.get(0).getName()); + assertEquals("Roger", players.get(1).getName()); + } +} diff --git a/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java index 49c8749309..dac05a85b1 100644 --- a/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java +++ b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java @@ -1,14 +1,14 @@ package com.baeldung.comparator; -import static org.junit.Assert.assertEquals; +import org.junit.Before; +import org.junit.Test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; -import org.junit.Before; -import org.junit.Test; +import static org.junit.Assert.assertEquals; public class Java8ComparatorUnitTest { @@ -28,7 +28,7 @@ public class Java8ComparatorUnitTest { @Test public void whenComparing_UsingLambda_thenSorted() { System.out.println("************** Java 8 Comaparator **************"); - Comparator byRanking = (Player player1, Player player2) -> player1.getRanking() - player2.getRanking(); + Comparator byRanking = (Player player1, Player player2) -> Integer.compare(player1.getRanking(), player2.getRanking()); System.out.println("Before Sorting : " + footballTeam); Collections.sort(footballTeam, byRanking); diff --git a/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java b/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java index 8cf2e941fe..9e9edcd0ba 100644 --- a/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java +++ b/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java @@ -49,11 +49,11 @@ public class EchoServer { if (new String(buffer.array()).trim().equals(POISON_PILL)) { client.close(); System.out.println("Not accepting client messages anymore"); + } else { + buffer.flip(); + client.write(buffer); + buffer.clear(); } - - buffer.flip(); - client.write(buffer); - buffer.clear(); } private static void register(Selector selector, ServerSocketChannel serverSocket) throws IOException { diff --git a/core-java-modules/core-java-os/src/test/java/com/baeldung/screenshot/ScreenshotUnitTest.java b/core-java-modules/core-java-os/src/test/java/com/baeldung/screenshot/ScreenshotUnitTest.java new file mode 100644 index 0000000000..6bd0e7dff7 --- /dev/null +++ b/core-java-modules/core-java-os/src/test/java/com/baeldung/screenshot/ScreenshotUnitTest.java @@ -0,0 +1,51 @@ +import javax.imageio.ImageIO; +import java.awt.Component; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.Rectangle; +import java.awt.Robot; +import java.awt.Toolkit; +import java.awt.image.BufferedImage; +import java.io.File; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +public class ScreenshotUnitTest { + + @Test + public void givenMainScreen_whenTakeScreenshot_thenSaveToFile() throws Exception { + Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); + BufferedImage capture = new Robot().createScreenCapture(screenRect); + File imageFile = File.createTempFile("single-screen", "bmp"); + ImageIO.write(capture, "bmp", imageFile); + assertTrue(imageFile.exists()); + } + + @Test + public void givenMultipleScreens_whenTakeScreenshot_thenSaveToFile() throws Exception { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice[] screens = ge.getScreenDevices(); + Rectangle allScreenBounds = new Rectangle(); + for (GraphicsDevice screen : screens) { + Rectangle screenBounds = screen.getDefaultConfiguration().getBounds(); + allScreenBounds.width += screenBounds.width; + allScreenBounds.height = Math.max(allScreenBounds.height, screenBounds.height); + } + BufferedImage capture = new Robot().createScreenCapture(allScreenBounds); + File imageFile = File.createTempFile("all-screens", "bmp"); + ImageIO.write(capture, "bmp", imageFile); + assertTrue(imageFile.exists()); + } + + @Test + public void givenComponent_whenTakeScreenshot_thenSaveToFile(Component component) throws Exception { + Rectangle componentRect = component.getBounds(); + BufferedImage bufferedImage = new BufferedImage(componentRect.width, componentRect.height, BufferedImage.TYPE_INT_ARGB); + component.paint(bufferedImage.getGraphics()); + File imageFile = File.createTempFile("component-screenshot", "bmp"); + ImageIO.write(bufferedImage, "bmp", imageFile); + assertTrue(imageFile.exists()); + } + +} \ No newline at end of file diff --git a/core-java-modules/core-java-regex/src/test/java/com/baeldung/regex/countmatches/CountMatchesUnitTest.java b/core-java-modules/core-java-regex/src/test/java/com/baeldung/regex/countmatches/CountMatchesUnitTest.java index 6427d11dd6..3e601a7828 100644 --- a/core-java-modules/core-java-regex/src/test/java/com/baeldung/regex/countmatches/CountMatchesUnitTest.java +++ b/core-java-modules/core-java-regex/src/test/java/com/baeldung/regex/countmatches/CountMatchesUnitTest.java @@ -1,12 +1,11 @@ package com.baeldung.regex.countmatches; -import static org.junit.Assert.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.Test; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Unit Test intended to count number of matches of a RegEx using Java 8 and 9. @@ -65,7 +64,7 @@ public class CountMatchesUnitTest { count++; } - assertNotEquals(3, count); + assertEquals(2, count); } @Test diff --git a/core-java-modules/core-java-security-2/README.md b/core-java-modules/core-java-security-2/README.md index 24a821bd4d..ba8cce46a0 100644 --- a/core-java-modules/core-java-security-2/README.md +++ b/core-java-modules/core-java-security-2/README.md @@ -9,4 +9,5 @@ This module contains articles about core Java Security - [Hashing a Password in Java](https://www.baeldung.com/java-password-hashing) - [SHA-256 and SHA3-256 Hashing in Java](https://www.baeldung.com/sha-256-hashing-java) - [Checksums in Java](https://www.baeldung.com/java-checksums) +- [How to Read PEM File to Get Public and Private Keys](https://www.baeldung.com/java-read-pem-file-keys) - More articles: [[<-- prev]](/core-java-modules/core-java-security) diff --git a/core-java-modules/core-java/README.md b/core-java-modules/core-java/README.md index 7781382ae5..b0e740e3b5 100644 --- a/core-java-modules/core-java/README.md +++ b/core-java-modules/core-java/README.md @@ -1,13 +1,13 @@ ## Core Java Cookbooks and Examples ### Relevant Articles: -[Getting Started with Java Properties](http://www.baeldung.com/java-properties) -[Java Money and the Currency API](http://www.baeldung.com/java-money-and-currency) -[Introduction to Java Serialization](http://www.baeldung.com/java-serialization) -[Guide to UUID in Java](http://www.baeldung.com/java-uuid) -[Compiling Java *.class Files with javac](http://www.baeldung.com/javac) -[Introduction to Javadoc](http://www.baeldung.com/javadoc) -[Guide to the Externalizable Interface in Java](http://www.baeldung.com/java-externalizable) -[What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid) -[A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle) -[Merging java.util.Properties Objects](https://www.baeldung.com/java-merging-properties) +- [Getting Started with Java Properties](http://www.baeldung.com/java-properties) +- [Java Money and the Currency API](http://www.baeldung.com/java-money-and-currency) +- [Introduction to Java Serialization](http://www.baeldung.com/java-serialization) +- [Guide to UUID in Java](http://www.baeldung.com/java-uuid) +- [Compiling Java *.class Files with javac](http://www.baeldung.com/javac) +- [Introduction to Javadoc](http://www.baeldung.com/javadoc) +- [Guide to the Externalizable Interface in Java](http://www.baeldung.com/java-externalizable) +- [What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid) +- [A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle) +- [Merging java.util.Properties Objects](https://www.baeldung.com/java-merging-properties) diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 589097cf48..0b832223f4 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -22,6 +22,7 @@ + core-java-8 core-java-8-2 @@ -59,11 +60,16 @@ core-java-concurrency-basic core-java-concurrency-basic-2 core-java-concurrency-collections + core-java-concurrency-collections-2 + core-java-console + + core-java-8-datetime-2 core-java-date-operations-2 + core-java-8-datetime core-java-exceptions core-java-exceptions-2 diff --git a/core-kotlin-modules/core-kotlin-collections/README.md b/core-kotlin-modules/core-kotlin-collections/README.md index dcf2743577..2ebb748cba 100644 --- a/core-kotlin-modules/core-kotlin-collections/README.md +++ b/core-kotlin-modules/core-kotlin-collections/README.md @@ -3,6 +3,7 @@ This module contains articles about core Kotlin collections. ### Relevant articles: + - [Split a List Into Parts in Kotlin](https://www.baeldung.com/kotlin-split-list-into-parts) - [Finding an Element in a List Using Kotlin](https://www.baeldung.com/kotlin-finding-element-in-list) - [Overview of Kotlin Collections API](https://www.baeldung.com/kotlin-collections-api) @@ -12,3 +13,4 @@ This module contains articles about core Kotlin collections. - [Difference between fold and reduce in Kotlin](https://www.baeldung.com/kotlin/fold-vs-reduce) - [Guide to Sorting in Kotlin](https://www.baeldung.com/kotlin-sort) - [Working With Lists in Kotlin](https://www.baeldung.com/kotlin/lists) +- [Iterating Collections by Index in Kotlin](https://www.baeldung.com/kotlin/iterating-collections-by-index) diff --git a/core-kotlin-modules/core-kotlin-lang-oop-2/README.md b/core-kotlin-modules/core-kotlin-lang-oop-2/README.md index 27536273dc..a62a25c01d 100644 --- a/core-kotlin-modules/core-kotlin-lang-oop-2/README.md +++ b/core-kotlin-modules/core-kotlin-lang-oop-2/README.md @@ -7,4 +7,5 @@ This module contains articles about Object-Oriented Programming in Kotlin - [Generics in Kotlin](https://www.baeldung.com/kotlin-generics) - [Delegated Properties in Kotlin](https://www.baeldung.com/kotlin-delegated-properties) - [Delegation Pattern in Kotlin](https://www.baeldung.com/kotlin-delegation-pattern) +- [Anonymous Inner Classes in Kotlin](https://www.baeldung.com/kotlin/anonymous-inner-classes) - [[<-- Prev]](/core-kotlin-modules/core-kotlin-lang-oop) diff --git a/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/exceptionhandling/ExceptionHandling.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/exceptionhandling/ExceptionHandling.kt new file mode 100644 index 0000000000..6689ab43e4 --- /dev/null +++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/exceptionhandling/ExceptionHandling.kt @@ -0,0 +1,88 @@ +package com.baeldung.exceptionhandling + +import java.io.IOException + +class ExceptionHandling { + + fun tryCatchBlock(): Int? { + try { + val message = "Welcome to Kotlin Tutorials" + return message.toInt() + } catch (exception: NumberFormatException) { + println("NumberFormatException in the code") + return null + } + } + + fun tryCatchExpression(): Int? { + val number = try { + val message = "Welcome to Kotlin Tutorials" + message.toInt() + } catch (exception: NumberFormatException) { + println("NumberFormatException in the code") + null + } + return number + } + + fun multipleCatchBlock(): Int? { + return try { + val result = 25 / 0 + result + } catch (exception: NumberFormatException) { + println("NumberFormatException in the code") + null + } catch (exception: ArithmeticException) { + println("ArithmeticException in the code") + null + } catch (exception: Exception) { + println("Exception in the code") + null + } + } + + fun nestedTryCatchBlock(): Int? { + return try { + val firstNumber = 50 / 2 * 0 + try { + val secondNumber = 100 / firstNumber + secondNumber + } catch (exception: ArithmeticException) { + println("ArithmeticException in the code") + null + } + } catch (exception: NumberFormatException) { + println("NumberFormatException in the code") + null + } + } + + fun finallyBlock(): Int? { + return try { + val message = "Welcome to Kotlin Tutorials" + message.toInt() + } catch (exception: NumberFormatException) { + println("NumberFormatException in the code") + null + } finally { + println("In the Finally block") + } + } + + fun throwKeyword(): Int { + val message = "Welcome to Kotlin Tutorials" + if (message.length > 10) throw IllegalArgumentException("String is invalid") + else return message.length + } + + fun throwExpression(): Int? { + val message: String? = null + return message?.length ?: throw IllegalArgumentException("String is null") + } + + @Throws(IOException::class) + fun throwsAnnotation(): String?{ + val filePath = null + return filePath ?: throw IOException("File path is invalid") + } +} diff --git a/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/exceptionhandling/ExceptionHandlingUnitTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/exceptionhandling/ExceptionHandlingUnitTest.kt new file mode 100644 index 0000000000..af7aa4406f --- /dev/null +++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/exceptionhandling/ExceptionHandlingUnitTest.kt @@ -0,0 +1,51 @@ +package com.baeldung.exceptionhandling + +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertThrows +import java.io.IOException +import kotlin.test.assertNull + +class ExceptionHandlingUnitTest { + + private val classUnderTest: ExceptionHandling = ExceptionHandling() + + @Test + fun givenInvalidConversion_whenTryCatchUsed_thenReturnsCatchBlockValue(){ + assertNull(classUnderTest.tryCatchBlock()) + } + + @Test + fun givenInvalidConversion_whenTryCatchExpressionUsed_thenReturnsCatchBlockValue(){ + assertNull(classUnderTest.tryCatchExpression()) + } + + @Test + fun givenDivisionByZero_whenMultipleCatchUsed_thenReturnsCatchBlockValue(){ + assertNull(classUnderTest.multipleCatchBlock()) + } + + @Test + fun givenDivisionByZero_whenNestedTryCatchUsed_thenReturnsNestedCatchBlockValue(){ + assertNull(classUnderTest.nestedTryCatchBlock()) + } + + @Test + fun givenInvalidConversion_whenTryCatchFinallyUsed_thenReturnsCatchAndFinallyBlock(){ + assertNull(classUnderTest.finallyBlock()) + } + + @Test + fun givenIllegalArgument_whenThrowKeywordUsed_thenThrowsException(){ + assertThrows { classUnderTest.throwKeyword() } + } + + @Test + fun givenIllegalArgument_whenElvisExpressionUsed_thenThrowsException(){ + assertThrows { classUnderTest.throwExpression() } + } + + @Test + fun whenAnnotationUsed_thenThrowsException(){ + assertThrows { classUnderTest.throwsAnnotation() } + } +} diff --git a/deeplearning4j/pom.xml b/deeplearning4j/pom.xml index c8fa18cbd4..af65aa7e03 100644 --- a/deeplearning4j/pom.xml +++ b/deeplearning4j/pom.xml @@ -37,6 +37,16 @@ deeplearning4j-nn ${dl4j.version} + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + org.datavec @@ -53,6 +63,7 @@ 0.9.1 4.3.5 + 1.7.5 diff --git a/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CifarDataSetService.java b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CifarDataSetService.java new file mode 100644 index 0000000000..70348a6d9e --- /dev/null +++ b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CifarDataSetService.java @@ -0,0 +1,47 @@ +package com.baeldung.deeplearning4j.cnn; + +import lombok.Getter; +import org.deeplearning4j.datasets.iterator.impl.CifarDataSetIterator; +import org.deeplearning4j.nn.conf.inputs.InputType; +import org.nd4j.linalg.dataset.api.iterator.DataSetIterator; + +import java.util.List; + +@Getter +class CifarDataSetService implements IDataSetService { + + private final InputType inputType = InputType.convolutional(32, 32, 3); + private final int trainImagesNum = 512; + private final int testImagesNum = 128; + private final int trainBatch = 16; + private final int testBatch = 8; + + private final CifarDataSetIterator trainIterator; + + private final CifarDataSetIterator testIterator; + + CifarDataSetService() { + trainIterator = new CifarDataSetIterator(trainBatch, trainImagesNum, true); + testIterator = new CifarDataSetIterator(testBatch, testImagesNum, false); + } + + @Override + public DataSetIterator trainIterator() { + return trainIterator; + } + + @Override + public DataSetIterator testIterator() { + return testIterator; + } + + @Override + public InputType inputType() { + return inputType; + } + + @Override + public List labels() { + return trainIterator.getLabels(); + } +} diff --git a/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnExample.java b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnExample.java new file mode 100644 index 0000000000..224062c388 --- /dev/null +++ b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnExample.java @@ -0,0 +1,18 @@ +package com.baeldung.deeplearning4j.cnn; + + +import lombok.extern.slf4j.Slf4j; +import org.deeplearning4j.eval.Evaluation; + +@Slf4j +class CnnExample { + + public static void main(String... args) { + CnnModel network = new CnnModel(new CifarDataSetService(), new CnnModelProperties()); + + network.train(); + Evaluation evaluation = network.evaluate(); + + log.info(evaluation.stats()); + } +} diff --git a/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnModel.java b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnModel.java new file mode 100644 index 0000000000..efa7f828ed --- /dev/null +++ b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnModel.java @@ -0,0 +1,119 @@ +package com.baeldung.deeplearning4j.cnn; + +import lombok.extern.slf4j.Slf4j; +import org.deeplearning4j.eval.Evaluation; +import org.deeplearning4j.nn.api.OptimizationAlgorithm; +import org.deeplearning4j.nn.conf.MultiLayerConfiguration; +import org.deeplearning4j.nn.conf.NeuralNetConfiguration; +import org.deeplearning4j.nn.conf.layers.ConvolutionLayer; +import org.deeplearning4j.nn.conf.layers.OutputLayer; +import org.deeplearning4j.nn.conf.layers.SubsamplingLayer; +import org.deeplearning4j.nn.multilayer.MultiLayerNetwork; +import org.deeplearning4j.nn.weights.WeightInit; +import org.nd4j.linalg.activations.Activation; +import org.nd4j.linalg.lossfunctions.LossFunctions; + +import java.util.stream.IntStream; + +@Slf4j +class CnnModel { + + private final IDataSetService dataSetService; + + private final MultiLayerNetwork network; + + private final CnnModelProperties properties; + + CnnModel(IDataSetService dataSetService, CnnModelProperties properties) { + + this.dataSetService = dataSetService; + this.properties = properties; + + MultiLayerConfiguration configuration = new NeuralNetConfiguration.Builder() + .seed(1611) + .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) + .learningRate(properties.getLearningRate()) + .regularization(true) + .updater(properties.getOptimizer()) + .list() + .layer(0, conv5x5()) + .layer(1, pooling2x2Stride2()) + .layer(2, conv3x3Stride1Padding2()) + .layer(3, pooling2x2Stride1()) + .layer(4, conv3x3Stride1Padding1()) + .layer(5, pooling2x2Stride1()) + .layer(6, dense()) + .pretrain(false) + .backprop(true) + .setInputType(dataSetService.inputType()) + .build(); + + network = new MultiLayerNetwork(configuration); + } + + void train() { + network.init(); + int epochsNum = properties.getEpochsNum(); + IntStream.range(1, epochsNum + 1).forEach(epoch -> { + log.info("Epoch {} / {}", epoch, epochsNum); + network.fit(dataSetService.trainIterator()); + }); + } + + Evaluation evaluate() { + return network.evaluate(dataSetService.testIterator()); + } + + private ConvolutionLayer conv5x5() { + return new ConvolutionLayer.Builder(5, 5) + .nIn(3) + .nOut(16) + .stride(1, 1) + .padding(1, 1) + .weightInit(WeightInit.XAVIER_UNIFORM) + .activation(Activation.RELU) + .build(); + } + + private SubsamplingLayer pooling2x2Stride2() { + return new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX) + .kernelSize(2, 2) + .stride(2, 2) + .build(); + } + + private ConvolutionLayer conv3x3Stride1Padding2() { + return new ConvolutionLayer.Builder(3, 3) + .nOut(32) + .stride(1, 1) + .padding(2, 2) + .weightInit(WeightInit.XAVIER_UNIFORM) + .activation(Activation.RELU) + .build(); + } + + private SubsamplingLayer pooling2x2Stride1() { + return new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX) + .kernelSize(2, 2) + .stride(1, 1) + .build(); + } + + private ConvolutionLayer conv3x3Stride1Padding1() { + return new ConvolutionLayer.Builder(3, 3) + .nOut(64) + .stride(1, 1) + .padding(1, 1) + .weightInit(WeightInit.XAVIER_UNIFORM) + .activation(Activation.RELU) + .build(); + } + + private OutputLayer dense() { + return new OutputLayer.Builder(LossFunctions.LossFunction.MEAN_SQUARED_LOGARITHMIC_ERROR) + .activation(Activation.SOFTMAX) + .weightInit(WeightInit.XAVIER_UNIFORM) + .nOut(dataSetService.labels().size() - 1) + .build(); + } +} diff --git a/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnModelProperties.java b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnModelProperties.java new file mode 100644 index 0000000000..d010d789c8 --- /dev/null +++ b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/CnnModelProperties.java @@ -0,0 +1,13 @@ +package com.baeldung.deeplearning4j.cnn; + +import lombok.Value; +import org.deeplearning4j.nn.conf.Updater; + +@Value +class CnnModelProperties { + private final int epochsNum = 512; + + private final double learningRate = 0.001; + + private final Updater optimizer = Updater.ADAM; +} diff --git a/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/IDataSetService.java b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/IDataSetService.java new file mode 100644 index 0000000000..ea88bf550c --- /dev/null +++ b/deeplearning4j/src/main/java/com/baeldung/deeplearning4j/cnn/IDataSetService.java @@ -0,0 +1,16 @@ +package com.baeldung.deeplearning4j.cnn; + +import org.deeplearning4j.nn.conf.inputs.InputType; +import org.nd4j.linalg.dataset.api.iterator.DataSetIterator; + +import java.util.List; + +interface IDataSetService { + DataSetIterator trainIterator(); + + DataSetIterator testIterator(); + + InputType inputType(); + + List labels(); +} diff --git a/docker/docker-spring-boot/README.md b/docker/docker-spring-boot/README.md new file mode 100644 index 0000000000..78f13a3652 --- /dev/null +++ b/docker/docker-spring-boot/README.md @@ -0,0 +1,3 @@ +### Relevant Article: + +- [Creating Docker Images with Spring Boot](https://www.baeldung.com/spring-boot-docker-images) diff --git a/docker/docker-spring-boot/mvnw b/docker/docker-spring-boot/mvnw new file mode 100755 index 0000000000..a16b5431b4 --- /dev/null +++ b/docker/docker-spring-boot/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/docker/docker-spring-boot/mvnw.cmd b/docker/docker-spring-boot/mvnw.cmd new file mode 100644 index 0000000000..c8d43372c9 --- /dev/null +++ b/docker/docker-spring-boot/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/docker/docker-spring-boot/pom.xml b/docker/docker-spring-boot/pom.xml new file mode 100644 index 0000000000..b9c80bc43a --- /dev/null +++ b/docker/docker-spring-boot/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.3.1.RELEASE + + + com.baeldung.docker + spring-boot-docker + 0.0.1-SNAPSHOT + spring-boot-docker + Demo project showing Spring Boot and Docker + + + 8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + true + + + + + + + diff --git a/docker/docker-spring-boot/src/main/docker/Dockerfile b/docker/docker-spring-boot/src/main/docker/Dockerfile new file mode 100644 index 0000000000..fa147dd69b --- /dev/null +++ b/docker/docker-spring-boot/src/main/docker/Dockerfile @@ -0,0 +1,15 @@ +# To build, run the following command from the top level project directory: +# +# docker build -f src/main/docker/Dockerfile . + +FROM adoptopenjdk:11-jre-hotspot as builder +ARG JAR_FILE=target/*.jar +COPY ${JAR_FILE} application.jar +RUN java -Djarmode=layertools -jar application.jar extract + +FROM adoptopenjdk:11-jre-hotspot +COPY --from=builder dependencies/ ./ +COPY --from=builder snapshot-dependencies/ ./ +COPY --from=builder spring-boot-loader/ ./ +COPY --from=builder application/ ./ +ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java b/docker/docker-spring-boot/src/main/java/com/baeldung/docker/DemoApplication.java similarity index 58% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java rename to docker/docker-spring-boot/src/main/java/com/baeldung/docker/DemoApplication.java index 3b9aa2cc18..e0c1d57e89 100644 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java +++ b/docker/docker-spring-boot/src/main/java/com/baeldung/docker/DemoApplication.java @@ -1,14 +1,13 @@ -package com.baeldung.multipledb; +package com.baeldung.docker; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class MultipleDbApplication { +public class DemoApplication { public static void main(String[] args) { - SpringApplication.run(MultipleDbApplication.class, args); + SpringApplication.run(DemoApplication.class, args); } - -} +} diff --git a/docker/docker-spring-boot/src/main/java/com/baeldung/docker/HelloController.java b/docker/docker-spring-boot/src/main/java/com/baeldung/docker/HelloController.java new file mode 100644 index 0000000000..b463bb557f --- /dev/null +++ b/docker/docker-spring-boot/src/main/java/com/baeldung/docker/HelloController.java @@ -0,0 +1,16 @@ +package com.baeldung.docker; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HelloController { + + @GetMapping("/hello") + public ResponseEntity hello() + { + return ResponseEntity.ok("hello2 "); + } + +} diff --git a/docker/docker-spring-boot/src/main/resources/application.properties b/docker/docker-spring-boot/src/main/resources/application.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/docker/docker-spring-boot/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/excelformula/README.md b/excelformula/README.md new file mode 100644 index 0000000000..24560525cd --- /dev/null +++ b/excelformula/README.md @@ -0,0 +1,5 @@ +## Apache POI + +This module contains articles about Apache POI + +### Relevant Articles: diff --git a/guava-2/README.md b/guava-2/README.md deleted file mode 100644 index 32afc10916..0000000000 --- a/guava-2/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Guava - -This module contains articles a Google Guava - -### Relevant Articles: - -- [Guava CharMatcher](https://www.baeldung.com/guava-string-charmatcher) diff --git a/guava-modules/guava-18/README.md b/guava-modules/guava-18/README.md index fd5de4170a..bdd289b86f 100644 --- a/guava-modules/guava-18/README.md +++ b/guava-modules/guava-18/README.md @@ -1,8 +1,5 @@ -========= - -## Guava and Hamcrest Cookbooks and Examples +## Guava 18 ### Relevant Articles: -- [Guava Functional Cookbook](http://www.baeldung.com/guava-functions-predicates) - [Guava 18: What’s New?](http://www.baeldung.com/whats-new-in-guava-18) diff --git a/guava-modules/guava-19/README.md b/guava-modules/guava-19/README.md index be9f2d72a4..6508410ba2 100644 --- a/guava-modules/guava-19/README.md +++ b/guava-modules/guava-19/README.md @@ -1,5 +1,3 @@ -========= - ## Guava 19 diff --git a/guava-modules/guava-21/README.md b/guava-modules/guava-21/README.md index 4e897325b6..ad70a180b0 100644 --- a/guava-modules/guava-21/README.md +++ b/guava-modules/guava-21/README.md @@ -1,4 +1,6 @@ +## Guava 21 + ### Relevant articles: + - [New Stream, Comparator and Collector in Guava 21](http://www.baeldung.com/guava-21-new) - [New in Guava 21 common.util.concurrent](http://www.baeldung.com/guava-21-util-concurrent) -- [Zipping Collections in Java](http://www.baeldung.com/java-collections-zip) diff --git a/guava-modules/guava-21/pom.xml b/guava-modules/guava-21/pom.xml index b126df99cb..b793f11a7f 100644 --- a/guava-modules/guava-21/pom.xml +++ b/guava-modules/guava-21/pom.xml @@ -13,17 +13,8 @@ ../ - - - org.jooq - jool - ${jool.version} - - - 21.0 - 0.9.12 \ No newline at end of file diff --git a/guava-modules/guava-collections-list/README.md b/guava-modules/guava-collections-list/README.md new file mode 100644 index 0000000000..d7f9ce2e32 --- /dev/null +++ b/guava-modules/guava-collections-list/README.md @@ -0,0 +1,8 @@ +## Guava Collections List examples + +This module contains articles about list collections in Guava + +### Relevant Articles: + +- [Partition a List in Java](https://www.baeldung.com/java-list-split) +- [Guava – Lists](https://www.baeldung.com/guava-lists) \ No newline at end of file diff --git a/guava-collections/pom.xml b/guava-modules/guava-collections-list/pom.xml similarity index 93% rename from guava-collections/pom.xml rename to guava-modules/guava-collections-list/pom.xml index 238ab60f84..cc52a5d48b 100644 --- a/guava-collections/pom.xml +++ b/guava-modules/guava-collections-list/pom.xml @@ -4,15 +4,15 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - guava-collections + guava-collections-list 0.1.0-SNAPSHOT - guava-collections + guava-collections-list com.baeldung - parent-java + guava-modules 0.0.1-SNAPSHOT - ../parent-java + ../ diff --git a/guava-collections/src/main/resources/logback.xml b/guava-modules/guava-collections-list/src/main/resources/logback.xml similarity index 100% rename from guava-collections/src/main/resources/logback.xml rename to guava-modules/guava-collections-list/src/main/resources/logback.xml diff --git a/guava-collections/src/test/java/com/baeldung/guava/lists/GuavaListsUnitTest.java b/guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/lists/GuavaListsUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/lists/GuavaListsUnitTest.java rename to guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/lists/GuavaListsUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/partition/CollectionApachePartitionUnitTest.java b/guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/partition/CollectionApachePartitionUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/partition/CollectionApachePartitionUnitTest.java rename to guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/partition/CollectionApachePartitionUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/partition/CollectionGuavaPartitionUnitTest.java b/guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/partition/CollectionGuavaPartitionUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/partition/CollectionGuavaPartitionUnitTest.java rename to guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/partition/CollectionGuavaPartitionUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/partition/CollectionJavaPartitionUnitTest.java b/guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/partition/CollectionJavaPartitionUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/partition/CollectionJavaPartitionUnitTest.java rename to guava-modules/guava-collections-list/src/test/java/com/baeldung/guava/partition/CollectionJavaPartitionUnitTest.java diff --git a/guava-collections-map/README.md b/guava-modules/guava-collections-map/README.md similarity index 100% rename from guava-collections-map/README.md rename to guava-modules/guava-collections-map/README.md diff --git a/guava-collections-map/pom.xml b/guava-modules/guava-collections-map/pom.xml similarity index 94% rename from guava-collections-map/pom.xml rename to guava-modules/guava-collections-map/pom.xml index 4a95234d5c..82d634265b 100644 --- a/guava-collections-map/pom.xml +++ b/guava-modules/guava-collections-map/pom.xml @@ -9,9 +9,9 @@ com.baeldung - parent-java + guava-modules 0.0.1-SNAPSHOT - ../parent-java + ../ diff --git a/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Profile.java b/guava-modules/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Profile.java similarity index 100% rename from guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Profile.java rename to guava-modules/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Profile.java diff --git a/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Session.java b/guava-modules/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Session.java similarity index 100% rename from guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Session.java rename to guava-modules/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/Session.java diff --git a/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/User.java b/guava-modules/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/User.java similarity index 100% rename from guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/User.java rename to guava-modules/guava-collections-map/src/main/java/com/baeldung/guava/mapmaker/User.java diff --git a/guava-collections-map/src/test/java/com/baeldung/guava/classtoinstancemap/ClassToInstanceMapUnitTest.java b/guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/classtoinstancemap/ClassToInstanceMapUnitTest.java similarity index 100% rename from guava-collections-map/src/test/java/com/baeldung/guava/classtoinstancemap/ClassToInstanceMapUnitTest.java rename to guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/classtoinstancemap/ClassToInstanceMapUnitTest.java diff --git a/guava-collections-map/src/test/java/com/baeldung/guava/initializemaps/GuavaMapInitializeUnitTest.java b/guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/initializemaps/GuavaMapInitializeUnitTest.java similarity index 100% rename from guava-collections-map/src/test/java/com/baeldung/guava/initializemaps/GuavaMapInitializeUnitTest.java rename to guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/initializemaps/GuavaMapInitializeUnitTest.java diff --git a/guava-collections-map/src/test/java/com/baeldung/guava/mapmaker/GuavaMapMakerUnitTest.java b/guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/mapmaker/GuavaMapMakerUnitTest.java similarity index 100% rename from guava-collections-map/src/test/java/com/baeldung/guava/mapmaker/GuavaMapMakerUnitTest.java rename to guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/mapmaker/GuavaMapMakerUnitTest.java diff --git a/guava-collections-map/src/test/java/com/baeldung/guava/maps/GuavaMapsUnitTest.java b/guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/maps/GuavaMapsUnitTest.java similarity index 100% rename from guava-collections-map/src/test/java/com/baeldung/guava/maps/GuavaMapsUnitTest.java rename to guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/maps/GuavaMapsUnitTest.java diff --git a/guava-collections-map/src/test/java/com/baeldung/guava/multimap/GuavaMultiMapUnitTest.java b/guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/multimap/GuavaMultiMapUnitTest.java similarity index 100% rename from guava-collections-map/src/test/java/com/baeldung/guava/multimap/GuavaMultiMapUnitTest.java rename to guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/multimap/GuavaMultiMapUnitTest.java diff --git a/guava-collections-map/src/test/java/com/baeldung/guava/rangemap/GuavaRangeMapUnitTest.java b/guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/rangemap/GuavaRangeMapUnitTest.java similarity index 100% rename from guava-collections-map/src/test/java/com/baeldung/guava/rangemap/GuavaRangeMapUnitTest.java rename to guava-modules/guava-collections-map/src/test/java/com/baeldung/guava/rangemap/GuavaRangeMapUnitTest.java diff --git a/guava-2/src/test/resources/.gitignore b/guava-modules/guava-collections-set/.gitignore similarity index 100% rename from guava-2/src/test/resources/.gitignore rename to guava-modules/guava-collections-set/.gitignore diff --git a/guava-collections-set/README.md b/guava-modules/guava-collections-set/README.md similarity index 100% rename from guava-collections-set/README.md rename to guava-modules/guava-collections-set/README.md diff --git a/guava-collections-set/pom.xml b/guava-modules/guava-collections-set/pom.xml similarity index 94% rename from guava-collections-set/pom.xml rename to guava-modules/guava-collections-set/pom.xml index af46400555..8f58148e41 100644 --- a/guava-collections-set/pom.xml +++ b/guava-modules/guava-collections-set/pom.xml @@ -8,9 +8,9 @@ com.baeldung - parent-java + guava-modules 0.0.1-SNAPSHOT - ../parent-java + ../ diff --git a/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSet.java b/guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSet.java similarity index 100% rename from guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSet.java rename to guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSet.java diff --git a/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSetUnitTest.java b/guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSetUnitTest.java similarity index 100% rename from guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSetUnitTest.java rename to guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMapFromSetUnitTest.java diff --git a/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMultiSetUnitTest.java b/guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMultiSetUnitTest.java similarity index 100% rename from guava-collections-set/src/test/java/com/baeldung/guava/GuavaMultiSetUnitTest.java rename to guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaMultiSetUnitTest.java diff --git a/guava-collections-set/src/test/java/com/baeldung/guava/GuavaRangeSetUnitTest.java b/guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaRangeSetUnitTest.java similarity index 100% rename from guava-collections-set/src/test/java/com/baeldung/guava/GuavaRangeSetUnitTest.java rename to guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaRangeSetUnitTest.java diff --git a/guava-collections-set/src/test/java/com/baeldung/guava/GuavaSetOperationsUnitTest.java b/guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaSetOperationsUnitTest.java similarity index 100% rename from guava-collections-set/src/test/java/com/baeldung/guava/GuavaSetOperationsUnitTest.java rename to guava-modules/guava-collections-set/src/test/java/com/baeldung/guava/GuavaSetOperationsUnitTest.java diff --git a/guava-collections/README.md b/guava-modules/guava-collections/README.md similarity index 86% rename from guava-collections/README.md rename to guava-modules/guava-collections/README.md index 51731d7db7..474ded6f33 100644 --- a/guava-collections/README.md +++ b/guava-modules/guava-collections/README.md @@ -8,9 +8,8 @@ This module contains articles about Google Guava collections - [Guava Ordering Cookbook](https://www.baeldung.com/guava-order) - [Guide to Guava’s Ordering](https://www.baeldung.com/guava-ordering) - [Hamcrest Collections Cookbook](https://www.baeldung.com/hamcrest-collections-arrays) -- [Partition a List in Java](https://www.baeldung.com/java-list-split) - [Filtering and Transforming Collections in Guava](https://www.baeldung.com/guava-filter-and-transform-a-collection) - [Guava – Join and Split Collections](https://www.baeldung.com/guava-joiner-and-splitter-tutorial) -- [Guava – Lists](https://www.baeldung.com/guava-lists) - [Guide to Guava MinMaxPriorityQueue and EvictingQueue](https://www.baeldung.com/guava-minmax-priority-queue-and-evicting-queue) - [Guide to Guava Table](https://www.baeldung.com/guava-table) +- [Zipping Collections in Java](http://www.baeldung.com/java-collections-zip) diff --git a/guava-modules/guava-collections/pom.xml b/guava-modules/guava-collections/pom.xml new file mode 100644 index 0000000000..53c55dc655 --- /dev/null +++ b/guava-modules/guava-collections/pom.xml @@ -0,0 +1,95 @@ + + + 4.0.0 + guava-collections + 0.1.0-SNAPSHOT + guava-collections + + + com.baeldung + guava-modules + 0.0.1-SNAPSHOT + ../ + + + + + + org.apache.commons + commons-collections4 + ${commons-collections4.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + org.jooq + jool + ${jool.version} + + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + org.junit.vintage + junit-vintage-engine + ${junit-jupiter.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + org.hamcrest + java-hamcrest + ${java-hamcrest.version} + test + + + + + guava-collections + + + + src/main/resources + true + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + + + + + 4.1 + 0.9.12 + + + 3.6.1 + 2.0.0.0 + 5.6.2 + + + \ No newline at end of file diff --git a/guava/src/main/resources/logback.xml b/guava-modules/guava-collections/src/main/resources/logback.xml similarity index 100% rename from guava/src/main/resources/logback.xml rename to guava-modules/guava-collections/src/main/resources/logback.xml diff --git a/guava-collections/src/test/java/com/baeldung/guava/collections/GuavaCollectionsExamplesUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/collections/GuavaCollectionsExamplesUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/collections/GuavaCollectionsExamplesUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/collections/GuavaCollectionsExamplesUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/filtertransform/GuavaFilterTransformCollectionsUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/filtertransform/GuavaFilterTransformCollectionsUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/filtertransform/GuavaFilterTransformCollectionsUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/filtertransform/GuavaFilterTransformCollectionsUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/joinsplit/GuavaStringUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/joinsplit/GuavaStringUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/joinsplit/GuavaStringUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/joinsplit/GuavaStringUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingExamplesUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingExamplesUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingExamplesUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingExamplesUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/ordering/GuavaOrderingUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/queues/EvictingQueueUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/queues/EvictingQueueUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/queues/EvictingQueueUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/queues/EvictingQueueUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/queues/MinMaxPriorityQueueUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/queues/MinMaxPriorityQueueUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/queues/MinMaxPriorityQueueUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/queues/MinMaxPriorityQueueUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/guava/table/GuavaTableUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/table/GuavaTableUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/guava/table/GuavaTableUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/table/GuavaTableUnitTest.java diff --git a/guava-modules/guava-21/src/test/java/com/baeldung/guava/zip/ZipCollectionUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/guava/zip/ZipCollectionUnitTest.java similarity index 100% rename from guava-modules/guava-21/src/test/java/com/baeldung/guava/zip/ZipCollectionUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/guava/zip/ZipCollectionUnitTest.java diff --git a/guava-collections/src/test/java/com/baeldung/hamcrest/HamcrestExamplesUnitTest.java b/guava-modules/guava-collections/src/test/java/com/baeldung/hamcrest/HamcrestExamplesUnitTest.java similarity index 100% rename from guava-collections/src/test/java/com/baeldung/hamcrest/HamcrestExamplesUnitTest.java rename to guava-modules/guava-collections/src/test/java/com/baeldung/hamcrest/HamcrestExamplesUnitTest.java diff --git a/guava-2/src/test/resources/test.out b/guava-modules/guava-collections/src/test/resources/test.out similarity index 100% rename from guava-2/src/test/resources/test.out rename to guava-modules/guava-collections/src/test/resources/test.out diff --git a/guava-2/src/test/resources/test1.in b/guava-modules/guava-collections/src/test/resources/test1.in similarity index 100% rename from guava-2/src/test/resources/test1.in rename to guava-modules/guava-collections/src/test/resources/test1.in diff --git a/guava-2/src/test/resources/test1_1.in b/guava-modules/guava-collections/src/test/resources/test1_1.in similarity index 100% rename from guava-2/src/test/resources/test1_1.in rename to guava-modules/guava-collections/src/test/resources/test1_1.in diff --git a/guava-2/src/test/resources/test2.in b/guava-modules/guava-collections/src/test/resources/test2.in similarity index 100% rename from guava-2/src/test/resources/test2.in rename to guava-modules/guava-collections/src/test/resources/test2.in diff --git a/guava-2/src/test/resources/test_copy.in b/guava-modules/guava-collections/src/test/resources/test_copy.in similarity index 100% rename from guava-2/src/test/resources/test_copy.in rename to guava-modules/guava-collections/src/test/resources/test_copy.in diff --git a/guava-2/src/test/resources/test_le.txt b/guava-modules/guava-collections/src/test/resources/test_le.txt similarity index 100% rename from guava-2/src/test/resources/test_le.txt rename to guava-modules/guava-collections/src/test/resources/test_le.txt diff --git a/guava-modules/guava-core/README.md b/guava-modules/guava-core/README.md new file mode 100644 index 0000000000..59391ca076 --- /dev/null +++ b/guava-modules/guava-core/README.md @@ -0,0 +1,10 @@ +## Guava Core + +This module contains articles about core or base functionality provided by Google Guava + +### Relevant Articles: +- [Introduction to Guava Throwables](https://www.baeldung.com/guava-throwables) +- [Guava CharMatcher](https://www.baeldung.com/guava-string-charmatcher) +- [Guide to Guava’s PreConditions](https://www.baeldung.com/guava-preconditions) +- [Introduction to Guava Memoizer](https://www.baeldung.com/guava-memoizer) +- [Guava Functional Cookbook](https://www.baeldung.com/guava-functions-predicates) diff --git a/guava-2/pom.xml b/guava-modules/guava-core/pom.xml similarity index 89% rename from guava-2/pom.xml rename to guava-modules/guava-core/pom.xml index b19f59a9b4..5224148cb8 100644 --- a/guava-2/pom.xml +++ b/guava-modules/guava-core/pom.xml @@ -4,15 +4,15 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - guava-2 + guava-core 0.1.0-SNAPSHOT - guava-2 + guava-core com.baeldung - parent-java + guava-modules 0.0.1-SNAPSHOT - ../parent-java + ../ diff --git a/guava/src/main/java/com/baeldung/guava/memoizer/CostlySupplier.java b/guava-modules/guava-core/src/main/java/com/baeldung/guava/memoizer/CostlySupplier.java similarity index 100% rename from guava/src/main/java/com/baeldung/guava/memoizer/CostlySupplier.java rename to guava-modules/guava-core/src/main/java/com/baeldung/guava/memoizer/CostlySupplier.java diff --git a/guava/src/main/java/com/baeldung/guava/memoizer/Factorial.java b/guava-modules/guava-core/src/main/java/com/baeldung/guava/memoizer/Factorial.java similarity index 100% rename from guava/src/main/java/com/baeldung/guava/memoizer/Factorial.java rename to guava-modules/guava-core/src/main/java/com/baeldung/guava/memoizer/Factorial.java diff --git a/guava/src/main/java/com/baeldung/guava/memoizer/FibonacciSequence.java b/guava-modules/guava-core/src/main/java/com/baeldung/guava/memoizer/FibonacciSequence.java similarity index 100% rename from guava/src/main/java/com/baeldung/guava/memoizer/FibonacciSequence.java rename to guava-modules/guava-core/src/main/java/com/baeldung/guava/memoizer/FibonacciSequence.java diff --git a/guava-2/src/test/java/com/baeldung/guava/charmatcher/GuavaCharMatcherUnitTest.java b/guava-modules/guava-core/src/test/java/com/baeldung/guava/charmatcher/GuavaCharMatcherUnitTest.java similarity index 100% rename from guava-2/src/test/java/com/baeldung/guava/charmatcher/GuavaCharMatcherUnitTest.java rename to guava-modules/guava-core/src/test/java/com/baeldung/guava/charmatcher/GuavaCharMatcherUnitTest.java diff --git a/guava/src/test/java/com/baeldung/guava/GuavaFunctionalExamplesUnitTest.java b/guava-modules/guava-core/src/test/java/com/baeldung/guava/functional/GuavaFunctionalExamplesUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaFunctionalExamplesUnitTest.java rename to guava-modules/guava-core/src/test/java/com/baeldung/guava/functional/GuavaFunctionalExamplesUnitTest.java index b54a7c951a..0177f4f13e 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaFunctionalExamplesUnitTest.java +++ b/guava-modules/guava-core/src/test/java/com/baeldung/guava/functional/GuavaFunctionalExamplesUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.functional; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.equalTo; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaMemoizerUnitTest.java b/guava-modules/guava-core/src/test/java/com/baeldung/guava/memoizer/GuavaMemoizerUnitTest.java similarity index 98% rename from guava/src/test/java/com/baeldung/guava/GuavaMemoizerUnitTest.java rename to guava-modules/guava-core/src/test/java/com/baeldung/guava/memoizer/GuavaMemoizerUnitTest.java index 9bafb7ad3f..9af9462e56 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaMemoizerUnitTest.java +++ b/guava-modules/guava-core/src/test/java/com/baeldung/guava/memoizer/GuavaMemoizerUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.memoizer; import com.google.common.base.Suppliers; import com.baeldung.guava.memoizer.CostlySupplier; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaPreConditionsUnitTest.java b/guava-modules/guava-core/src/test/java/com/baeldung/guava/preconditions/GuavaPreConditionsUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaPreConditionsUnitTest.java rename to guava-modules/guava-core/src/test/java/com/baeldung/guava/preconditions/GuavaPreConditionsUnitTest.java index fe3be9abf0..1f7111b12f 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaPreConditionsUnitTest.java +++ b/guava-modules/guava-core/src/test/java/com/baeldung/guava/preconditions/GuavaPreConditionsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.preconditions; import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.util.Arrays; diff --git a/guava-2/src/test/java/com/baeldung/guava/throwables/ThrowablesUnitTest.java b/guava-modules/guava-core/src/test/java/com/baeldung/guava/throwables/ThrowablesUnitTest.java similarity index 100% rename from guava-2/src/test/java/com/baeldung/guava/throwables/ThrowablesUnitTest.java rename to guava-modules/guava-core/src/test/java/com/baeldung/guava/throwables/ThrowablesUnitTest.java diff --git a/guava-collections-set/.gitignore b/guava-modules/guava-core/src/test/resources/.gitignore similarity index 100% rename from guava-collections-set/.gitignore rename to guava-modules/guava-core/src/test/resources/.gitignore diff --git a/guava-collections/src/test/resources/test.out b/guava-modules/guava-core/src/test/resources/test.out similarity index 100% rename from guava-collections/src/test/resources/test.out rename to guava-modules/guava-core/src/test/resources/test.out diff --git a/guava-collections/src/test/resources/test1.in b/guava-modules/guava-core/src/test/resources/test1.in similarity index 100% rename from guava-collections/src/test/resources/test1.in rename to guava-modules/guava-core/src/test/resources/test1.in diff --git a/guava-collections/src/test/resources/test1_1.in b/guava-modules/guava-core/src/test/resources/test1_1.in similarity index 100% rename from guava-collections/src/test/resources/test1_1.in rename to guava-modules/guava-core/src/test/resources/test1_1.in diff --git a/guava-collections/src/test/resources/test2.in b/guava-modules/guava-core/src/test/resources/test2.in similarity index 100% rename from guava-collections/src/test/resources/test2.in rename to guava-modules/guava-core/src/test/resources/test2.in diff --git a/guava-collections/src/test/resources/test_copy.in b/guava-modules/guava-core/src/test/resources/test_copy.in similarity index 100% rename from guava-collections/src/test/resources/test_copy.in rename to guava-modules/guava-core/src/test/resources/test_copy.in diff --git a/guava-collections/src/test/resources/test_le.txt b/guava-modules/guava-core/src/test/resources/test_le.txt similarity index 100% rename from guava-collections/src/test/resources/test_le.txt rename to guava-modules/guava-core/src/test/resources/test_le.txt diff --git a/guava-io/README.md b/guava-modules/guava-io/README.md similarity index 100% rename from guava-io/README.md rename to guava-modules/guava-io/README.md diff --git a/guava-io/pom.xml b/guava-modules/guava-io/pom.xml similarity index 94% rename from guava-io/pom.xml rename to guava-modules/guava-io/pom.xml index e01f76e2e3..6b3280755c 100644 --- a/guava-io/pom.xml +++ b/guava-modules/guava-io/pom.xml @@ -11,9 +11,9 @@ com.baeldung - parent-java + guava-modules 0.0.1-SNAPSHOT - ../parent-java + ../ diff --git a/guava-io/src/test/java/com/baeldung/guava/GuavaCountingOutputStreamUnitTest.java b/guava-modules/guava-io/src/test/java/com/baeldung/guava/GuavaCountingOutputStreamUnitTest.java similarity index 100% rename from guava-io/src/test/java/com/baeldung/guava/GuavaCountingOutputStreamUnitTest.java rename to guava-modules/guava-io/src/test/java/com/baeldung/guava/GuavaCountingOutputStreamUnitTest.java diff --git a/guava-io/src/test/java/com/baeldung/guava/GuavaIOUnitTest.java b/guava-modules/guava-io/src/test/java/com/baeldung/guava/GuavaIOUnitTest.java similarity index 100% rename from guava-io/src/test/java/com/baeldung/guava/GuavaIOUnitTest.java rename to guava-modules/guava-io/src/test/java/com/baeldung/guava/GuavaIOUnitTest.java diff --git a/guava-io/src/test/resources/test1.in b/guava-modules/guava-io/src/test/resources/test1.in similarity index 100% rename from guava-io/src/test/resources/test1.in rename to guava-modules/guava-io/src/test/resources/test1.in diff --git a/guava-io/src/test/resources/test1_1.in b/guava-modules/guava-io/src/test/resources/test1_1.in similarity index 100% rename from guava-io/src/test/resources/test1_1.in rename to guava-modules/guava-io/src/test/resources/test1_1.in diff --git a/guava-io/src/test/resources/test2.in b/guava-modules/guava-io/src/test/resources/test2.in similarity index 100% rename from guava-io/src/test/resources/test2.in rename to guava-modules/guava-io/src/test/resources/test2.in diff --git a/guava/.gitignore b/guava-modules/guava-utilities/.gitignore similarity index 100% rename from guava/.gitignore rename to guava-modules/guava-utilities/.gitignore diff --git a/guava/README.md b/guava-modules/guava-utilities/README.md similarity index 60% rename from guava/README.md rename to guava-modules/guava-utilities/README.md index 24beca60c3..e2caa1a145 100644 --- a/guava/README.md +++ b/guava-modules/guava-utilities/README.md @@ -1,17 +1,12 @@ -## Guava +## Guava Utilities -This module contains articles a Google Guava +This module contains articles about utilities provided by Google Guava ### Relevant Articles: - -- [Guava Functional Cookbook](https://www.baeldung.com/guava-functions-predicates) -- [Guide to Guava’s PreConditions](https://www.baeldung.com/guava-preconditions) - [Introduction to Guava CacheLoader](https://www.baeldung.com/guava-cacheloader) -- [Introduction to Guava Memoizer](https://www.baeldung.com/guava-memoizer) - [Guide to Guava’s EventBus](https://www.baeldung.com/guava-eventbus) - [Guide to Guava’s Reflection Utilities](https://www.baeldung.com/guava-reflection) - [Guide to Mathematical Utilities in Guava](https://www.baeldung.com/guava-math) - [Bloom Filter in Java using Guava](https://www.baeldung.com/guava-bloom-filter) - [Quick Guide to the Guava RateLimiter](https://www.baeldung.com/guava-rate-limiter) - [Guava Cache](https://www.baeldung.com/guava-cache) -- [Introduction to Guava Throwables](https://www.baeldung.com/guava-throwables) diff --git a/guava/pom.xml b/guava-modules/guava-utilities/pom.xml similarity index 92% rename from guava/pom.xml rename to guava-modules/guava-utilities/pom.xml index 2c4ff07c84..0496f5b2e8 100644 --- a/guava/pom.xml +++ b/guava-modules/guava-utilities/pom.xml @@ -4,15 +4,15 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - guava + guava-utilities 0.1.0-SNAPSHOT - guava + guava-utilities com.baeldung - parent-java + guava-modules 0.0.1-SNAPSHOT - ../parent-java + ../ diff --git a/guava/src/main/java/com/baeldung/guava/CustomEvent.java b/guava-modules/guava-utilities/src/main/java/com/baeldung/guava/eventbus/CustomEvent.java similarity index 87% rename from guava/src/main/java/com/baeldung/guava/CustomEvent.java rename to guava-modules/guava-utilities/src/main/java/com/baeldung/guava/eventbus/CustomEvent.java index a154790374..55112b5cb3 100644 --- a/guava/src/main/java/com/baeldung/guava/CustomEvent.java +++ b/guava-modules/guava-utilities/src/main/java/com/baeldung/guava/eventbus/CustomEvent.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.eventbus; public class CustomEvent { private String action; diff --git a/guava/src/main/java/com/baeldung/guava/EventListener.java b/guava-modules/guava-utilities/src/main/java/com/baeldung/guava/eventbus/EventListener.java similarity index 96% rename from guava/src/main/java/com/baeldung/guava/EventListener.java rename to guava-modules/guava-utilities/src/main/java/com/baeldung/guava/eventbus/EventListener.java index 7bcfbcb8e9..404501b578 100644 --- a/guava/src/main/java/com/baeldung/guava/EventListener.java +++ b/guava-modules/guava-utilities/src/main/java/com/baeldung/guava/eventbus/EventListener.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.eventbus; import com.google.common.eventbus.DeadEvent; import com.google.common.eventbus.Subscribe; diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/resources/logback.xml b/guava-modules/guava-utilities/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/resources/logback.xml rename to guava-modules/guava-utilities/src/main/resources/logback.xml diff --git a/guava/src/test/java/com/baeldung/guava/BloomFilterUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/bloomfilter/BloomFilterUnitTest.java similarity index 97% rename from guava/src/test/java/com/baeldung/guava/BloomFilterUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/bloomfilter/BloomFilterUnitTest.java index c11bf27256..96cc8ac1d9 100644 --- a/guava/src/test/java/com/baeldung/guava/BloomFilterUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/bloomfilter/BloomFilterUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.bloomfilter; import com.google.common.hash.BloomFilter; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaCacheUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/cache/GuavaCacheUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaCacheUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/cache/GuavaCacheUnitTest.java index 8aa56c7c52..0129d661fc 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaCacheUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/cache/GuavaCacheUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.cache; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaCacheLoaderUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/cacheloader/GuavaCacheLoaderUnitTest.java similarity index 98% rename from guava/src/test/java/com/baeldung/guava/GuavaCacheLoaderUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/cacheloader/GuavaCacheLoaderUnitTest.java index bf9747ec18..7157c76494 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaCacheLoaderUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/cacheloader/GuavaCacheLoaderUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.cacheloader; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaEventBusUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/eventbus/GuavaEventBusUnitTest.java similarity index 90% rename from guava/src/test/java/com/baeldung/guava/GuavaEventBusUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/eventbus/GuavaEventBusUnitTest.java index bb9d26fcce..a6967d18f7 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaEventBusUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/eventbus/GuavaEventBusUnitTest.java @@ -1,5 +1,7 @@ -package com.baeldung.guava; +package com.baeldung.guava.eventbus; +import com.baeldung.guava.eventbus.CustomEvent; +import com.baeldung.guava.eventbus.EventListener; import com.google.common.eventbus.EventBus; import org.junit.After; import org.junit.Before; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaBigIntegerMathUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaBigIntegerMathUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaBigIntegerMathUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaBigIntegerMathUnitTest.java index cca42a688f..d890ef0bf0 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaBigIntegerMathUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaBigIntegerMathUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.mathutils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaDoubleMathUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaDoubleMathUnitTest.java similarity index 98% rename from guava/src/test/java/com/baeldung/guava/GuavaDoubleMathUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaDoubleMathUnitTest.java index 9c78fb36fa..05a70e3654 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaDoubleMathUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaDoubleMathUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.mathutils; import static org.junit.Assert.*; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaIntMathUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaIntMathUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaIntMathUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaIntMathUnitTest.java index 547f423396..4ac3c93518 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaIntMathUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaIntMathUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.mathutils; import static org.junit.Assert.*; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaLongMathUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaLongMathUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaLongMathUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaLongMathUnitTest.java index 33c28d4594..41358b081b 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaLongMathUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaLongMathUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.mathutils; import static org.junit.Assert.*; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaMathUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaMathUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaMathUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaMathUnitTest.java index fce0fec13b..0d21a6f4ae 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaMathUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/mathutils/GuavaMathUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.mathutils; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.*; diff --git a/guava/src/test/java/com/baeldung/guava/RateLimiterLongRunningUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/ratelimiter/RateLimiterLongRunningUnitTest.java similarity index 98% rename from guava/src/test/java/com/baeldung/guava/RateLimiterLongRunningUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/ratelimiter/RateLimiterLongRunningUnitTest.java index 7372e9f6e9..cb06e6ff85 100644 --- a/guava/src/test/java/com/baeldung/guava/RateLimiterLongRunningUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/ratelimiter/RateLimiterLongRunningUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.ratelimiter; import com.google.common.util.concurrent.RateLimiter; diff --git a/guava/src/test/java/com/baeldung/guava/GuavaReflectionUtilsUnitTest.java b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/reflectionutils/GuavaReflectionUtilsUnitTest.java similarity index 99% rename from guava/src/test/java/com/baeldung/guava/GuavaReflectionUtilsUnitTest.java rename to guava-modules/guava-utilities/src/test/java/com/baeldung/guava/reflectionutils/GuavaReflectionUtilsUnitTest.java index 36df241711..8060191bdc 100644 --- a/guava/src/test/java/com/baeldung/guava/GuavaReflectionUtilsUnitTest.java +++ b/guava-modules/guava-utilities/src/test/java/com/baeldung/guava/reflectionutils/GuavaReflectionUtilsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.guava; +package com.baeldung.guava.reflectionutils; import com.google.common.collect.Lists; diff --git a/guava/src/test/resources/.gitignore b/guava-modules/guava-utilities/src/test/resources/.gitignore similarity index 100% rename from guava/src/test/resources/.gitignore rename to guava-modules/guava-utilities/src/test/resources/.gitignore diff --git a/guava/src/test/resources/test.out b/guava-modules/guava-utilities/src/test/resources/test.out similarity index 100% rename from guava/src/test/resources/test.out rename to guava-modules/guava-utilities/src/test/resources/test.out diff --git a/guava/src/test/resources/test1.in b/guava-modules/guava-utilities/src/test/resources/test1.in similarity index 100% rename from guava/src/test/resources/test1.in rename to guava-modules/guava-utilities/src/test/resources/test1.in diff --git a/guava/src/test/resources/test1_1.in b/guava-modules/guava-utilities/src/test/resources/test1_1.in similarity index 100% rename from guava/src/test/resources/test1_1.in rename to guava-modules/guava-utilities/src/test/resources/test1_1.in diff --git a/guava/src/test/resources/test2.in b/guava-modules/guava-utilities/src/test/resources/test2.in similarity index 100% rename from guava/src/test/resources/test2.in rename to guava-modules/guava-utilities/src/test/resources/test2.in diff --git a/guava/src/test/resources/test_copy.in b/guava-modules/guava-utilities/src/test/resources/test_copy.in similarity index 100% rename from guava/src/test/resources/test_copy.in rename to guava-modules/guava-utilities/src/test/resources/test_copy.in diff --git a/guava/src/test/resources/test_le.txt b/guava-modules/guava-utilities/src/test/resources/test_le.txt similarity index 100% rename from guava/src/test/resources/test_le.txt rename to guava-modules/guava-utilities/src/test/resources/test_le.txt diff --git a/guava-modules/pom.xml b/guava-modules/pom.xml index d1a2bbc16e..b625f9fd0f 100644 --- a/guava-modules/pom.xml +++ b/guava-modules/pom.xml @@ -4,9 +4,6 @@ 4.0.0 guava-modules guava-modules - - 5.6.2 - pom @@ -17,12 +14,24 @@ + guava-utilities + guava-core guava-18 guava-19 guava-21 + guava-collections + guava-collections-list + guava-collections-map + guava-collections-set + guava-io + + com.google.guava + guava + ${guava.version} + org.junit.jupiter junit-jupiter @@ -47,4 +56,9 @@ + + 5.6.2 + 29.0-jre + + diff --git a/image-processing/README.md b/image-processing/README.md index 50129bb994..eba23f83eb 100644 --- a/image-processing/README.md +++ b/image-processing/README.md @@ -6,3 +6,5 @@ This module contains articles about image processing. - [Working with Images in Java](https://www.baeldung.com/java-images) - [Intro to OpenCV with Java](https://www.baeldung.com/java-opencv) - [Optical Character Recognition with Tesseract](https://www.baeldung.com/java-ocr-tesseract) +- [How Can I Resize an Image Using Java?](https://www.baeldung.com/java-resize-image) +- [Adding Text to an Image in Java](https://www.baeldung.com/java-add-text-to-image) diff --git a/java-collections-conversions-2/src/main/java/com/baeldung/convertlisttomap/ListToMapConverter.java b/java-collections-conversions-2/src/main/java/com/baeldung/convertlisttomap/ListToMapConverter.java new file mode 100644 index 0000000000..8450f54f9d --- /dev/null +++ b/java-collections-conversions-2/src/main/java/com/baeldung/convertlisttomap/ListToMapConverter.java @@ -0,0 +1,70 @@ +package com.baeldung.convertlisttomap; + +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; +import java.util.function.BinaryOperator; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +/** + * Convert a string list to a map whose key is the string's length and value is the collection with same length. + * Give a list {"Baeldung", "is", "very", "cool"}. + * After conversion we'll get a map like: + * {8 : ["Baeldung"], 2 : ["is"], 4 : ["very", "cool"]}. + * + * @author leasy.zhang + * + */ +public class ListToMapConverter { + + public Map> groupingByStringLength(List source, + Supplier>> mapSupplier, + Supplier> listSupplier) { + + return source.stream() + .collect(Collectors.groupingBy(String::length, mapSupplier, Collectors.toCollection(listSupplier))); + } + + public Map> streamCollectByStringLength(List source, + Supplier>> mapSupplier, + Supplier> listSupplier) { + + BiConsumer>, String> accumulator = (response, element) -> { + Integer key = element.length(); + List values = response.getOrDefault(key, listSupplier.get()); + values.add(element); + response.put(key, values); + }; + + BiConsumer>, Map>> combiner = (res1, res2) -> { + res1.putAll(res2); + }; + + return source.stream() + .collect(mapSupplier, accumulator, combiner); + } + + public Map> collectorToMapByStringLength(List source, + Supplier>> mapSupplier, + Supplier> listSupplier) { + + Function keyMapper = String::length; + + Function> valueMapper = (element) -> { + List collection = listSupplier.get(); + collection.add(element); + return collection; + }; + + BinaryOperator> mergeFunction = (existing, replacement) -> { + existing.addAll(replacement); + return existing; + }; + + return source.stream() + .collect(Collectors.toMap(keyMapper, valueMapper, mergeFunction, mapSupplier)); + } + +} diff --git a/java-collections-conversions-2/src/test/java/com/baeldung/convertlisttomap/ListToMapUnitTest.java b/java-collections-conversions-2/src/test/java/com/baeldung/convertlisttomap/ListToMapUnitTest.java new file mode 100644 index 0000000000..2b43813822 --- /dev/null +++ b/java-collections-conversions-2/src/test/java/com/baeldung/convertlisttomap/ListToMapUnitTest.java @@ -0,0 +1,46 @@ +package com.baeldung.convertlisttomap; + +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; + +public class ListToMapUnitTest { + + private ListToMapConverter converter; + private List source; + + @Before + public void setUp() { + converter = new ListToMapConverter(); + source = Arrays.asList("List", "Map", "Set", "Tree"); + } + + @Test + public void givenAList_whenConvertWithJava8GroupBy_thenReturnMap() { + Map> convertedMap = converter.groupingByStringLength(source, HashMap::new, ArrayList::new); + assertTrue(convertedMap.get(3) + .contains("Map")); + } + + @Test + public void givenAList_whenConvertWithJava8Collect_thenReturnMap() { + Map> convertedMap = converter.streamCollectByStringLength(source, HashMap::new, ArrayList::new); + assertTrue(convertedMap.get(3) + .contains("Map")); + } + + @Test + public void givenAList_whenConvertWithCollectorToMap_thenReturnMap() { + Map> convertedMap = converter.collectorToMapByStringLength(source, HashMap::new, ArrayList::new); + assertTrue(convertedMap.get(3) + .contains("Map")); + } + +} diff --git a/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java b/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java index 4977c122e7..7b856309f1 100644 --- a/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java +++ b/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java @@ -32,7 +32,7 @@ public class JavaCollectionConversionUnitTest { @Test public final void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { final List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); - final Integer[] targetArray = sourceList.toArray(new Integer[sourceList.size()]); + final Integer[] targetArray = sourceList.toArray(new Integer[0]); } @Test @@ -72,7 +72,7 @@ public class JavaCollectionConversionUnitTest { @Test public final void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() { final Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); - final Integer[] targetArray = sourceSet.toArray(new Integer[sourceSet.size()]); + final Integer[] targetArray = sourceSet.toArray(new Integer[0]); } @Test @@ -94,16 +94,10 @@ public class JavaCollectionConversionUnitTest { CollectionUtils.addAll(targetSet, sourceArray); } - @Test - public final void givenUsingCommonsCollections_whenSetConvertedToArray_thenCorrect() { - final Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); - final Integer[] targetArray = sourceSet.toArray(new Integer[sourceSet.size()]); - } - @Test public final void givenUsingCommonsCollections_whenSetConvertedToArrayOfPrimitives_thenCorrect() { final Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); - final Integer[] targetArray = sourceSet.toArray(new Integer[sourceSet.size()]); + final Integer[] targetArray = sourceSet.toArray(new Integer[0]); final int[] primitiveTargetArray = ArrayUtils.toPrimitive(targetArray); } @@ -150,7 +144,7 @@ public class JavaCollectionConversionUnitTest { final Map sourceMap = createMap(); final Collection values = sourceMap.values(); - final String[] targetArray = values.toArray(new String[values.size()]); + final String[] targetArray = values.toArray(new String[0]); } @Test diff --git a/java-numbers-3/README.md b/java-numbers-3/README.md index 9c323a6c6a..2cec5d52cd 100644 --- a/java-numbers-3/README.md +++ b/java-numbers-3/README.md @@ -4,7 +4,7 @@ This module contains articles about numbers in Java. ### Relevant Articles: -- [Generating Random Numbers](https://www.baeldung.com/java-generating-random-numbers) +- [Generating Random Numbers in Java](https://www.baeldung.com/java-generating-random-numbers) - [Convert Double to Long in Java](https://www.baeldung.com/java-convert-double-long) - [Check for null Before Calling Parse in Double.parseDouble](https://www.baeldung.com/java-check-null-parse-double) - [Generating Random Numbers in a Range in Java](https://www.baeldung.com/java-generating-random-numbers-in-range) @@ -13,4 +13,5 @@ This module contains articles about numbers in Java. - [Guide to the Number Class in Java](https://www.baeldung.com/java-number-class) - [Print an Integer in Binary Format in Java](https://www.baeldung.com/java-print-integer-binary) - [Number Formatting in Java](https://www.baeldung.com/java-number-formatting) +- [Division by Zero in Java: Exception, Infinity, or Not a Number](https://www.baeldung.com/java-division-by-zero) - More articles: [[<-- prev]](/java-numbers-2) diff --git a/java-numbers-4/pom.xml b/java-numbers-4/pom.xml new file mode 100644 index 0000000000..e1722fb039 --- /dev/null +++ b/java-numbers-4/pom.xml @@ -0,0 +1,52 @@ + + 4.0.0 + java-numbers-4 + java-numbers-4 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../parent-java + + + + + io.vavr + vavr + ${vavr.version} + + + org.apache.commons + commons-lang3 + ${commons.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + java-numbers-4 + + + src/main/resources + true + + + + + + 0.10.2 + 3.9 + 3.6.1 + + + diff --git a/java-numbers-4/src/main/java/com/baeldung/probability/MaleHeightGenerator.java b/java-numbers-4/src/main/java/com/baeldung/probability/MaleHeightGenerator.java new file mode 100644 index 0000000000..ed3fb8a578 --- /dev/null +++ b/java-numbers-4/src/main/java/com/baeldung/probability/MaleHeightGenerator.java @@ -0,0 +1,17 @@ +package com.baeldung.probability; + +import org.apache.commons.math3.distribution.NormalDistribution; + +public class MaleHeightGenerator { + private static final double MEAN_HEIGHT = 176.02; + private static final double STANDARD_DEVIATION = 7.11; + private static NormalDistribution distribution = new NormalDistribution(MEAN_HEIGHT, STANDARD_DEVIATION); + + public static double generateNormalHeight() { + return distribution.sample(); + } + + public static double probabilityOfHeightBetween(double heightLowerExclusive, double heightUpperInclusive) { + return distribution.probability(heightLowerExclusive, heightUpperInclusive); + } +} diff --git a/java-numbers-4/src/main/java/com/baeldung/probability/RandomInvoker.java b/java-numbers-4/src/main/java/com/baeldung/probability/RandomInvoker.java new file mode 100644 index 0000000000..66f82022ea --- /dev/null +++ b/java-numbers-4/src/main/java/com/baeldung/probability/RandomInvoker.java @@ -0,0 +1,19 @@ +package com.baeldung.probability; + +import io.vavr.Lazy; + +import java.util.SplittableRandom; +import java.util.function.Supplier; + +public class RandomInvoker { + private final Lazy random = Lazy.of(SplittableRandom::new); + + public T withProbability(Supplier positiveCase, Supplier negativeCase, int probability) { + SplittableRandom random = this.random.get(); + if (random.nextInt(1, 101) <= probability) { + return positiveCase.get(); + } else { + return negativeCase.get(); + } + } +} diff --git a/java-numbers-4/src/test/java/com/baeldung/probability/RandomInvokerUnitTest.java b/java-numbers-4/src/test/java/com/baeldung/probability/RandomInvokerUnitTest.java new file mode 100644 index 0000000000..b08c086e30 --- /dev/null +++ b/java-numbers-4/src/test/java/com/baeldung/probability/RandomInvokerUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.probability; + +import org.assertj.core.data.Offset; +import org.junit.Test; + +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; + +public class RandomInvokerUnitTest { + @Test + public void givenProbability_whenInvoked_invokeWithProbability() { + RandomInvoker randomInvoker = new RandomInvoker(); + + int numberOfSamples = 1_000_000; + int probability = 10; + int howManyTimesInvoked = Stream.generate(() -> randomInvoker.withProbability(() -> 1, () -> 0, probability)) + .limit(numberOfSamples) + .mapToInt(e -> e).sum(); + int monteCarloProbability = (howManyTimesInvoked * 100) / numberOfSamples; + + assertThat(monteCarloProbability).isCloseTo(probability, Offset.offset(1)); + } +} diff --git a/javax-servlets/README.md b/javax-servlets/README.md index 7dbe1a02ad..54f92064a0 100644 --- a/javax-servlets/README.md +++ b/javax-servlets/README.md @@ -12,3 +12,4 @@ This module contains articles about Servlets. - [Jakarta EE Servlet Exception Handling](https://www.baeldung.com/servlet-exceptions) - [Context and Servlet Initialization Parameters](https://www.baeldung.com/context-servlet-initialization-param) - [The Difference between getRequestURI and getPathInfo in HttpServletRequest](https://www.baeldung.com/http-servlet-request-requesturi-pathinfo) +- Difference between request.getSession() and request.getSession(true) diff --git a/javax-servlets/src/main/java/com/baeldung/servlets/MainServlet.java b/javax-servlets/src/main/java/com/baeldung/servlets/MainServlet.java new file mode 100644 index 0000000000..d4417b0b4e --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/servlets/MainServlet.java @@ -0,0 +1,22 @@ +package com.baeldung.servlets; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/main") +public class MainServlet extends HttpServlet { + + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + response.sendRedirect("main.jsp"); + } + + + + +} diff --git a/javax-servlets/src/main/java/com/baeldung/servlets/UpdateServlet.java b/javax-servlets/src/main/java/com/baeldung/servlets/UpdateServlet.java new file mode 100644 index 0000000000..d0404d0cd4 --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/servlets/UpdateServlet.java @@ -0,0 +1,30 @@ +package com.baeldung.servlets; + + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +@WebServlet("/update") +public class UpdateServlet extends HttpServlet { + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + HttpSession session = request.getSession(false); + + session.setAttribute("userName", request.getParameter("userName")); + session.setAttribute("age", request.getParameter("age")); + + request.setAttribute("sessionData", session); + RequestDispatcher requestDispather = request.getRequestDispatcher("update.jsp"); + + requestDispather.forward(request, response); + } + +} diff --git a/javax-servlets/src/main/java/com/baeldung/servlets/UserLoginServlet.java b/javax-servlets/src/main/java/com/baeldung/servlets/UserLoginServlet.java new file mode 100644 index 0000000000..6becf04a0c --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/servlets/UserLoginServlet.java @@ -0,0 +1,30 @@ +package com.baeldung.servlets; + + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +@WebServlet("/u_login") +public class UserLoginServlet extends HttpServlet { + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + HttpSession session = request.getSession(); + + session.setAttribute("userId", request.getParameter("userId")); + + request.setAttribute("id", session.getAttribute("userId")); + + RequestDispatcher requestDispather = request.getRequestDispatcher("userlogin.jsp"); + + requestDispather.forward(request, response); + + } + +} diff --git a/javax-servlets/src/main/webapp/WEB-INF/jsp/main.jsp b/javax-servlets/src/main/webapp/WEB-INF/jsp/main.jsp new file mode 100644 index 0000000000..cbbb578770 --- /dev/null +++ b/javax-servlets/src/main/webapp/WEB-INF/jsp/main.jsp @@ -0,0 +1,15 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + +
+

Enter your User Id and Password

+ User ID:
+ Password:
+
+ + \ No newline at end of file diff --git a/javax-servlets/src/main/webapp/WEB-INF/jsp/update.jsp b/javax-servlets/src/main/webapp/WEB-INF/jsp/update.jsp new file mode 100644 index 0000000000..36ac2d277b --- /dev/null +++ b/javax-servlets/src/main/webapp/WEB-INF/jsp/update.jsp @@ -0,0 +1,17 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + Hi, User : ${sessionData.getAttribute("userId")} + +
Your User Data has been updated as below : +
User Name: ${sessionData.getAttribute("userName")} +
Age : ${sessionData.getAttribute("age")} + + + \ No newline at end of file diff --git a/javax-servlets/src/main/webapp/WEB-INF/jsp/userlogin.jsp b/javax-servlets/src/main/webapp/WEB-INF/jsp/userlogin.jsp new file mode 100644 index 0000000000..f181222f39 --- /dev/null +++ b/javax-servlets/src/main/webapp/WEB-INF/jsp/userlogin.jsp @@ -0,0 +1,18 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + +

Update your User Details:

+ +
+ User ID:
User Name: + Age:
+
+ + \ No newline at end of file diff --git a/jhipster-5/bookstore-monolith/pom.xml b/jhipster-5/bookstore-monolith/pom.xml index 4e4c82f327..c965fd962d 100644 --- a/jhipster-5/bookstore-monolith/pom.xml +++ b/jhipster-5/bookstore-monolith/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.baeldung.jhipster5 - bookstore + bookstore-monolith 0.0.1-SNAPSHOT war Bookstore @@ -1008,6 +1008,68 @@ + + default-first + + + + + com.github.eirslett + frontend-maven-plugin + + + + install node and npm + none + + + npm install + none + + + webpack build dev + none + + + webpack build test + none + + + + + + + + default-second + + + + + com.github.eirslett + frontend-maven-plugin + + + + install node and npm + none + + + npm install + none + + + webpack build dev + none + + + webpack build test + none + + + + + + diff --git a/jib/pom.xml b/jib/pom.xml index 1d7413cc18..15e7e44e7c 100644 --- a/jib/pom.xml +++ b/jib/pom.xml @@ -40,6 +40,6 @@ - 0.9.10 + 2.5.0 diff --git a/jmh/README.md b/jmh/README.md index 3a5370c9f2..41bf16d6bb 100644 --- a/jmh/README.md +++ b/jmh/README.md @@ -5,4 +5,4 @@ This module contains articles about the Java Microbenchmark Harness (JMH). ### Relevant articles: - [Microbenchmarking with Java](https://www.baeldung.com/java-microbenchmark-harness) - +- [A Guide to False Sharing and @Contended](https://www.baeldung.com/java-false-sharing-contended) diff --git a/jmh/pom.xml b/jmh/pom.xml index 735198036e..16a5bc54a4 100644 --- a/jmh/pom.xml +++ b/jmh/pom.xml @@ -26,6 +26,11 @@ jmh-generator-annprocess ${openjdk.jmh.version}
+ + org.openjdk.jol + jol-core + ${jol-core.version} +
@@ -42,12 +47,39 @@ + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + jar-with-dependencies + + + + com.baeldung.BenchmarkRunner + + + + + + make-assembly + package + + single + + + + 1.19 3.0.2 + 0.10 + 3.2.0 \ No newline at end of file diff --git a/jmh/src/main/java/com/baeldung/bitset/Plotter.java b/jmh/src/main/java/com/baeldung/bitset/Plotter.java new file mode 100644 index 0000000000..0d065ea185 --- /dev/null +++ b/jmh/src/main/java/com/baeldung/bitset/Plotter.java @@ -0,0 +1,38 @@ +package com.baeldung.bitset; + +import org.openjdk.jol.info.ClassLayout; +import org.openjdk.jol.info.GraphLayout; + +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.util.BitSet; + +public class Plotter { + + public static void main(String[] args) throws IOException { + Path path = Paths.get("footprint.csv"); + try (BufferedWriter stream = Files.newBufferedWriter(path, StandardOpenOption.CREATE)) { + stream.write("bits,bool,bitset\n"); + + for (int i = 0; i <= 10_000_000; i += 500) { + System.out.println("Number of bits => " + i); + + boolean[] ba = new boolean[i]; + BitSet bitSet = new BitSet(i); + + long baSize = ClassLayout.parseInstance(ba).instanceSize(); + long bitSetSize = GraphLayout.parseInstance(bitSet).totalSize(); + + stream.write((i + "," + baSize + "," + bitSetSize + "\n")); + + if (i % 10_000 == 0) { + stream.flush(); + } + } + } + } +} diff --git a/jmh/src/main/java/com/baeldung/bitset/Sizing.java b/jmh/src/main/java/com/baeldung/bitset/Sizing.java new file mode 100644 index 0000000000..58c9061c07 --- /dev/null +++ b/jmh/src/main/java/com/baeldung/bitset/Sizing.java @@ -0,0 +1,17 @@ +package com.baeldung.bitset; + +import org.openjdk.jol.info.ClassLayout; +import org.openjdk.jol.info.GraphLayout; + +import java.util.BitSet; + +public class Sizing { + + public static void main(String[] args) { + boolean[] ba = new boolean[10_000]; + System.out.println(ClassLayout.parseInstance(ba).toPrintable()); + + BitSet bitSet = new BitSet(10_000); + System.out.println(GraphLayout.parseInstance(bitSet).toPrintable()); + } +} diff --git a/jmh/src/main/java/com/baeldung/bitset/VectorOfBitsBenchmark.java b/jmh/src/main/java/com/baeldung/bitset/VectorOfBitsBenchmark.java new file mode 100644 index 0000000000..7bbf00f36c --- /dev/null +++ b/jmh/src/main/java/com/baeldung/bitset/VectorOfBitsBenchmark.java @@ -0,0 +1,77 @@ +package com.baeldung.bitset; + +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Level; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.Param; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; + +import java.util.BitSet; +import java.util.concurrent.ThreadLocalRandom; + +@State(Scope.Benchmark) +@BenchmarkMode(Mode.Throughput) +public class VectorOfBitsBenchmark { + + private boolean[] array; + private BitSet bitSet; + + @Param({"100", "1000", "5000", "50000", "100000", "1000000", "2000000", "3000000", "5000000", + "7000000", "10000000", "20000000", "30000000", "50000000", "70000000", "1000000000"}) + public int size; + + @Setup(Level.Trial) + public void setUp() { + array = new boolean[size]; + for (int i = 0; i < array.length; i++) { + array[i] = ThreadLocalRandom.current().nextBoolean(); + } + + bitSet = new BitSet(size); + for (int i = 0; i < size; i++) { + bitSet.set(i, ThreadLocalRandom.current().nextBoolean()); + } + } + + @Benchmark + public boolean getBoolArray() { + return array[ThreadLocalRandom.current().nextInt(size)]; + } + + @Benchmark + public boolean getBitSet() { + return bitSet.get(ThreadLocalRandom.current().nextInt(size)); + } + + @Benchmark + public void setBoolArray() { + int index = ThreadLocalRandom.current().nextInt(size); + array[index] = true; + } + + @Benchmark + public void setBitSet() { + int index = ThreadLocalRandom.current().nextInt(size); + bitSet.set(index); + } + + @Benchmark + public int cardinalityBoolArray() { + int sum = 0; + for (boolean b : array) { + if (b) { + sum++; + } + } + + return sum; + } + + @Benchmark + public int cardinalityBitSet() { + return bitSet.cardinality(); + } +} diff --git a/jmh/src/main/resources/bitset/cardinal.csv b/jmh/src/main/resources/bitset/cardinal.csv new file mode 100644 index 0000000000..1e6f0731f4 --- /dev/null +++ b/jmh/src/main/resources/bitset/cardinal.csv @@ -0,0 +1,449 @@ +"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: size" +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,393747573.686833,8176258.509541,"ops/s",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,0.001142,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,16.019285,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,3.525011,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,0.001011,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,0.000227,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,9.978252,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.000084,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,16.085984,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.000016,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,3.515332,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.000104,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.000187,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,51.807801,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,200028477.639536,1655942.004821,"ops/s",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,0.002157,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,30.037472,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,4.035148,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,0.002133,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,0.000533,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,14.964408,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.000209,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,30.189211,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.000035,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,4.026334,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.000222,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.000400,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,99.619362,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,63020698.220022,301117.329336,"ops/s",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,0.006739,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,92.968547,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,4.051628,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,0.005924,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,0.002165,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,29.892853,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.000582,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,93.493939,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.000109,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,4.051385,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.000724,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.001279,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,285.417873,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,7204008.548800,26777.006550,"ops/s",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,0.085737,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,796.749450,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,4.282982,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,0.055282,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,1.012529,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,110.884225,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.004487,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,801.165820,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.000784,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,4.226255,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.006024,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.010046,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,2006.941407,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,3629991.817907,11097.373770,"ops/s",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,0.243416,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,1577.873015,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,4.557042,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,0.106117,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,1.025199,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,205.866839,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.011796,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,1584.735453,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.002335,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,4.653284,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.012223,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.020736,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,3947.152509,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,363285.637971,1381.431204,"ops/s",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,1712.185003,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,15660.070795,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,9.441652,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,1.200677,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,1.744812,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,1963.525342,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.452116,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,15734.050011,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.023238,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,9.519313,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.190122,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.208191,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,38999.133661,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,180844.028528,610.040837,"ops/s",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,3664.111553,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,31271.600037,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,14.435729,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,2.610217,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,1.649819,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,3910.476252,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.217432,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,31408.622718,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.040256,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,14.601374,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.260903,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.422715,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,77788.657874,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,118548.730143,468.823226,"ops/s",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,5639.799222,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,47006.741115,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,19.832762,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,4.059959,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,2.278006,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,5874.367510,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.324499,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,47272.836745,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.064460,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,22.600079,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.467719,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.642886,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,116927.646081,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,70086.673236,563.669183,"ops/s",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,9560.498477,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,78198.576932,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,34.810483,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,6.905933,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,2.660745,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,9767.014432,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,0.616113,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,78630.286046,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.101142,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,31.958140,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,0.716475,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,0.975224,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,194453.814959,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,50185.268564,354.561055,"ops/s",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,13480.043453,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,109488.725728,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,45.881465,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,9.602892,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,2.750373,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,13686.896942,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,1.079668,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,110066.269505,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.186638,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,50.867881,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,1.087789,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,1.401113,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,272641.291312,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,34908.512595,116.418990,"ops/s",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,19358.228821,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,156380.208163,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,52.083219,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,13.328039,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,14.661694,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,19522.637780,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,2.203013,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,156928.984801,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,0.273531,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,67.026094,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,1.900268,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,1.929660,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,388765.349238,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,17317.558001,100.005388,"ops/s",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,38984.617172,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,312761.798113,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,110.924669,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,27.027104,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,11.114591,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,39043.188700,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,16.408157,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,314387.564881,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,1.315988,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,121.913794,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,7.243860,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,2.181325,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,778038.560011,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,11501.959917,57.124269,"ops/s",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,58960.217967,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,469304.081395,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,184.289676,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,48.075359,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,9.470284,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,58590.395636,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,110.391626,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,471624.463912,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,5.747181,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,162.875573,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,13.870816,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,1.683658,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,1168184.932237,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,6853.662641,34.907898,"ops/s",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,98396.707621,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,782412.601151,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,276.504336,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,62.269039,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,14.744583,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,97655.835705,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,463.063389,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,785788.480539,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,9.752381,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,309.916361,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,23.524244,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,3.349640,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,1946858.485637,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,4879.613096,31.364409,"ops/s",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,137967.751689,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,1096110.204019,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,460.349614,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,100.554744,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,21.779339,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,136829.273899,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,651.277926,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,1102431.584828,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,11.249848,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,520.978240,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,32.792037,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,3.967967,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,2727814.788476,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet","thrpt",4,40,224.865509,9.210752,"ops/s",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-load-misses","thrpt",4,2,1190415.055459,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-loads","thrpt",4,2,15632200.467402,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-dcache-stores","thrpt",4,2,19441.575768,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:L1-icache-load-misses","thrpt",4,2,2047.756107,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branch-misses","thrpt",4,2,485.442180,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:branches","thrpt",4,2,1965043.175621,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-load-misses","thrpt",4,2,31032.470870,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-loads","thrpt",4,2,15667116.799869,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-store-misses","thrpt",4,2,143.428283,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:dTLB-stores","thrpt",4,2,11595.673237,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-load-misses","thrpt",4,2,742.352246,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:iTLB-loads","thrpt",4,2,98.480752,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBitSet:instructions","thrpt",4,2,39048358.021105,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,37049279.373531,704963.020277,"ops/s",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,0.011099,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,112.064045,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,4.073352,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,0.009620,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,0.002608,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,29.947392,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,0.001015,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,112.623597,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,0.000228,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,4.075249,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,0.001286,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,0.002188,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,622.445960,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,4096591.017375,15272.062456,"ops/s",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,0.131963,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,1012.474032,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,4.586741,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,0.104217,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,1.022211,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,139.987103,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,0.008928,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,1017.535338,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,0.001594,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,4.600783,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,0.010615,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,0.018421,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,5536.843608,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,832334.798376,3074.911358,"ops/s",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,0.766809,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,5030.987321,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,7.002736,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,0.498173,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,1.086794,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,641.641634,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,0.047561,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,5051.582231,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,0.008993,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,6.752675,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,0.050431,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,0.092294,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,27529.642459,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,83377.631077,255.122714,"ops/s",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,539.461053,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,50020.851413,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,29.937221,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,5.092867,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,4.842983,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,6261.566122,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,0.422246,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,50255.455914,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,0.078430,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,24.798375,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,0.559565,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,0.902338,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,273680.241982,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,41408.544806,165.347056,"ops/s",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,1322.755020,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,99955.008469,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,55.552771,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,10.390631,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,5.861952,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,12500.640365,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,0.769535,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,100406.515812,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,0.150189,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,44.164416,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,1.117459,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,1.825801,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,546990.292774,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,4129.742795,17.898464,"ops/s",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,15349.951857,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,1002365.863265,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,499.940618,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,122.631357,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,28.242979,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,125323.009142,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,13.650726,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,1007023.362826,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,1.912985,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,505.608704,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,14.288697,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,17.956474,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,5484912.917616,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,2077.577519,7.337211,"ops/s",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,31292.588903,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,2001841.397596,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,966.586187,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,238.822058,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,46.510032,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,250019.595282,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,68.527514,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,2009528.999936,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,7.098600,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,950.622751,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,53.292000,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,24.529932,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,10953197.041140,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,1382.303027,4.169656,"ops/s",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,47056.390407,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,3000801.315529,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,1470.047881,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,357.378786,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,60.820713,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,374783.769835,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,252.896052,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,3015767.599869,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,21.872987,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,1524.876162,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,112.567929,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,23.688984,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,16425272.638241,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,829.757845,2.907395,"ops/s",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,79794.283301,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,4999110.374252,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,2878.569713,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,600.944033,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,117.854523,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,624380.185108,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,625.032361,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,5023239.665880,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,32.290537,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,1952.720560,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,194.797679,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,26.471072,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,27353169.238296,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,593.611980,2.520324,"ops/s",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,111485.949371,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,7025474.793043,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,3672.457662,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,817.906535,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,116.322549,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,877217.619856,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,957.823851,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,7057039.698064,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,50.812805,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,3850.388980,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,280.996635,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,55.292762,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,38432075.289421,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,414.148792,1.531335,"ops/s",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,158517.772914,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,10012879.292064,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,5067.772968,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,1159.247229,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,219.525384,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,1250534.640040,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,1355.116322,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,10051566.656711,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,68.965296,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,5208.287470,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,369.777199,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,56.291391,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,54776223.581884,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,207.806128,0.628873,"ops/s",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,304113.485355,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,20023501.895517,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,9779.441786,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,2487.972260,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,400.329711,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,2501297.068694,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,2937.078221,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,20089328.718289,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,131.879427,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,10912.262719,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,707.654814,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,108.177862,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,109579830.457931,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,138.119711,0.500755,"ops/s",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,443956.723054,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,30008750.271844,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,14759.175750,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,3431.902326,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,569.840892,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,3747872.534933,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,4806.051229,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,30144733.769549,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,201.619836,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,17338.732113,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,1098.261594,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,195.410627,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,164166517.089861,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,82.709149,0.295436,"ops/s",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,747996.211010,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,50109102.392841,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,37525.937305,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,6197.904618,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,1079.041011,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,6265857.125983,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,7401.558857,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,50190387.111098,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,343.424195,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,30593.259958,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,1746.881433,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,263.036555,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,274256325.159847,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,59.202337,0.381593,"ops/s",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,1049088.662627,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,70094037.559522,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,70850.762444,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,8257.515781,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,1934.286962,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,8780399.271839,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,10142.237142,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,70255089.174523,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,568.459880,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,60618.442280,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,2578.542787,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,369.873390,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,383542921.407972,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray","thrpt",4,40,4.164406,0.021372,"ops/s",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-load-misses","thrpt",4,2,14724055.231818,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-loads","thrpt",4,2,1002251097.850000,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-dcache-stores","thrpt",4,2,1304484.515909,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:L1-icache-load-misses","thrpt",4,2,94383.129545,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branch-misses","thrpt",4,2,29678.675000,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:branches","thrpt",4,2,126027016.040909,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-load-misses","thrpt",4,2,149098.588636,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-loads","thrpt",4,2,1005716183.827273,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-store-misses","thrpt",4,2,9554.579545,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:dTLB-stores","thrpt",4,2,1637043.229545,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-load-misses","thrpt",4,2,36110.963636,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:iTLB-loads","thrpt",4,2,5566.793182,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.cardinalityBoolArray:instructions","thrpt",4,2,5481003131.631819,NaN,"#/op",1000000000 diff --git a/jmh/src/main/resources/bitset/get.csv b/jmh/src/main/resources/bitset/get.csv new file mode 100644 index 0000000000..2d929d927d --- /dev/null +++ b/jmh/src/main/resources/bitset/get.csv @@ -0,0 +1,449 @@ +"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: size" +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,184790139.562014,2667066.521846,"ops/s",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.002467,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.050243,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.042285,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002206,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.000451,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.985709,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000194,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.132320,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000034,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.035930,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000246,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000417,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.781944,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,189890949.805559,659556.001166,"ops/s",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.002317,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.036584,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.044334,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002032,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.000437,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.964305,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000185,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.148063,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000034,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.029343,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000246,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000403,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.597453,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,189507179.833915,629754.953530,"ops/s",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.002466,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.010134,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.029958,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002275,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.000384,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.962285,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000216,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.086110,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000033,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.018705,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000208,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000400,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.611799,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,185398269.303855,1908706.853646,"ops/s",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.003713,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.039282,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.044589,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002108,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.000501,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.976543,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000183,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.144876,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000032,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.036796,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000226,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000391,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.713651,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,187470455.311201,2138324.325624,"ops/s",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.005740,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.045473,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.049532,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002233,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.000559,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.975216,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000182,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.153817,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000042,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.032749,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000279,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000413,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.694265,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,187899335.193431,1227338.646447,"ops/s",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.757697,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.019129,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.035645,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002595,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.000815,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.962763,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000243,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.079796,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000043,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.018714,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000220,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000400,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.618577,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,181042070.478268,1034313.105183,"ops/s",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.882631,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.055692,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.046466,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.002913,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.001525,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.993797,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000303,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.145567,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000040,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.036471,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000231,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000414,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.837563,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,157845998.770241,1327029.686173,"ops/s",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.923265,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.039213,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.037515,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.003060,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.002237,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.989144,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000377,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.101674,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000044,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.029822,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000275,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000463,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.821119,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,140194241.226829,586052.963759,"ops/s",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.958165,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.065759,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.052019,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.003590,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.002185,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.995694,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000446,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.147433,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000054,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.039960,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000352,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000494,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.850007,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,134363547.905898,817872.600380,"ops/s",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.973091,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.083157,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.060888,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.003270,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.003700,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,13.012286,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.000645,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.162932,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000064,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.039776,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000402,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000526,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.956471,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,129938742.625757,565110.729002,"ops/s",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,0.982322,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.053334,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.051753,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.003960,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.004344,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,12.996532,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.001074,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.146765,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000087,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.040650,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000515,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000530,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.866671,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,125187585.586497,523512.098380,"ops/s",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,1.004652,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.080247,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.054714,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.003770,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.004486,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,13.010171,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.010580,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.154110,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000215,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.041480,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.000953,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000317,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.947671,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,115627724.299332,638665.572272,"ops/s",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,1.227419,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.079678,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.058129,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.004521,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.009050,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,13.012617,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,0.347392,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.142634,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000659,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.040588,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.001420,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000171,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,90.988720,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,103507035.990670,372081.425396,"ops/s",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,1.490488,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.059971,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.061928,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.004491,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.023517,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,13.022696,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,1.014237,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.140833,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000542,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.047774,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.001546,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000198,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,91.179548,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,100061443.949078,900762.613103,"ops/s",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,1.636879,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.089365,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.066827,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.004394,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.023939,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,13.054928,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,1.300501,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.169242,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.000755,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.059205,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.001714,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000271,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,91.429385,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet","thrpt",4,40,30732326.196764,1902855.641551,"ops/s",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-load-misses","thrpt",4,2,2.010809,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-loads","thrpt",4,2,19.363151,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-dcache-stores","thrpt",4,2,6.239644,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:L1-icache-load-misses","thrpt",4,2,0.014491,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branch-misses","thrpt",4,2,0.079687,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:branches","thrpt",4,2,13.302302,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-load-misses","thrpt",4,2,2.698668,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-loads","thrpt",4,2,19.522360,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-store-misses","thrpt",4,2,0.001826,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:dTLB-stores","thrpt",4,2,6.235821,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-load-misses","thrpt",4,2,0.004974,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:iTLB-loads","thrpt",4,2,0.000684,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBitSet:instructions","thrpt",4,2,93.483709,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,227276865.931318,1065421.113528,"ops/s",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.001953,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.036393,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.041004,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.001677,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.000390,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.983478,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.000158,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.114167,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000029,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.030073,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000194,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000334,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.747475,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,227967057.968084,1094391.643063,"ops/s",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.002196,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.038155,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.046080,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.001821,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.000377,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.983017,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.000151,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.121232,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000027,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.026809,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000171,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000319,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.269538,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,227488094.016039,1165579.055001,"ops/s",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.002484,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.046268,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.048022,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.001649,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.000417,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.993480,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.000191,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.116395,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000037,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.030824,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000201,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000356,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.847281,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,220590635.826749,3222316.343407,"ops/s",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.386152,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.014363,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.030620,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.001837,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.000445,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.970352,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.000175,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.071899,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000033,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.015771,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000197,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000347,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.159399,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,221812217.619440,1882356.038621,"ops/s",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.694581,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.036224,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.045287,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.002024,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.000413,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.985217,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.000159,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.113544,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000035,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.028587,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000209,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000352,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.781018,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,155300972.624227,1052925.157790,"ops/s",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.974041,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.024109,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.040972,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.002724,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.000890,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.983857,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.000635,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.114472,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000067,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.029008,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000370,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000485,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.276632,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,150139628.673692,671406.901317,"ops/s",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,0.991759,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.029834,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.039387,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.002965,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.001613,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.986406,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.002364,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.083273,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000157,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.020146,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.000647,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000345,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.274963,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,146544479.291686,722153.242446,"ops/s",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,1.019540,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.022684,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.043253,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.003449,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.002115,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,10.981744,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.025108,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.105318,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000364,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.024680,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.001022,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000151,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.769956,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,131610185.610556,544416.522700,"ops/s",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,1.450890,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.061835,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.056745,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.003605,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.002344,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.003703,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,0.764601,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.121742,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000585,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.033532,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.001213,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000137,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.911556,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,125543684.587399,707062.210707,"ops/s",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,1.681832,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.067818,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.051900,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.003963,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.003560,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.013663,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,1.126490,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.114877,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000538,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.039862,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.001300,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000148,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.996294,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,120883159.006800,459519.176985,"ops/s",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,1.941920,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.066701,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.057961,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.004200,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.004289,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.012477,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,1.402314,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.140748,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000749,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.049852,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.001377,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000179,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,74.017988,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,108406186.294073,582406.851629,"ops/s",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,2.395980,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.064172,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.058329,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.004261,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.004518,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.010508,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,1.726519,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.136526,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.000984,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.045655,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.001481,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000179,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.482638,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,87529931.443741,1955927.694142,"ops/s",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,2.594962,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.073273,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.063886,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.005067,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.009322,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.027283,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,1.845592,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.149139,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.001220,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.059616,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.001915,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000267,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,74.146192,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,52236198.372609,491642.796386,"ops/s",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,2.846910,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.152230,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.113607,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.009109,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.024525,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.088285,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,2.268730,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.251743,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.001259,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.092143,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.003064,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000363,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,73.596518,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,44791183.851884,214906.900295,"ops/s",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,2.967552,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.120575,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.109277,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.009707,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.024510,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.064747,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,2.499734,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.227798,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.001357,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.088992,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.003500,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000441,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,74.451386,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray","thrpt",4,40,37389103.890299,90477.383580,"ops/s",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-load-misses","thrpt",4,2,2.804161,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-loads","thrpt",4,2,18.310702,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-dcache-stores","thrpt",4,2,7.181002,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:L1-icache-load-misses","thrpt",4,2,0.011265,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branch-misses","thrpt",4,2,0.078800,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:branches","thrpt",4,2,11.274916,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-load-misses","thrpt",4,2,3.060411,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-loads","thrpt",4,2,18.390751,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-store-misses","thrpt",4,2,0.001505,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:dTLB-stores","thrpt",4,2,7.194463,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-load-misses","thrpt",4,2,0.004221,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:iTLB-loads","thrpt",4,2,0.000530,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.getBoolArray:instructions","thrpt",4,2,75.278465,NaN,"#/op",1000000000 diff --git a/jmh/src/main/resources/bitset/set.csv b/jmh/src/main/resources/bitset/set.csv new file mode 100644 index 0000000000..18b73bf989 --- /dev/null +++ b/jmh/src/main/resources/bitset/set.csv @@ -0,0 +1,449 @@ +"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: size" +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,51896464.026542,75862.136758,"ops/s",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,0.455765,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.076844,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.058151,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.007209,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.001604,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,9.997170,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000671,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.155867,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000133,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.044563,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000883,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.001497,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,63.823169,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,70106741.257282,5675561.652157,"ops/s",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,0.701408,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,13.051907,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.038773,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.005106,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.001640,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,9.981827,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000487,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,13.108384,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000085,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.035609,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000635,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.001048,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.690961,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,95463073.139209,1113608.612106,"ops/s",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.081256,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,13.019534,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.030687,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003994,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.000999,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.961847,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000316,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,13.096411,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000053,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.025559,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000408,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000741,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,67.633459,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,118050031.787664,869821.142403,"ops/s",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.354826,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,11.035931,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.028466,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003085,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.000714,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.968244,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000300,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,11.094508,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000058,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.027209,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000403,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000643,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.685716,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,126298073.981831,369299.481879,"ops/s",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.310261,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,13.051825,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.033383,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003348,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.000801,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,9.997344,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000286,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,13.113142,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000045,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.022306,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000356,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000579,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,65.864528,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,130991668.121281,644042.215866,"ops/s",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.331196,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.047450,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.028621,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003152,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.001000,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.485817,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000319,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.101103,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000064,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.024312,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000369,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000587,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.301371,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,128165315.820896,496869.372046,"ops/s",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.377167,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,13.042081,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.031912,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003844,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.001726,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,9.984710,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000382,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,13.099182,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000066,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.020885,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000347,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000563,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,65.795765,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,125195342.161850,1957938.686648,"ops/s",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.384964,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.054831,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.031343,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003650,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.002185,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.499255,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000428,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.112498,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000084,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.027300,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000379,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000600,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.403520,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,133354250.565847,1255106.085613,"ops/s",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.320524,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.048234,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.028165,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003275,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.002304,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.488182,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000489,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.094041,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000097,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.023713,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000585,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000521,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.335488,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,137232624.452804,636350.199734,"ops/s",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.246943,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,13.025392,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.028421,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003476,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.003316,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,9.976549,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000551,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,13.085655,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000081,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.022321,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000476,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000522,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,65.766839,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,143989207.138248,756270.794340,"ops/s",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.182833,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.044035,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.027349,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003071,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.004236,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.491392,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.000717,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.088728,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.000137,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.026174,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000380,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000468,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.391401,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,151241501.714891,916836.288585,"ops/s",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.107189,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.041025,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.031621,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.002955,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.004243,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.497239,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.009641,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.098803,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.001624,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.024783,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.000804,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000269,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.415849,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,144263237.497241,732977.702789,"ops/s",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.295403,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.050585,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.033163,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003160,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.008815,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.508266,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.278706,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.108627,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.071757,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.030249,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.001102,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000163,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,66.538307,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,135443772.106893,604312.063062,"ops/s",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.597651,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,12.088824,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.049898,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003236,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.023795,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.565162,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,0.822377,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,12.127978,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.217013,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.047233,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.001227,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000186,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,67.051735,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,131423130.250911,685419.143744,"ops/s",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,1.830028,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,11.075647,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.048544,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.003294,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.023619,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,11.044497,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,1.021551,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,11.121959,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.318409,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.047471,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.001220,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000154,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,67.422027,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet","thrpt",4,40,50126275.321495,128366.907520,"ops/s",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-load-misses","thrpt",4,2,2.007914,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-loads","thrpt",4,2,13.283731,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-dcache-stores","thrpt",4,2,2.158816,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:L1-icache-load-misses","thrpt",4,2,0.009154,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branch-misses","thrpt",4,2,0.077561,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:branches","thrpt",4,2,10.255507,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-load-misses","thrpt",4,2,2.580432,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-loads","thrpt",4,2,13.332989,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-store-misses","thrpt",4,2,0.240555,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:dTLB-stores","thrpt",4,2,2.141680,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-load-misses","thrpt",4,2,0.003075,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:iTLB-loads","thrpt",4,2,0.000400,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBitSet:instructions","thrpt",4,2,68.183448,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,103190024.246958,1465075.410304,"ops/s",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.387288,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.061946,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.041483,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003577,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.001007,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.999897,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000288,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.121073,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.000058,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.034064,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000424,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000703,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.880071,NaN,"#/op",100 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,139443098.218536,1499104.709607,"ops/s",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.646658,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.016290,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.026692,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.002577,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.000566,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.966181,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000281,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.090556,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.000053,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.025779,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000324,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000544,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.677854,NaN,"#/op",1000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,141884743.566510,786570.828615,"ops/s",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.721487,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.046555,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.030607,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.002780,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.000635,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.999213,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000238,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.100109,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.000048,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.027592,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000322,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000530,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.883150,NaN,"#/op",5000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,141434121.940795,678907.202147,"ops/s",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.737588,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.009752,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.025647,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.002709,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.000564,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.966167,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000248,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.084263,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.000061,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.022513,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000310,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000559,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.676130,NaN,"#/op",50000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,141443758.907874,627442.604356,"ops/s",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.778842,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.031381,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.028014,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003220,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.000652,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.979226,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000287,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.089836,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.000071,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.023236,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000286,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000507,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.734083,NaN,"#/op",100000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,147240354.620049,715098.421473,"ops/s",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.974563,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.031177,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.024039,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003099,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.000948,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.989072,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000372,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.069719,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.000330,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.020618,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000355,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000477,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.839884,NaN,"#/op",1000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,153622403.885271,1327782.331450,"ops/s",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,0.991925,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.032598,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.024720,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003245,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.001456,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.991914,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.000825,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.079811,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.001852,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.024947,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000643,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000377,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.870424,NaN,"#/op",2000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,156527596.524201,795077.911203,"ops/s",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,1.014728,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.027806,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.024255,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003058,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.001984,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.990123,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.002815,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.076875,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.018651,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.022515,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.000962,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000127,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.871439,NaN,"#/op",3000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,158079426.644001,913191.923219,"ops/s",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,1.472277,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.052808,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.029994,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003121,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.002145,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.011432,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.004486,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.093163,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,0.766815,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.025713,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.001161,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000105,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,53.016947,NaN,"#/op",5000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,157390156.667728,672584.777681,"ops/s",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,1.695306,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.053664,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.031368,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003326,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.003155,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.010168,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.005645,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.095965,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,1.128123,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.028504,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.001011,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000110,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,53.003675,NaN,"#/op",7000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,157798980.940213,764697.250786,"ops/s",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,1.952853,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.022777,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.023807,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003257,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.004008,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,7.990682,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.004266,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.059754,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,1.397186,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.019997,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.001003,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000129,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.896245,NaN,"#/op",10000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,150330975.246741,1605620.715961,"ops/s",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,2.378773,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.036047,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.030046,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003117,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.004204,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.001242,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.005145,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.078731,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,1.708955,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.023010,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.001044,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000128,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,52.933174,NaN,"#/op",20000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,114316055.929498,3553753.935720,"ops/s",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,2.573253,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.049313,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.038018,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.003989,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.008927,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.014444,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.008533,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.094540,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,1.824349,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.033037,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.001348,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000178,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,53.081475,NaN,"#/op",30000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,62800524.051547,1844174.328399,"ops/s",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,2.806845,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.118333,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.069840,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.007308,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.024665,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.083796,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.010630,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.175443,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,2.245008,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.067306,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.002569,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000342,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,53.626962,NaN,"#/op",50000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,51085547.708493,526048.863875,"ops/s",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,2.914760,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.140406,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.094680,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.010137,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.024495,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.083728,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.010755,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.191453,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,2.472813,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.075312,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.002962,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000380,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,53.631291,NaN,"#/op",70000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray","thrpt",4,40,35331072.282690,115127.559672,"ops/s",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-load-misses","thrpt",4,2,2.877579,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-loads","thrpt",4,2,10.331614,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-dcache-stores","thrpt",4,2,2.181433,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:L1-icache-load-misses","thrpt",4,2,0.013025,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branch-misses","thrpt",4,2,0.078282,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:branches","thrpt",4,2,8.293426,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-load-misses","thrpt",4,2,0.014965,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-loads","thrpt",4,2,10.351742,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-store-misses","thrpt",4,2,3.067687,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:dTLB-stores","thrpt",4,2,2.142323,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-load-misses","thrpt",4,2,0.004301,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:iTLB-loads","thrpt",4,2,0.000614,NaN,"#/op",1000000000 +"com.baeldung.bitset.VectorOfBitsBenchmark.setBoolArray:instructions","thrpt",4,2,55.399010,NaN,"#/op",1000000000 diff --git a/json-2/pom.xml b/json-2/pom.xml index d674d6f86d..f0215a375f 100644 --- a/json-2/pom.xml +++ b/json-2/pom.xml @@ -49,6 +49,66 @@ commons-lang3 ${commons-lang3.version}
+ + + com.fasterxml.jackson.core + jackson-annotations + 2.11.0 + + + com.fasterxml.jackson.core + jackson-databind + 2.11.0 + + + com.io-informatics.oss + jackson-jsonld + 0.1.1 + + + jackson-databind + com.fasterxml.jackson.core + + + jackson-annotations + com.fasterxml.jackson.core + + + jackson-core + com.fasterxml.jackson.core + + + jsonld-java + com.github.jsonld-java + + + + + de.escalon.hypermedia + hydra-jsonld + 0.4.2 + + + jackson-databind + com.fasterxml.jackson.core + + + + + com.github.jsonld-java + jsonld-java + 0.13.0 + + + jackson-core + com.fasterxml.jackson.core + + + jackson-databind + com.fasterxml.jackson.core + + + 0.9.23 diff --git a/json-2/src/test/java/com/baeldung/jsonld/deserialization/jsonldjava/jackson/JacksonDeserializationUnitTest.java b/json-2/src/test/java/com/baeldung/jsonld/deserialization/jsonldjava/jackson/JacksonDeserializationUnitTest.java new file mode 100644 index 0000000000..24968f3847 --- /dev/null +++ b/json-2/src/test/java/com/baeldung/jsonld/deserialization/jsonldjava/jackson/JacksonDeserializationUnitTest.java @@ -0,0 +1,51 @@ +package com.baeldung.jsonld.deserialization.jsonldjava.jackson; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.util.HashMap; + +import org.junit.jupiter.api.Test; + +import com.baeldung.jsonld.deserialization.jsonldjava.jackson.Person.Link; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.jsonldjava.core.JsonLdOptions; +import com.github.jsonldjava.core.JsonLdProcessor; +import com.github.jsonldjava.utils.JsonUtils; + +public class JacksonDeserializationUnitTest { + + @Test + void givenAJsonLdObject_whenCompactIsUsedWithEmptyContext_thenItCanBeDeserializedWithJackson() throws IOException { + String inputJsonLd = "{" + + "\"@context\":{" + + "\"@vocab\":\"http://schema.org/\"," + + "\"knows\":{\"@type\":\"@id\"}" + + "}," + + "\"@type\":\"Person\"," + + "\"@id\":\"http://example.com/person/1234\"," + + "\"name\":\"Example Name\"," + + "\"knows\":\"http://example.com/person/2345\"" + + "}"; + + Object jsonObject = JsonUtils.fromString(inputJsonLd); + Object compact = JsonLdProcessor.compact(jsonObject, new HashMap<>(), new JsonLdOptions()); + String compactContent = JsonUtils.toString(compact); + + assertEquals("{" + + "\"@id\":\"http://example.com/person/1234\"," + + "\"@type\":\"http://schema.org/Person\"," + + "\"http://schema.org/knows\":{\"@id\":\"http://example.com/person/2345\"}," + + "\"http://schema.org/name\":\"Example Name\"" + + "}", compactContent); + + ObjectMapper objectMapper = new ObjectMapper(); + Person person = objectMapper.readValue(compactContent, Person.class); + + Person expectedPerson = new Person("http://example.com/person/1234", "Example Name", new Link("http://example.com/person/2345")); + + assertEquals(expectedPerson.getId(), person.getId()); + assertEquals(expectedPerson.getName(), person.getName()); + assertEquals(expectedPerson.getKnows().getId(), person.getKnows().getId()); + } +} diff --git a/json-2/src/test/java/com/baeldung/jsonld/deserialization/jsonldjava/jackson/Person.java b/json-2/src/test/java/com/baeldung/jsonld/deserialization/jsonldjava/jackson/Person.java new file mode 100644 index 0000000000..fefa676817 --- /dev/null +++ b/json-2/src/test/java/com/baeldung/jsonld/deserialization/jsonldjava/jackson/Person.java @@ -0,0 +1,67 @@ +package com.baeldung.jsonld.deserialization.jsonldjava.jackson; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class Person { + @JsonProperty("@id") + private String id; + @JsonProperty("http://schema.org/name") + private String name; + @JsonProperty("http://schema.org/knows") + private Link knows; + + public Person() { + } + + public Person(String id, String name, Link knows) { + this.id = id; + this.name = name; + this.knows = knows; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Link getKnows() { + return knows; + } + + public void setKnows(Link knows) { + this.knows = knows; + } + + public static class Link { + @JsonProperty("@id") + private String id; + + public Link() { + } + + public Link(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + } +} diff --git a/json-2/src/test/java/com/baeldung/jsonld/serialization/hydrajsonld/HydraJsonldSerializationUnitTest.java b/json-2/src/test/java/com/baeldung/jsonld/serialization/hydrajsonld/HydraJsonldSerializationUnitTest.java new file mode 100644 index 0000000000..33395cc438 --- /dev/null +++ b/json-2/src/test/java/com/baeldung/jsonld/serialization/hydrajsonld/HydraJsonldSerializationUnitTest.java @@ -0,0 +1,63 @@ +package com.baeldung.jsonld.serialization.hydrajsonld; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.BeanDescription; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationConfig; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; +import com.fasterxml.jackson.databind.ser.std.BeanSerializerBase; + +import de.escalon.hypermedia.hydra.serialize.JacksonHydraSerializer; + +public class HydraJsonldSerializationUnitTest { + @Test + void givenAHydraJsonldAnnotatedObject_whenJacksonHydraSerializerIsUsed_thenAJsonLdDocumentIsGenerated() throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(getJacksonHydraSerializerModule()); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + Person person = new Person("http://example.com/person/1234", "Example Name"); + + String personJsonLd = objectMapper.writeValueAsString(person); + + assertEquals("{" + + "\"@context\":{" + + "\"@vocab\":\"http://example.com/vocab/\"," + + "\"name\":\"fullName\"" + + "}," + + "\"@type\":\"person\"," + + "\"name\":\"Example Name\"," + + "\"@id\":\"http://example.com/person/1234\"" + + "}", personJsonLd); + } + + static SimpleModule getJacksonHydraSerializerModule() { + return new SimpleModule() { + + @Override + public void setupModule(SetupContext context) { + super.setupModule(context); + + context.addBeanSerializerModifier(new BeanSerializerModifier() { + + @Override + public JsonSerializer modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer serializer) { + + if (serializer instanceof BeanSerializerBase) { + return new JacksonHydraSerializer((BeanSerializerBase) serializer); + } else { + return serializer; + } + } + }); + } + }; + } +} diff --git a/json-2/src/test/java/com/baeldung/jsonld/serialization/hydrajsonld/Person.java b/json-2/src/test/java/com/baeldung/jsonld/serialization/hydrajsonld/Person.java new file mode 100644 index 0000000000..3d8573c965 --- /dev/null +++ b/json-2/src/test/java/com/baeldung/jsonld/serialization/hydrajsonld/Person.java @@ -0,0 +1,28 @@ +package com.baeldung.jsonld.serialization.hydrajsonld; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import de.escalon.hypermedia.hydra.mapping.Expose; +import de.escalon.hypermedia.hydra.mapping.Vocab; + +@Vocab("http://example.com/vocab/") +@Expose("person") +public class Person { + private String id; + private String name; + + public Person(String id, String name) { + this.id = id; + this.name = name; + } + + @JsonProperty("@id") + public String getId() { + return id; + } + + @Expose("fullName") + public String getName() { + return name; + } +} diff --git a/json-2/src/test/java/com/baeldung/jsonld/serialization/jacksonjsonld/JacksonJsonLdSerializationUnitTest.java b/json-2/src/test/java/com/baeldung/jsonld/serialization/jacksonjsonld/JacksonJsonLdSerializationUnitTest.java new file mode 100644 index 0000000000..9679426acb --- /dev/null +++ b/json-2/src/test/java/com/baeldung/jsonld/serialization/jacksonjsonld/JacksonJsonLdSerializationUnitTest.java @@ -0,0 +1,33 @@ +package com.baeldung.jsonld.serialization.jacksonjsonld; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import ioinformarics.oss.jackson.module.jsonld.JsonldModule; + +public class JacksonJsonLdSerializationUnitTest { + @Test + void givenAJacksonJsonldAnnotatedObject_whenJsonldModuleIsUsed_thenAJsonLdDocumentIsGenerated() throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JsonldModule()); + + Person person = new Person("http://example.com/person/1234", "Example Name"); + String personJsonLd = objectMapper.writeValueAsString(person); + + assertEquals("{" + + "\"@type\":\"s:Person\"," + + "\"@context\":{" + + "\"s\":\"http://schema.org/\"," + + "\"name\":\"s:name\"," + + "\"knows\":{\"@id\":\"s:knows\",\"@type\":\"@id\"}" + + "}," + + "\"name\":\"Example Name\"," + + "\"@id\":\"http://example.com/person/1234\"," + + "\"knows\":\"http://example.com/person/2345\"" + + "}", personJsonLd); + } +} diff --git a/json-2/src/test/java/com/baeldung/jsonld/serialization/jacksonjsonld/Person.java b/json-2/src/test/java/com/baeldung/jsonld/serialization/jacksonjsonld/Person.java new file mode 100644 index 0000000000..b63f49840c --- /dev/null +++ b/json-2/src/test/java/com/baeldung/jsonld/serialization/jacksonjsonld/Person.java @@ -0,0 +1,32 @@ +package com.baeldung.jsonld.serialization.jacksonjsonld; + +import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldId; +import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldLink; +import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldNamespace; +import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldProperty; +import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldResource; +import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldType; + +@JsonldResource +@JsonldNamespace(name = "s", uri = "http://schema.org/") +@JsonldType("s:Person") +@JsonldLink(rel = "s:knows", name = "knows", href = "http://example.com/person/2345") +public class Person { + @JsonldId + private String id; + @JsonldProperty("s:name") + private String name; + + public Person(String id, String name) { + this.id = id; + this.name = name; + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } +} diff --git a/jsoup/src/test/java/com/baeldung/jsoup/PreservingLineBreaksUnitTest.java b/jsoup/src/test/java/com/baeldung/jsoup/PreservingLineBreaksUnitTest.java new file mode 100644 index 0000000000..0958fa96e2 --- /dev/null +++ b/jsoup/src/test/java/com/baeldung/jsoup/PreservingLineBreaksUnitTest.java @@ -0,0 +1,39 @@ +package com.baeldung.jsoup; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.safety.Whitelist; +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +public class PreservingLineBreaksUnitTest { + + @Test + public void whenBackSlashNNewLineCharacter_thenPreserveLineBreak() { + String strHTML = "Hello\nworld"; + Document.OutputSettings outputSettings = new Document.OutputSettings(); + outputSettings.prettyPrint(false); + String strWithNewLines = Jsoup.clean(strHTML, "", Whitelist.none(), outputSettings); + assertEquals("Hello\nworld", strWithNewLines); + } + + @Test + public void whenHTMLNewLineCharacters_thenPreserveLineBreak() { + String strHTML = "" + + "Hello" + + "
" + + "World" + + "

Paragraph

" + + ""; + Document jsoupDoc = Jsoup.parse(strHTML); + Document.OutputSettings outputSettings = new Document.OutputSettings(); + outputSettings.prettyPrint(false); + jsoupDoc.outputSettings(outputSettings); + jsoupDoc.select("br").before("\\n"); + jsoupDoc.select("p").before("\\n"); + String str = jsoupDoc.html().replaceAll("\\\\n", "\n"); + String strWithNewLines = + Jsoup.clean(str, "", Whitelist.none(), outputSettings); + assertEquals("Hello\nWorld\nParagraph", strWithNewLines); + } +} diff --git a/kotlin-libraries-2/src/test/kotlin/com/baeldung/kotlin/jackson/JacksonUnitTest.kt b/kotlin-libraries-2/src/test/kotlin/com/baeldung/kotlin/jackson/JacksonUnitTest.kt index 84171d9019..0c72edc2fd 100644 --- a/kotlin-libraries-2/src/test/kotlin/com/baeldung/kotlin/jackson/JacksonUnitTest.kt +++ b/kotlin-libraries-2/src/test/kotlin/com/baeldung/kotlin/jackson/JacksonUnitTest.kt @@ -59,7 +59,11 @@ class JacksonUnitTest { val aMap: Map = mapper.readValue(json) assertEquals(aMap[1], "one") - assertEquals(aMap[2], "two") + assertEquals(aMap[2], "two") + + val sameMap = mapper.readValue>(json) + assertEquals(sameMap[1], "one") + assertEquals(sameMap[2], "two") } @Test @@ -81,7 +85,11 @@ class JacksonUnitTest { val movie1 = Movie("Endgame", "Marvel", 9.2f) val movie2 = Movie("Shazam", "Warner Bros", 7.6f) assertTrue(movieList.contains(movie1)) - assertTrue(movieList.contains(movie2)) + assertTrue(movieList.contains(movie2)) + + val sameList = mapper.readValue>(json) + assertTrue(sameList.contains(movie1)) + assertTrue(sameList.contains(movie2)) } @Test diff --git a/libraries-5/pom.xml b/libraries-5/pom.xml index 63296d4a89..63347dd60d 100644 --- a/libraries-5/pom.xml +++ b/libraries-5/pom.xml @@ -32,12 +32,6 @@ pact-jvm-consumer-junit_2.11 ${pact.version} test - - - org.codehaus.groovy - groovy-all - - @@ -53,10 +47,10 @@ test - - one.util - streamex - ${streamex.version} + + one.util + streamex + ${streamex.version} net.bytebuddy diff --git a/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java b/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java index d8bc46985d..e4ac8a3a95 100644 --- a/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java +++ b/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java @@ -5,8 +5,6 @@ import au.com.dius.pact.consumer.PactProviderRuleMk2; import au.com.dius.pact.consumer.PactVerification; import au.com.dius.pact.consumer.dsl.PactDslWithProvider; import au.com.dius.pact.model.RequestResponsePact; - -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.springframework.http.HttpEntity; @@ -28,15 +26,30 @@ public class PactConsumerDrivenContractUnitTest { @Pact(consumer = "test_consumer") public RequestResponsePact createPact(PactDslWithProvider builder) { - Map headers = new HashMap(); + Map headers = new HashMap<>(); headers.put("Content-Type", "application/json"); - return builder.given("test GET").uponReceiving("GET REQUEST").path("/pact").method("GET").willRespondWith().status(200).headers(headers).body("{\"condition\": true, \"name\": \"tom\"}").given("test POST").uponReceiving("POST REQUEST").method("POST") - .headers(headers).body("{\"name\": \"Michael\"}").path("/pact").willRespondWith().status(201).toPact(); + return builder + .given("test GET") + .uponReceiving("GET REQUEST") + .path("/pact") + .method("GET") + .willRespondWith() + .status(200) + .headers(headers) + .body("{\"condition\": true, \"name\": \"tom\"}") + .given("test POST") + .uponReceiving("POST REQUEST") + .method("POST") + .headers(headers) + .body("{\"name\": \"Michael\"}") + .path("/pact") + .willRespondWith() + .status(201) + .toPact(); } @Test - @Ignore @PactVerification() public void givenGet_whenSendRequest_shouldReturn200WithProperHeaderAndBody() { // when diff --git a/libraries-security/README.md b/libraries-security/README.md index 580ebdeab0..5ec85a15e9 100644 --- a/libraries-security/README.md +++ b/libraries-security/README.md @@ -10,3 +10,4 @@ This module contains articles about security libraries. - [Introduction to BouncyCastle with Java](https://www.baeldung.com/java-bouncy-castle) - [Intro to Jasypt](https://www.baeldung.com/jasypt) - [Digital Signatures in Java](https://www.baeldung.com/java-digital-signature) +- [How to Read PEM File to Get Public and Private Keys](https://www.baeldung.com/java-read-pem-file-keys) diff --git a/maven-modules/maven-plugins/maven-enforcer/README.md b/maven-modules/maven-plugins/maven-enforcer/README.md deleted file mode 100644 index 44d43050e7..0000000000 --- a/maven-modules/maven-plugins/maven-enforcer/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant Articles: - -- [Maven Enforcer Plugin](https://www.baeldung.com/maven-enforcer-plugin) diff --git a/maven-modules/maven-profiles/pom.xml b/maven-modules/maven-profiles/pom.xml index 4937bc7c5d..f3aeb9d549 100644 --- a/maven-modules/maven-profiles/pom.xml +++ b/maven-modules/maven-profiles/pom.xml @@ -66,27 +66,29 @@ + + show-active-profiles + + + + org.apache.maven.plugins + maven-help-plugin + ${help.plugin.version} + + + show-profiles + compile + + active-profiles + + + + + + + - - - - org.apache.maven.plugins - maven-help-plugin - ${help.plugin.version} - - - show-profiles - compile - - active-profiles - - - - - - - 3.2.0 diff --git a/maven-modules/maven-properties/README.md b/maven-modules/maven-properties/README.md index 65d976189c..52ac8506b3 100644 --- a/maven-modules/maven-properties/README.md +++ b/maven-modules/maven-properties/README.md @@ -5,4 +5,4 @@ have their own dedicated modules. ### Relevant Articles -- [Accessing Maven Properties in Java] \ No newline at end of file +- [Accessing Maven Properties in Java](https://www.baeldung.com/java-accessing-maven-properties) diff --git a/maven-modules/optional-dependencies/README.md b/maven-modules/optional-dependencies/README.md new file mode 100644 index 0000000000..6b4d3e7647 --- /dev/null +++ b/maven-modules/optional-dependencies/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: + +- Optional Dependency in Maven \ No newline at end of file diff --git a/maven-modules/optional-dependencies/main-project/pom.xml b/maven-modules/optional-dependencies/main-project/pom.xml new file mode 100644 index 0000000000..6a42683779 --- /dev/null +++ b/maven-modules/optional-dependencies/main-project/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + com.baeldung + main-project + 0.0.1-SNAPSHOT + pom + + + + com.baeldung + project-with-optionals + 0.0.1-SNAPSHOT + + + \ No newline at end of file diff --git a/maven-modules/optional-dependencies/optional-project/pom.xml b/maven-modules/optional-dependencies/optional-project/pom.xml new file mode 100644 index 0000000000..9ad4376c8d --- /dev/null +++ b/maven-modules/optional-dependencies/optional-project/pom.xml @@ -0,0 +1,10 @@ + + + 4.0.0 + com.baeldung + optional-project + 0.0.1-SNAPSHOT + pom + \ No newline at end of file diff --git a/maven-modules/optional-dependencies/pom.xml b/maven-modules/optional-dependencies/pom.xml new file mode 100644 index 0000000000..12d028b2d7 --- /dev/null +++ b/maven-modules/optional-dependencies/pom.xml @@ -0,0 +1,19 @@ + + + + maven-modules + com.baeldung + 0.0.1-SNAPSHOT + + 4.0.0 + + optional-dependencies + pom + + optional-project + project-with-optionals + main-project + + \ No newline at end of file diff --git a/maven-modules/optional-dependencies/project-with-optionals/pom.xml b/maven-modules/optional-dependencies/project-with-optionals/pom.xml new file mode 100644 index 0000000000..6a14f3260d --- /dev/null +++ b/maven-modules/optional-dependencies/project-with-optionals/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + com.baeldung + project-with-optionals + 0.0.1-SNAPSHOT + pom + + + + com.baeldung + optional-project + 0.0.1-SNAPSHOT + true + + + \ No newline at end of file diff --git a/maven-modules/pom.xml b/maven-modules/pom.xml index 528f44bddc..86a7d5756c 100644 --- a/maven-modules/pom.xml +++ b/maven-modules/pom.xml @@ -26,6 +26,7 @@ maven-properties versions-maven-plugin version-collision + optional-dependencies diff --git a/maven-modules/version-collision/README.md b/maven-modules/version-collision/README.md new file mode 100644 index 0000000000..a71cfdb0b4 --- /dev/null +++ b/maven-modules/version-collision/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: + +- [How to Resolve a Version Collision of Artifacts in Maven](https://www.baeldung.com/maven-version-collision) diff --git a/maven-modules/versions-maven-plugin/original/pom.xml b/maven-modules/versions-maven-plugin/original/pom.xml index f81596661e..f705dae5c5 100644 --- a/maven-modules/versions-maven-plugin/original/pom.xml +++ b/maven-modules/versions-maven-plugin/original/pom.xml @@ -58,9 +58,9 @@ - apache.snapshots - Apache Development Snapshot Repository - https://repository.apache.org/content/repositories/snapshots/ + apache.releases + Apache Development Release Repository + https://repository.apache.org/content/repositories/releases/ false diff --git a/maven-modules/versions-maven-plugin/pom.xml b/maven-modules/versions-maven-plugin/pom.xml index 9793f55b28..3a9134ff40 100644 --- a/maven-modules/versions-maven-plugin/pom.xml +++ b/maven-modules/versions-maven-plugin/pom.xml @@ -57,9 +57,9 @@ - apache.snapshots - Apache Development Snapshot Repository - https://repository.apache.org/content/repositories/snapshots/ + apache.releases + Apache Development Release Repository + https://repository.apache.org/content/repositories/releases/ false diff --git a/parent-spring-5/pom.xml b/parent-spring-5/pom.xml index 949e40b021..5893701c68 100644 --- a/parent-spring-5/pom.xml +++ b/parent-spring-5/pom.xml @@ -31,7 +31,7 @@ - 5.2.5.RELEASE + 5.2.8.RELEASE 5.2.3.RELEASE 1.5.10.RELEASE diff --git a/patterns/hexagonal-architecture/pom.xml b/patterns/hexagonal-architecture/pom.xml index 9317a25e56..62f55c2efa 100644 --- a/patterns/hexagonal-architecture/pom.xml +++ b/patterns/hexagonal-architecture/pom.xml @@ -2,18 +2,19 @@ 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - com.baeldung hexagonal-architecture 1.0 hexagonal-architecture Project for hexagonal architecture in java + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../../parent-boot-2 + + 1.8 diff --git a/patterns/hexagonal-architecture/src/test/java/com/baeldung/pattern/hexagonal/domain/services/EmployeeServiceImplTest.java b/patterns/hexagonal-architecture/src/test/java/com/baeldung/pattern/hexagonal/domain/services/EmployeeServiceImplUnitTest.java similarity index 97% rename from patterns/hexagonal-architecture/src/test/java/com/baeldung/pattern/hexagonal/domain/services/EmployeeServiceImplTest.java rename to patterns/hexagonal-architecture/src/test/java/com/baeldung/pattern/hexagonal/domain/services/EmployeeServiceImplUnitTest.java index cadb3b094b..542e45d6f4 100644 --- a/patterns/hexagonal-architecture/src/test/java/com/baeldung/pattern/hexagonal/domain/services/EmployeeServiceImplTest.java +++ b/patterns/hexagonal-architecture/src/test/java/com/baeldung/pattern/hexagonal/domain/services/EmployeeServiceImplUnitTest.java @@ -11,7 +11,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -class EmployeeServiceImplTest { +class EmployeeServiceImplUnitTest { private EmployeeRepository employeeRepository; private EmployeeService testService; diff --git a/patterns/pom.xml b/patterns/pom.xml index e1753aba56..a179d75ffe 100644 --- a/patterns/pom.xml +++ b/patterns/pom.xml @@ -21,6 +21,7 @@ dip cqrs-es front-controller + hexagonal-architecture intercepting-filter solid diff --git a/patterns/solid/README.md b/patterns/solid/README.md index f5146732a0..41e986f544 100644 --- a/patterns/solid/README.md +++ b/patterns/solid/README.md @@ -3,3 +3,4 @@ - [A Solid Guide to Solid Principles](https://www.baeldung.com/solid-principles) - [Single Responsibility Principle in Java](https://www.baeldung.com/java-single-responsibility-principle) - [Open/Closed Principle in Java](https://www.baeldung.com/java-open-closed-principle) +- [Interface Segregation Principle in Java](https://www.baeldung.com/java-interface-segregation) diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/Account.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/Account.java new file mode 100644 index 0000000000..3a8260924b --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/Account.java @@ -0,0 +1,17 @@ +package com.baeldung.l.advanced; + +import java.math.BigDecimal; + +public abstract class Account { + protected abstract void deposit(BigDecimal amount); + + /** + * Reduces the account balance by the specified amount + * provided given amount > 0 and account meets minimum available + * balance criteria. + * + * @param amount + */ + protected abstract void withdraw(BigDecimal amount); + +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/BankingAppWithdrawalService.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/BankingAppWithdrawalService.java new file mode 100644 index 0000000000..6689b1dc8c --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/BankingAppWithdrawalService.java @@ -0,0 +1,15 @@ +package com.baeldung.l.advanced; + +import java.math.BigDecimal; + +public class BankingAppWithdrawalService { + private Account account; + + public BankingAppWithdrawalService(Account account) { + this.account = account; + } + + public void withdraw(BigDecimal amount) { + account.withdraw(amount); + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/Bar.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/Bar.java new file mode 100644 index 0000000000..8f421cebaa --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/Bar.java @@ -0,0 +1,27 @@ +package com.baeldung.l.advanced; + +public class Bar extends Foo { + + @Override + // precondition: 0 < num <= 10 + public void doStuff(int num) { + if (num <= 0 || num > 10) { + throw new IllegalArgumentException("Input out of range 1-10"); + } + // some logic here... + } + + @Override + // precondition: 0 < num <= 3 + public void doOtherStuff(int num) { + if (num <= 0 || num > 3) { + throw new IllegalArgumentException("Input out of range 1-3"); + } + // some logic here... + } + + @Override + public Integer generateNumber() { + return new Integer(10); + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/Car.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/Car.java new file mode 100644 index 0000000000..48688d9a45 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/Car.java @@ -0,0 +1,26 @@ +package com.baeldung.l.advanced; + +public abstract class Car { + protected int limit; + + // invariant: speed < limit; + protected int speed; + + // Allowed to be set once at the time of creation. + // Value can only increment thereafter. + // Value cannot be reset. + protected int mileage; + + public Car(int mileage) { + this.mileage = mileage; + } + + protected abstract void turnOnEngine(); + + // postcondition: speed < limit + protected abstract void accelerate(); + + // postcondition: speed must reduce + protected abstract void brake(); + +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/CurrentAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/CurrentAccount.java new file mode 100644 index 0000000000..7187582126 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/CurrentAccount.java @@ -0,0 +1,15 @@ +package com.baeldung.l.advanced; + +import java.math.BigDecimal; + +public class CurrentAccount extends Account { + @Override + protected void deposit(BigDecimal amount) { + // Deposit into CurrentAccount + } + + @Override + protected void withdraw(BigDecimal amount) { + // Withdraw from CurrentAccount + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/ElectricCar.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/ElectricCar.java new file mode 100644 index 0000000000..ca78af633f --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/ElectricCar.java @@ -0,0 +1,23 @@ +package com.baeldung.l.advanced; + +public class ElectricCar extends Car { + + public ElectricCar(int mileage) { + super(mileage); + } + + @Override + protected void turnOnEngine() { + throw new AssertionError("I am an Electric Car. I don't have an engine!"); + } + + @Override + protected void accelerate() { + // this acceleration is crazy! + } + + @Override + protected void brake() { + // Apply ElectricCar brake + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/FilePurgingJob.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/FilePurgingJob.java new file mode 100644 index 0000000000..57334696b0 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/FilePurgingJob.java @@ -0,0 +1,18 @@ +package com.baeldung.l.advanced; + +import java.io.IOException; + +public class FilePurgingJob { + private FileSystem fileSystem; + + public FilePurgingJob(FileSystem fileSystem) { + this.fileSystem = fileSystem; + } + + public void purgeOldestFile(String path) throws IOException { + if (!(fileSystem instanceof ReadOnlyFileSystem)) { + // code to detect oldest file + fileSystem.deleteFile(path); + } + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/FileSystem.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/FileSystem.java new file mode 100644 index 0000000000..00a8fb8ec7 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/FileSystem.java @@ -0,0 +1,10 @@ +package com.baeldung.l.advanced; + +import java.io.File; +import java.io.IOException; + +public interface FileSystem { + File[] listFiles(String path); + + void deleteFile(String path) throws IOException; +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/FixedTermDepositAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/FixedTermDepositAccount.java new file mode 100644 index 0000000000..50dd4f3d17 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/FixedTermDepositAccount.java @@ -0,0 +1,15 @@ +package com.baeldung.l.advanced; + +import java.math.BigDecimal; + +public class FixedTermDepositAccount extends Account { + @Override + protected void deposit(BigDecimal amount) { + // Deposit into this account + } + + @Override + protected void withdraw(BigDecimal amount) { + throw new UnsupportedOperationException("Withdrawals are not supported by FixedTermDepositAccount!!"); + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/Foo.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/Foo.java new file mode 100644 index 0000000000..f61577c18f --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/Foo.java @@ -0,0 +1,22 @@ +package com.baeldung.l.advanced; + +public abstract class Foo { + + // precondition: 0 < num <=5 + public void doStuff(int num) { + if (num <= 0 || num > 5) { + throw new IllegalArgumentException("Input out of range 1-5"); + } + // some logic here... + } + + // precondition: 0 < num <=5 + public void doOtherStuff(int num) { + if (num <= 0 || num > 5) { + throw new IllegalArgumentException("Input out of range 1-5"); + } + // some logic here... + } + + public abstract Number generateNumber(); +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/HybridCar.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/HybridCar.java new file mode 100644 index 0000000000..ea643a7419 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/HybridCar.java @@ -0,0 +1,28 @@ +package com.baeldung.l.advanced; + +public class HybridCar extends Car { + // invariant: charge >= 0; + private int charge; + + public HybridCar(int mileage) { + super(mileage); + } + + @Override + protected void turnOnEngine() { + // Start HybridCar + } + + @Override + // postcondition: speed < limit + protected void accelerate() { + // Accelerate HybridCar speed < limit + } + + @Override + // postcondition: speed must reduce + // postcondition: charge must increase + protected void brake() { + // Apply HybridCar brake + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/MotorCar.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/MotorCar.java new file mode 100644 index 0000000000..68a54966cc --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/MotorCar.java @@ -0,0 +1,25 @@ +package com.baeldung.l.advanced; + +public class MotorCar extends Car { + + public MotorCar(int mileage) { + super(mileage); + } + + @Override + protected void turnOnEngine() { + // Start MotorCar + } + + @Override + // postcondition: speed < limit + protected void accelerate() { + // Accelerate MotorCar + } + + @Override + // postcondition: speed must reduce + protected void brake() { + // Apply MotorCar brake + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/ReadOnlyFileSystem.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/ReadOnlyFileSystem.java new file mode 100644 index 0000000000..6ba3d9770d --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/ReadOnlyFileSystem.java @@ -0,0 +1,16 @@ +package com.baeldung.l.advanced; + +import java.io.File; +import java.io.IOException; + +public class ReadOnlyFileSystem implements FileSystem { + public File[] listFiles(String path) { + // code to list files + return new File[0]; + } + + public void deleteFile(String path) throws IOException { + // Do nothing. + // deleteFile operation is not supported on a read-only file system + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/SavingsAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/SavingsAccount.java new file mode 100644 index 0000000000..8dbb5eb4d4 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/SavingsAccount.java @@ -0,0 +1,15 @@ +package com.baeldung.l.advanced; + +import java.math.BigDecimal; + +public class SavingsAccount extends Account { + @Override + protected void deposit(BigDecimal amount) { + // Deposit into SavingsAccount + } + + @Override + protected void withdraw(BigDecimal amount) { + // Withdraw from SavingsAccount + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/ToyCar.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/ToyCar.java new file mode 100644 index 0000000000..a41694deef --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/ToyCar.java @@ -0,0 +1,24 @@ +package com.baeldung.l.advanced; + +public class ToyCar extends Car { + + public ToyCar(int mileage) { + super(mileage); + } + + protected void turnOnEngine() { + + } + + protected void accelerate() { + + } + + protected void brake() { + + } + + public void reset() { + mileage = 0; + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/Account.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/Account.java new file mode 100644 index 0000000000..cb950df164 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/Account.java @@ -0,0 +1,7 @@ +package com.baeldung.l.advanced.refactored; + +import java.math.BigDecimal; + +public abstract class Account { + protected abstract void deposit(BigDecimal amount); +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/BankingAppWithdrawalService.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/BankingAppWithdrawalService.java new file mode 100644 index 0000000000..cbb375dd52 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/BankingAppWithdrawalService.java @@ -0,0 +1,17 @@ +package com.baeldung.l.advanced.refactored; + +import com.baeldung.l.advanced.Account; + +import java.math.BigDecimal; + +public class BankingAppWithdrawalService { + private WithdrawableAccount withdrawableAccount; + + public BankingAppWithdrawalService(WithdrawableAccount withdrawableAccount) { + this.withdrawableAccount = withdrawableAccount; + } + + public void withdraw(BigDecimal amount) { + withdrawableAccount.withdraw(amount); + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/CurrentAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/CurrentAccount.java new file mode 100644 index 0000000000..5b5b9efe04 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/CurrentAccount.java @@ -0,0 +1,13 @@ +package com.baeldung.l.advanced.refactored; + +import java.math.BigDecimal; + +public class CurrentAccount extends WithdrawableAccount { + protected void deposit(BigDecimal amount) { + // Deposit into CurrentAccount + } + + protected void withdraw(BigDecimal amount) { + // Withdraw from CurrentAccount + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/FixedTermDepositAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/FixedTermDepositAccount.java new file mode 100644 index 0000000000..14461b85a3 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/FixedTermDepositAccount.java @@ -0,0 +1,9 @@ +package com.baeldung.l.advanced.refactored; + +import java.math.BigDecimal; + +public class FixedTermDepositAccount extends Account { + protected void deposit(BigDecimal amount) { + // Deposit into this account + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/SavingsAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/SavingsAccount.java new file mode 100644 index 0000000000..45c50079bf --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/SavingsAccount.java @@ -0,0 +1,13 @@ +package com.baeldung.l.advanced.refactored; + +import java.math.BigDecimal; + +public class SavingsAccount extends WithdrawableAccount { + protected void deposit(BigDecimal amount) { + // Deposit into SavingsAccount + } + + protected void withdraw(BigDecimal amount) { + // Withdraw from SavingsAccount + } +} diff --git a/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/WithdrawableAccount.java b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/WithdrawableAccount.java new file mode 100644 index 0000000000..b3c7606cb7 --- /dev/null +++ b/patterns/solid/src/main/java/com/baeldung/l/advanced/refactored/WithdrawableAccount.java @@ -0,0 +1,14 @@ +package com.baeldung.l.advanced.refactored; + +import java.math.BigDecimal; + +public abstract class WithdrawableAccount extends Account { + /** + * Reduces the account balance by the specified amount + * provided given amount > 0 and account meets minimum available + * balance criteria. + * + * @param amount + */ + protected abstract void withdraw(BigDecimal amount); +} diff --git a/performance-tests/pom.xml b/performance-tests/pom.xml index 0dc38e56a4..c790dbbb16 100644 --- a/performance-tests/pom.xml +++ b/performance-tests/pom.xml @@ -120,6 +120,18 @@ + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + com.baeldung.performancetests.MappingFrameworksPerformance + + + + @@ -178,6 +190,7 @@ 1.21 1.21 3.7.0 + 3.2.0 + + javax.persistence + javax.persistence-api + ${javax.persistence-api.version} + + + + + org.eclipse.persistence + eclipselink + ${eclipselink.version} + runtime + + + org.postgresql + postgresql + ${postgres.version} + runtime + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + -proc:none + + + + + + + 5.4.14.Final + 2.7.4 + 42.2.5 + 2.2 + 3.11.1 + 3.5.1 + 3.3.3 + 3.0.0 + + + diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java new file mode 100644 index 0000000000..3fe858936a --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java @@ -0,0 +1,53 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.*; + +@Entity +public class EqualByBusinessKey { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String email; + + public EqualByBusinessKey() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + @Override + public int hashCode() { + return java.util.Objects.hashCode(email); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (obj instanceof EqualByBusinessKey) { + if (((EqualByBusinessKey) obj).getEmail() == getEmail()) { + return true; + } + } + return false; + } +} diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java new file mode 100644 index 0000000000..cebfb5fcec --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java @@ -0,0 +1,55 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.*; + +@Entity +public class EqualById { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String email; + + public EqualById() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (obj instanceof EqualById) { + return ((EqualById) obj).getId().equals(getId()); + } + return false; + } +} diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java new file mode 100644 index 0000000000..b312845b61 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java @@ -0,0 +1,36 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.*; + +@Entity +public class EqualByJavaDefault implements Cloneable{ + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String email; + + public EqualByJavaDefault() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } +} diff --git a/persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml b/persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000000..28a929f912 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,25 @@ + + + + org.hibernate.jpa.HibernatePersistenceProvider + com.baeldung.jpa.equality.EqualByJavaDefault + com.baeldung.jpa.equality.EqualById + com.baeldung.jpa.equality.EqualByBusinessKey + true + + + + + + + + + + + + + diff --git a/persistence-modules/java-jpa-3/src/main/resources/logback.xml b/persistence-modules/java-jpa-3/src/main/resources/logback.xml new file mode 100644 index 0000000000..2527fea245 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/resources/logback.xml @@ -0,0 +1,15 @@ + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - + %msg%n + + + + + + + + \ No newline at end of file diff --git a/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java new file mode 100644 index 0000000000..03ac11b6fd --- /dev/null +++ b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java @@ -0,0 +1,74 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class EqualityUnitTest { + + private static EntityManagerFactory factory; + private static EntityManager entityManager; + + @BeforeClass + public static void setup() { + factory = Persistence.createEntityManagerFactory("jpa-h2-equality"); + entityManager = factory.createEntityManager(); + } + + @Test + public void givenObjectBasedEquality_whenUsingEquals_thenEqualIsBasedOnInstance() throws CloneNotSupportedException { + EqualByJavaDefault object1 = new EqualByJavaDefault(); + EqualByJavaDefault object2 = new EqualByJavaDefault(); + + object1.setEmail("test.user@domain.com"); + + entityManager.getTransaction().begin(); + entityManager.persist(object1); + entityManager.getTransaction().commit(); + + object2 = (EqualByJavaDefault) object1.clone(); + + Assert.assertNotEquals(object1, object2); + Assert.assertEquals(object1.getId(), object2.getId()); + Assert.assertEquals(object1.getEmail(), object2.getEmail()); + } + + @Test + public void givenIdBasedEquality_whenUsingEquals_thenEqualIsBasedOnId() { + EqualById object1 = new EqualById(); + EqualById object2 = new EqualById(); + + object1.setEmail("test.user.1@domain.com"); + object2.setEmail("test.user.2@domain.com"); + + entityManager.getTransaction().begin(); + entityManager.persist(object1); + entityManager.getTransaction().commit(); + + object2.setId(object1.getId()); + + Assert.assertEquals(object1, object2); + Assert.assertEquals(object1.getId(), object2.getId()); + Assert.assertNotEquals(object1.getEmail(), object2.getEmail()); + } + + @Test + public void givenBusinessKeyBasedEquality_whenUsingEquals_thenEqualIsBasedOnBusinessKey() { + EqualByBusinessKey object1 = new EqualByBusinessKey(); + EqualByBusinessKey object2 = new EqualByBusinessKey(); + + object1.setEmail("test.user@test-domain.com"); + object2.setEmail("test.user@test-domain.com"); + + entityManager.getTransaction().begin(); + entityManager.persist(object1); + entityManager.getTransaction().commit(); + + Assert.assertEquals(object1, object2); + Assert.assertNotEquals(object1.getId(), object2.getId()); + } +} diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml index f1154f203b..522c281386 100644 --- a/persistence-modules/pom.xml +++ b/persistence-modules/pom.xml @@ -20,11 +20,13 @@ deltaspike elasticsearch flyway + flyway-repair hbase hibernate5 hibernate-mapping hibernate-ogm hibernate-annotations + hibernate-exceptions hibernate-libraries hibernate-jpa hibernate-queries @@ -53,17 +55,23 @@ spring-boot-persistence-mongodb spring-data-cassandra spring-data-cassandra-reactive + spring-data-cosmosdb spring-data-couchbase-2 spring-data-dynamodb spring-data-eclipselink spring-data-elasticsearch spring-data-gemfire spring-data-geode - spring-data-jpa - spring-data-jpa-2 - spring-data-jpa-3 - spring-data-jpa-4 - spring-data-jpa-5 + + spring-data-jpa-annotations + spring-data-jpa-crud + spring-data-jpa-enterprise + spring-data-jpa-filtering + spring-data-jpa-query + spring-data-jpa-repo + + spring-data-jdbc + spring-data-keyvalue spring-data-mongodb spring-data-neo4j @@ -73,6 +81,7 @@ spring-hibernate-5 spring-hibernate4 spring-jpa + spring-jpa-2 spring-persistence-simple spring-persistence-simple-2 diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml new file mode 100644 index 0000000000..75cc830578 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -0,0 +1,51 @@ + + + 4.0.0 + spring-data-cosmosdb + spring-data-cosmos-db + tutorial for spring-data-cosmosdb + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../../parent-boot-2 + + + + 1.8 + 2.3.0 + + + + + org.springframework.boot + spring-boot-starter-web + + + com.microsoft.azure + spring-data-cosmosdb + ${cosmodb.version} + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java new file mode 100644 index 0000000000..5a1764adc6 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java @@ -0,0 +1,12 @@ +package com.baeldung.spring.data.cosmosdb; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class AzureCosmosDbApplication { + + public static void main(String[] args) { + SpringApplication.run(AzureCosmosDbApplication.class, args); + } +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java new file mode 100644 index 0000000000..7d3322faf6 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java @@ -0,0 +1,37 @@ +package com.baeldung.spring.data.cosmosdb.config; + +import com.azure.data.cosmos.CosmosKeyCredential; +import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; +import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; +import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableCosmosRepositories; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCosmosRepositories(basePackages = "com.baeldung.spring.data.cosmosdb.repository") +public class AzureCosmosDbConfiguration extends AbstractCosmosConfiguration { + + @Value("${azure.cosmosdb.uri}") + private String uri; + + @Value("${azure.cosmosdb.key}") + private String key; + + @Value("${azure.cosmosdb.secondaryKey}") + private String secondaryKey; + + @Value("${azure.cosmosdb.database}") + private String dbName; + + private CosmosKeyCredential cosmosKeyCredential; + + @Bean + public CosmosDBConfig getConfig() { + this.cosmosKeyCredential = new CosmosKeyCredential(key); + CosmosDBConfig cosmosdbConfig = CosmosDBConfig.builder(uri, this.cosmosKeyCredential, dbName) + .build(); + return cosmosdbConfig; + } +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java new file mode 100644 index 0000000000..25f88bac72 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java @@ -0,0 +1,53 @@ +package com.baeldung.spring.data.cosmosdb.controller; + +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.baeldung.spring.data.cosmosdb.service.ProductService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/products") +public class ProductController { + + private ProductService productService; + + @Autowired + public ProductController(ProductService productService) { + this.productService = productService; + } + + @PostMapping + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody Product product) { + productService.saveProduct(product); + } + + @GetMapping(value = "/{id}/category/{category}") + public Optional get(@PathVariable String id, @PathVariable String category) { + return productService.findById(id, category); + } + + @DeleteMapping(value = "/{id}/category/{category}") + public void delete(@PathVariable String id, @PathVariable String category) { + productService.delete(id, category); + } + + @GetMapping + public List getByName(@RequestParam String name) { + return productService.findProductByName(name); + } + +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java new file mode 100644 index 0000000000..10bbe1b9ae --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java @@ -0,0 +1,26 @@ +package com.baeldung.spring.data.cosmosdb.entity; + +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.PartitionKey; + +import org.springframework.data.annotation.Id; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Document(collection = "products") +public class Product { + + @Id + private String productid; + + private String productName; + + private double price; + + @PartitionKey + private String productCategory; + +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java new file mode 100644 index 0000000000..1e4a2987a1 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java @@ -0,0 +1,14 @@ +package com.baeldung.spring.data.cosmosdb.repository; + +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.microsoft.azure.spring.data.cosmosdb.repository.CosmosRepository; + +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface ProductRepository extends CosmosRepository { + List findByProductName(String productName); + +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java new file mode 100644 index 0000000000..0d1cf7c6a6 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java @@ -0,0 +1,38 @@ +package com.baeldung.spring.data.cosmosdb.service; + +import com.azure.data.cosmos.PartitionKey; +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.baeldung.spring.data.cosmosdb.repository.ProductRepository; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Optional; + +@Component +public class ProductService { + + private ProductRepository repository; + + @Autowired + public ProductService(ProductRepository repository) { + this.repository = repository; + } + + public List findProductByName(String productName) { + return repository.findByProductName(productName); + } + + public Optional findById(String productId, String category) { + return repository.findById(productId, new PartitionKey(category)); + } + + public void saveProduct(Product product) { + repository.save(product); + } + + public void delete(String productId, String category) { + repository.deleteById(productId, new PartitionKey(category)); + } +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties b/persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties new file mode 100644 index 0000000000..ba99ea2e6e --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties @@ -0,0 +1,4 @@ +azure.cosmosdb.uri=cosmodb-uri +azure.cosmosdb.key=cosmodb-primary-key +azure.cosmosdb.secondaryKey=cosmodb-second-key +azure.cosmosdb.database=cosmodb-name \ No newline at end of file diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplicationManualTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplicationManualTest.java new file mode 100644 index 0000000000..9170068173 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplicationManualTest.java @@ -0,0 +1,33 @@ +package com.baeldung.spring.data.cosmosdb; + +import com.azure.data.cosmos.PartitionKey; +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.baeldung.spring.data.cosmosdb.repository.ProductRepository; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.util.Assert; + +@SpringBootTest +public class AzureCosmosDbApplicationManualTest { + + @Autowired + ProductRepository productRepository; + + @Test + public void givenProductIsCreated_whenCallFindById_thenProductIsFound() { + Product product = new Product(); + product.setProductid("1001"); + product.setProductCategory("Shirt"); + product.setPrice(110.0); + product.setProductName("Blue Shirt"); + + productRepository.save(product); + Product retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")) + .orElse(null); + Assert.notNull(retrievedProduct, "Retrieved Product is Null"); + + } + +} diff --git a/persistence-modules/spring-data-elasticsearch/README.md b/persistence-modules/spring-data-elasticsearch/README.md index 9f68a25243..22126c2f00 100644 --- a/persistence-modules/spring-data-elasticsearch/README.md +++ b/persistence-modules/spring-data-elasticsearch/README.md @@ -6,7 +6,6 @@ - [Guide to Elasticsearch in Java](https://www.baeldung.com/elasticsearch-java) - [Geospatial Support in ElasticSearch](https://www.baeldung.com/elasticsearch-geo-spatial) - [A Simple Tagging Implementation with Elasticsearch](https://www.baeldung.com/elasticsearch-tagging) -- [Introduction to Spring Data Elasticsearch (evaluation)](https://www.baeldung.com/spring-data-elasticsearch-test-2) ### Build the Project with Tests Running ``` diff --git a/persistence-modules/spring-data-jdbc/pom.xml b/persistence-modules/spring-data-jdbc/pom.xml new file mode 100644 index 0000000000..ff034104d7 --- /dev/null +++ b/persistence-modules/spring-data-jdbc/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../../parent-boot-2 + + spring-data-jdbc + spring-data-jdbc + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-data-jdbc + + + com.h2database + h2 + runtime + + + diff --git a/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/Application.java b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/Application.java new file mode 100644 index 0000000000..7f50aa87f1 --- /dev/null +++ b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/Application.java @@ -0,0 +1,59 @@ +package com.baeldung.springdatajdbcintro; + +import java.util.Optional; + +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import com.baeldung.springdatajdbcintro.entity.Person; +import com.baeldung.springdatajdbcintro.repository.PersonRepository; + +import ch.qos.logback.classic.Logger; + +@SpringBootApplication +public class Application implements CommandLineRunner { + + private static final Logger LOGGER = (Logger) LoggerFactory.getLogger(Application.class); + + @Autowired + private PersonRepository repository; + @Autowired + private DatabaseSeeder dbSeeder; + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Override + public void run(String... arg0) throws Exception { + + LOGGER.info("@@ Inserting Data...."); + dbSeeder.insertData(); + LOGGER.info("@@ findAll() call..."); + repository.findAll() + .forEach(person -> LOGGER.info(person.toString())); + LOGGER.info("@@ findById() call..."); + Optional optionalPerson = repository.findById(1L); + optionalPerson.ifPresent(person -> LOGGER.info(person.toString())); + LOGGER.info("@@ save() call..."); + Person newPerson = new Person("Franz", "Kafka"); + Person result = repository.save(newPerson); + LOGGER.info(result.toString()); + LOGGER.info("@@ delete"); + optionalPerson.ifPresent(person -> repository.delete(person)); + LOGGER.info("@@ findAll() call..."); + repository.findAll() + .forEach(person -> LOGGER.info(person.toString())); + LOGGER.info("@@ findByFirstName() call..."); + repository.findByFirstName("Franz") + .forEach(person -> LOGGER.info(person.toString())); + LOGGER.info("@@ findByFirstName() call..."); + repository.updateByFirstName(2L, "Date Inferno"); + repository.findAll() + .forEach(person -> LOGGER.info(person.toString())); + + } +} diff --git a/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/DatabaseSeeder.java b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/DatabaseSeeder.java new file mode 100644 index 0000000000..97055fd7ac --- /dev/null +++ b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/DatabaseSeeder.java @@ -0,0 +1,26 @@ +package com.baeldung.springdatajdbcintro; + +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; + +import ch.qos.logback.classic.Logger; + +@Component +public class DatabaseSeeder { + + private static final Logger LOGGER = (Logger) LoggerFactory.getLogger(DatabaseSeeder.class); + + @Autowired + private JdbcTemplate jdbcTemplate; + + public void insertData() { + LOGGER.info("> Inserting data..."); + jdbcTemplate.execute("INSERT INTO Person(first_name,last_name) VALUES('Victor', 'Hygo')"); + jdbcTemplate.execute("INSERT INTO Person(first_name,last_name) VALUES('Dante', 'Alighieri')"); + jdbcTemplate.execute("INSERT INTO Person(first_name,last_name) VALUES('Stefan', 'Zweig')"); + jdbcTemplate.execute("INSERT INTO Person(first_name,last_name) VALUES('Oscar', 'Wilde')"); + } + +} diff --git a/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/entity/Person.java b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/entity/Person.java new file mode 100644 index 0000000000..7c4c1eec73 --- /dev/null +++ b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/entity/Person.java @@ -0,0 +1,57 @@ +package com.baeldung.springdatajdbcintro.entity; + +import org.springframework.data.annotation.Id; + +public class Person { + + @Id + private long id; + private String firstName; + private String lastName; + + public Person() { + super(); + } + + public Person(long id, String firstName, String lastName) { + super(); + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + } + + public Person(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + @Override + public String toString() { + return "Person [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]"; + } + +} diff --git a/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/repository/PersonRepository.java b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/repository/PersonRepository.java new file mode 100644 index 0000000000..2f2329caec --- /dev/null +++ b/persistence-modules/spring-data-jdbc/src/main/java/com/baeldung/springdatajdbcintro/repository/PersonRepository.java @@ -0,0 +1,23 @@ +package com.baeldung.springdatajdbcintro.repository; + +import java.util.List; + +import org.springframework.data.jdbc.repository.query.Modifying; +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import com.baeldung.springdatajdbcintro.entity.Person; + +@Repository +public interface PersonRepository extends CrudRepository { + + @Query("select * from person where first_name=:firstName") + List findByFirstName(@Param("firstName") String firstName); + + @Modifying + @Query("UPDATE person SET first_name = :name WHERE id = :id") + boolean updateByFirstName(@Param("id") Long id, @Param("name") String name); + +} diff --git a/persistence-modules/spring-data-jdbc/src/main/resources/application.properties b/persistence-modules/spring-data-jdbc/src/main/resources/application.properties new file mode 100644 index 0000000000..45099222fc --- /dev/null +++ b/persistence-modules/spring-data-jdbc/src/main/resources/application.properties @@ -0,0 +1,8 @@ +#H2 DB +spring.jpa.hibernate.ddl-auto=none +spring.h2.console.enabled=true +spring.datasource.url=jdbc:h2:mem:persondb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password=test +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect \ No newline at end of file diff --git a/persistence-modules/spring-data-jdbc/src/main/resources/schema.sql b/persistence-modules/spring-data-jdbc/src/main/resources/schema.sql new file mode 100644 index 0000000000..5618822bf9 --- /dev/null +++ b/persistence-modules/spring-data-jdbc/src/main/resources/schema.sql @@ -0,0 +1,5 @@ +create table person ( + id integer identity primary key, + first_name varchar(30), + last_name varchar(30) +); \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-2/README.md b/persistence-modules/spring-data-jpa-2/README.md deleted file mode 100644 index e59aca7c69..0000000000 --- a/persistence-modules/spring-data-jpa-2/README.md +++ /dev/null @@ -1,12 +0,0 @@ -### Relevant Articles: -- [Spring Data JPA – Derived Delete Methods](https://www.baeldung.com/spring-data-jpa-deleteby) -- [JPA Join Types](https://www.baeldung.com/jpa-join-types) -- [Case Insensitive Queries with Spring Data Repository](https://www.baeldung.com/spring-data-case-insensitive-queries) -- [The Exists Query in Spring Data](https://www.baeldung.com/spring-data-exists-query) -- [Spring Data JPA Repository Populators](https://www.baeldung.com/spring-data-jpa-repository-populators) -- [Spring Data JPA and Null Parameters](https://www.baeldung.com/spring-data-jpa-null-parameters) -- [Spring Data JPA Projections](https://www.baeldung.com/spring-data-jpa-projections) -- [JPA @Embedded And @Embeddable](https://www.baeldung.com/jpa-embedded-embeddable) -- [Spring Data JPA Delete and Relationships](https://www.baeldung.com/spring-data-jpa-delete) -- [Spring Data JPA and Named Entity Graphs](https://www.baeldung.com/spring-data-jpa-named-entity-graphs) -- [Customizing the Result of JPA Queries with Aggregation Functions](https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions) diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/model/BasicUser.java b/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/model/BasicUser.java deleted file mode 100644 index 2dc9c18cf6..0000000000 --- a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/model/BasicUser.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.baeldung.model; - -import javax.persistence.*; -import java.util.Set; - -@Entity -@Table(name = "users") -public class BasicUser { - - @Id - @GeneratedValue - private Long id; - - private String username; - - @ElementCollection - private Set permissions; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public Set getPermissions() { - return permissions; - } - - public void setPermissions(Set permissions) { - this.permissions = permissions; - } -} diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java b/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java deleted file mode 100644 index 6ce9bcad45..0000000000 --- a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.baeldung.multipledb.dao.product; - -import java.util.List; - -import org.springframework.data.domain.Pageable; -import org.springframework.data.repository.PagingAndSortingRepository; - -import com.baeldung.multipledb.model.product.Product; - -public interface ProductRepository extends PagingAndSortingRepository { - - List findAllByPrice(double price, Pageable pageable); -} diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/repository/UserRepository.java b/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/repository/UserRepository.java deleted file mode 100644 index f683be402f..0000000000 --- a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/repository/UserRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.baeldung.model.BasicUser; - -public interface UserRepository extends JpaRepository { - - Optional findSummaryByUsername(String username); - - Optional findByUsername(String username); -} diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java deleted file mode 100644 index 831790af95..0000000000 --- a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.baeldung.multipledb; - -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; - -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -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.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.transaction.annotation.EnableTransactionManagement; -import org.springframework.transaction.annotation.Transactional; - -import com.baeldung.multipledb.dao.product.ProductRepository; -import com.baeldung.multipledb.model.product.Product; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes=MultipleDbApplication.class) -@EnableTransactionManagement -public class ProductRepositoryIntegrationTest { - - @Autowired - private ProductRepository productRepository; - - @Before - @Transactional("productTransactionManager") - public void setUp() { - productRepository.save(Product.from(1001, "Book", 21)); - productRepository.save(Product.from(1002, "Coffee", 10)); - productRepository.save(Product.from(1003, "Jeans", 30)); - productRepository.save(Product.from(1004, "Shirt", 32)); - productRepository.save(Product.from(1005, "Bacon", 10)); - } - - @Test - public void whenRequestingFirstPageOfSizeTwo_ThenReturnFirstPage() { - Pageable pageRequest = PageRequest.of(0, 2); - - Page result = productRepository.findAll(pageRequest); - - assertThat(result.getContent(), hasSize(2)); - assertTrue(result.stream() - .map(Product::getId) - .allMatch(id -> Arrays.asList(1001, 1002) - .contains(id))); - } - - @Test - public void whenRequestingSecondPageOfSizeTwo_ThenReturnSecondPage() { - Pageable pageRequest = PageRequest.of(1, 2); - - Page result = productRepository.findAll(pageRequest); - - assertThat(result.getContent(), hasSize(2)); - assertTrue(result.stream() - .map(Product::getId) - .allMatch(id -> Arrays.asList(1003, 1004) - .contains(id))); - } - - @Test - public void whenRequestingLastPage_ThenReturnLastPageWithRemData() { - Pageable pageRequest = PageRequest.of(2, 2); - - Page result = productRepository.findAll(pageRequest); - - assertThat(result.getContent(), hasSize(1)); - assertTrue(result.stream() - .map(Product::getId) - .allMatch(id -> Arrays.asList(1005) - .contains(id))); - } - - @Test - public void whenSortingByNameAscAndPaging_ThenReturnSortedPagedResult() { - Pageable pageRequest = PageRequest.of(0, 3, Sort.by("name")); - - Page result = productRepository.findAll(pageRequest); - - assertThat(result.getContent(), hasSize(3)); - assertThat(result.getContent() - .stream() - .map(Product::getId) - .collect(Collectors.toList()), equalTo(Arrays.asList(1005, 1001, 1002))); - - } - - @Test - public void whenSortingByPriceDescAndPaging_ThenReturnSortedPagedResult() { - Pageable pageRequest = PageRequest.of(0, 3, Sort.by("price") - .descending()); - - Page result = productRepository.findAll(pageRequest); - - assertThat(result.getContent(), hasSize(3)); - assertThat(result.getContent() - .stream() - .map(Product::getId) - .collect(Collectors.toList()), equalTo(Arrays.asList(1004, 1003, 1001))); - - } - - @Test - public void whenSortingByPriceDescAndNameAscAndPaging_ThenReturnSortedPagedResult() { - Pageable pageRequest = PageRequest.of(0, 5, Sort.by("price") - .descending() - .and(Sort.by("name"))); - - Page result = productRepository.findAll(pageRequest); - - assertThat(result.getContent(), hasSize(5)); - assertThat(result.getContent() - .stream() - .map(Product::getId) - .collect(Collectors.toList()), equalTo(Arrays.asList(1004, 1003, 1001, 1005, 1002))); - - } - - @Test - public void whenRequestingFirstPageOfSizeTwoUsingCustomMethod_ThenReturnFirstPage() { - Pageable pageRequest = PageRequest.of(0, 2); - - List result = productRepository.findAllByPrice(10, pageRequest); - - assertThat(result, hasSize(2)); - assertTrue(result.stream() - .map(Product::getId) - .allMatch(id -> Arrays.asList(1002, 1005) - .contains(id))); - } -} diff --git a/persistence-modules/spring-data-jpa-3/src/test/resources/application-tc-auto.properties b/persistence-modules/spring-data-jpa-3/src/test/resources/application-tc-auto.properties deleted file mode 100644 index c3005d861f..0000000000 --- a/persistence-modules/spring-data-jpa-3/src/test/resources/application-tc-auto.properties +++ /dev/null @@ -1,4 +0,0 @@ -# configuration for test containers testing -spring.datasource.url=${DB_URL} -spring.datasource.username=${DB_USERNAME} -spring.datasource.password=${DB_PASSWORD} diff --git a/persistence-modules/spring-data-jpa-3/src/test/resources/application-tc.properties b/persistence-modules/spring-data-jpa-3/src/test/resources/application-tc.properties deleted file mode 100644 index 3bf8693d53..0000000000 --- a/persistence-modules/spring-data-jpa-3/src/test/resources/application-tc.properties +++ /dev/null @@ -1,4 +0,0 @@ -# configuration for Test Containers testing -spring.datasource.driver-class-name=org.postgresql.Driver -spring.jpa.hibernate.ddl-auto=create-drop -spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false diff --git a/persistence-modules/spring-data-jpa-4/create.sql b/persistence-modules/spring-data-jpa-4/create.sql deleted file mode 100644 index 1bbe1640a7..0000000000 --- a/persistence-modules/spring-data-jpa-4/create.sql +++ /dev/null @@ -1,2 +0,0 @@ -create table PERSON (ID int8 not null, FIRST_NAME varchar(255), LAST_NAME varchar(255), primary key (ID)) -create table person (id int8 not null, first_name varchar(255), last_name varchar(255), primary key (id)) diff --git a/persistence-modules/spring-data-jpa-5/README.md b/persistence-modules/spring-data-jpa-5/README.md deleted file mode 100644 index 0b78ced66c..0000000000 --- a/persistence-modules/spring-data-jpa-5/README.md +++ /dev/null @@ -1,15 +0,0 @@ -### Relevant Articles: - -- [Spring JPA @Embedded and @EmbeddedId](https://www.baeldung.com/spring-jpa-embedded-method-parameters) -- [Generate Database Schema with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-generate-db-schema) -- [Partial Data Update with Spring Data](https://www.baeldung.com/spring-data-partial-update) - -### Eclipse Config -After importing the project into Eclipse, you may see the following error: -"No persistence xml file found in project" - -This can be ignored: -- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" -Or: -- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator - diff --git a/persistence-modules/spring-data-jpa-annotations/README.md b/persistence-modules/spring-data-jpa-annotations/README.md new file mode 100644 index 0000000000..5f1c8dbc27 --- /dev/null +++ b/persistence-modules/spring-data-jpa-annotations/README.md @@ -0,0 +1,23 @@ +## Spring Data JPA - Annotations + +This module contains articles about annotations used in Spring Data JPA + +### Relevant articles + +- [Spring Data Annotations](https://www.baeldung.com/spring-data-annotations) +- [DDD Aggregates and @DomainEvents](https://www.baeldung.com/spring-data-ddd) +- [JPA @Embedded And @Embeddable](https://www.baeldung.com/jpa-embedded-embeddable) +- [Spring Data JPA @Modifying Annotation](https://www.baeldung.com/spring-data-jpa-modifying-annotation) +- [Spring JPA @Embedded and @EmbeddedId](https://www.baeldung.com/spring-jpa-embedded-method-parameters) +- [Programmatic Transaction Management in Spring](https://www.baeldung.com/spring-programmatic-transaction-management) +- [JPA Entity Lifecycle Events](https://www.baeldung.com/jpa-entity-lifecycle-events) + +### Eclipse Config +After importing the project into Eclipse, you may see the following error: +"No persistence xml file found in project" + +This can be ignored: +- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" +Or: +- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator + diff --git a/persistence-modules/spring-data-jpa-annotations/pom.xml b/persistence-modules/spring-data-jpa-annotations/pom.xml new file mode 100644 index 0000000000..67b788c404 --- /dev/null +++ b/persistence-modules/spring-data-jpa-annotations/pom.xml @@ -0,0 +1,77 @@ + + + 4.0.0 + spring-data-jpa-annotations + spring-data-jpa-annotations + + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../../parent-boot-2 + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.hibernate + hibernate-ehcache + + + org.hibernate + hibernate-envers + + + + com.h2database + h2 + + + + + org.testcontainers + postgresql + ${testcontainers.postgresql.version} + test + + + + org.postgresql + postgresql + + + + + org.springframework.security + spring-security-test + test + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.google.guava + guava + ${guava.version} + + + + + com.baeldung.boot.Application + 1.10.6 + 42.2.5 + 21.0 + + + \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/Application.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/Application.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/Application.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/Application.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate2.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate2.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate2.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate2.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate2Repository.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate2Repository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate2Repository.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate2Repository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate3.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate3.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate3.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate3.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate3Repository.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate3Repository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/Aggregate3Repository.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/Aggregate3Repository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/AggregateRepository.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/AggregateRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/AggregateRepository.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/AggregateRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/DddConfig.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/DddConfig.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/DddConfig.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/DddConfig.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/DomainEvent.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/DomainEvent.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/DomainEvent.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/DomainEvent.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/DomainService.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/DomainService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/ddd/event/DomainService.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/boot/ddd/event/DomainService.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/BookApplication.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/BookApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/BookApplication.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/BookApplication.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/entity/Book.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/entity/Book.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/entity/Book.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/entity/Book.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/entity/BookId.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/entity/BookId.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/entity/BookId.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/entity/BookId.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/repository/BookRepository.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/repository/BookRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/composite/repository/BookRepository.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/composite/repository/BookRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/embeddable/model/Company.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/embeddable/model/Company.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/embeddable/model/Company.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/embeddable/model/Company.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/embeddable/model/ContactPerson.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/embeddable/model/ContactPerson.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/embeddable/model/ContactPerson.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/embeddable/model/ContactPerson.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/embeddable/repositories/CompanyRepository.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/embeddable/repositories/CompanyRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/embeddable/repositories/CompanyRepository.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/embeddable/repositories/CompanyRepository.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/SpringBootLifecycleEventApplication.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/SpringBootLifecycleEventApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/SpringBootLifecycleEventApplication.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/SpringBootLifecycleEventApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/model/AuditTrailListener.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/model/AuditTrailListener.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/model/AuditTrailListener.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/model/AuditTrailListener.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/model/User.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/model/User.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/model/User.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/model/User.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/repository/UserRepository.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/repository/UserRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/lifecycleevents/repository/UserRepository.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/lifecycleevents/repository/UserRepository.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/tx/TxApplication.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/tx/TxApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/tx/TxApplication.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/tx/TxApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/tx/model/Payment.java b/persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/tx/model/Payment.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/tx/model/Payment.java rename to persistence-modules/spring-data-jpa-annotations/src/main/java/com/baeldung/tx/model/Payment.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-annotations/src/main/resources/application.properties similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/resources/application.properties rename to persistence-modules/spring-data-jpa-annotations/src/main/resources/application.properties diff --git a/persistence-modules/spring-data-jpa/src/main/resources/ddd.properties b/persistence-modules/spring-data-jpa-annotations/src/main/resources/ddd.properties similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/resources/ddd.properties rename to persistence-modules/spring-data-jpa-annotations/src/main/resources/ddd.properties diff --git a/persistence-modules/spring-data-jpa-3/src/main/resources/logback.xml b/persistence-modules/spring-data-jpa-annotations/src/main/resources/logback.xml similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/resources/logback.xml rename to persistence-modules/spring-data-jpa-annotations/src/main/resources/logback.xml diff --git a/persistence-modules/spring-data-jpa/src/main/resources/persistence.properties b/persistence-modules/spring-data-jpa-annotations/src/main/resources/persistence.properties similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/resources/persistence.properties rename to persistence-modules/spring-data-jpa-annotations/src/main/resources/persistence.properties diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/Aggregate2EventsIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/Aggregate2EventsIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/Aggregate2EventsIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/Aggregate2EventsIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/Aggregate3EventsIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/Aggregate3EventsIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/Aggregate3EventsIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/Aggregate3EventsIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/AggregateEventsIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/AggregateEventsIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/AggregateEventsIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/AggregateEventsIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/TestEventHandler.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/TestEventHandler.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/ddd/event/TestEventHandler.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/boot/ddd/event/TestEventHandler.java diff --git a/persistence-modules/spring-data-jpa-5/src/test/java/com/baeldung/composite/repository/BookRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/composite/repository/BookRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/test/java/com/baeldung/composite/repository/BookRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/composite/repository/BookRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/embeddable/EmbeddableIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/embeddable/EmbeddableIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/embeddable/EmbeddableIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/embeddable/EmbeddableIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/tx/ManualTransactionIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/tx/ManualTransactionIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/tx/ManualTransactionIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/com/baeldung/tx/ManualTransactionIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/lifecycleevents/UserRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-annotations/src/test/java/lifecycleevents/UserRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/lifecycleevents/UserRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-annotations/src/test/java/lifecycleevents/UserRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/README.md b/persistence-modules/spring-data-jpa-crud/README.md similarity index 55% rename from persistence-modules/spring-data-jpa-3/README.md rename to persistence-modules/spring-data-jpa-crud/README.md index bac52bf114..dc0c78c87e 100644 --- a/persistence-modules/spring-data-jpa-3/README.md +++ b/persistence-modules/spring-data-jpa-crud/README.md @@ -1,14 +1,15 @@ +## Spring Data JPA - CRUD + +This module contains articles about CRUD operations in Spring Data JPA + ### Relevant Articles: -- [Limiting Query Results with JPA and Spring Data JPA](https://www.baeldung.com/jpa-limit-query-results) -- [Sorting Query Results with Spring Data](https://www.baeldung.com/spring-data-sorting) +- [Spring Data JPA – Derived Delete Methods](https://www.baeldung.com/spring-data-jpa-deleteby) +- [Spring Data JPA Delete and Relationships](https://www.baeldung.com/spring-data-jpa-delete) - [INSERT Statement in JPA](https://www.baeldung.com/jpa-insert) -- [Pagination and Sorting using Spring Data JPA](https://www.baeldung.com/spring-data-jpa-pagination-sorting) -- [Spring Data JPA Query by Example](https://www.baeldung.com/spring-data-query-by-example) -- [DB Integration Tests with Spring Boot and Testcontainers](https://www.baeldung.com/spring-boot-testcontainers-integration-test) -- [Spring Data JPA @Modifying Annotation](https://www.baeldung.com/spring-data-jpa-modifying-annotation) - [Spring Data JPA Batch Inserts](https://www.baeldung.com/spring-data-jpa-batch-inserts) - [Batch Insert/Update with Hibernate/JPA](https://www.baeldung.com/jpa-hibernate-batch-insert-update) - [Difference Between save() and saveAndFlush() in Spring Data JPA](https://www.baeldung.com/spring-data-jpa-save-saveandflush) +- [Generate Database Schema with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-generate-db-schema) ### Eclipse Config After importing the project into Eclipse, you may see the following error: diff --git a/persistence-modules/spring-data-jpa-3/pom.xml b/persistence-modules/spring-data-jpa-crud/pom.xml similarity index 96% rename from persistence-modules/spring-data-jpa-3/pom.xml rename to persistence-modules/spring-data-jpa-crud/pom.xml index d02d089ba3..1708d14fc2 100644 --- a/persistence-modules/spring-data-jpa-3/pom.xml +++ b/persistence-modules/spring-data-jpa-crud/pom.xml @@ -4,8 +4,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-data-jpa-3 - spring-data-jpa-3 + spring-data-jpa-crud + spring-data-jpa-crud com.baeldung diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/Application.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/Application.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/Application.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/Application.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/batchinserts/DatasourceProxyBeanPostProcessor.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/batchinserts/DatasourceProxyBeanPostProcessor.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/batchinserts/DatasourceProxyBeanPostProcessor.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/batchinserts/DatasourceProxyBeanPostProcessor.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/batchinserts/model/School.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/batchinserts/model/School.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/batchinserts/model/School.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/batchinserts/model/School.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/batchinserts/model/Student.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/batchinserts/model/Student.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/batchinserts/model/Student.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/batchinserts/model/Student.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/Application.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/Application.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/Application.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/Application.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/CustomerRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/daos/CustomerRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/CustomerRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/daos/CustomerRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/impl/PersonInsertRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/daos/impl/PersonInsertRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/impl/PersonInsertRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/daos/impl/PersonInsertRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/Customer.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/domain/Customer.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/Customer.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/domain/Customer.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/Person.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/domain/Person.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/Person.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/domain/Person.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/web/controllers/CustomerController.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/web/controllers/CustomerController.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/web/controllers/CustomerController.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/boot/web/controllers/CustomerController.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/entity/Book.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/entity/Book.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/entity/Book.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/entity/Book.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/entity/Category.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/entity/Category.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/entity/Category.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/entity/Category.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/repository/BookRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/repository/BookRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/repository/BookRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/repository/BookRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/repository/CategoryRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/repository/CategoryRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/datajpadelete/repository/CategoryRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/datajpadelete/repository/CategoryRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/entity/Employee.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/entity/Employee.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/entity/Employee.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/entity/Employee.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Fruit.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/entity/Fruit.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Fruit.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/entity/Fruit.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/repository/EmployeeRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/repository/EmployeeRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/repository/EmployeeRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/repository/EmployeeRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/FruitRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/repository/FruitRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/FruitRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/repository/FruitRepository.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/AccountApplication.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/AccountApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/AccountApplication.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/AccountApplication.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/HibernateUtil.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/HibernateUtil.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/HibernateUtil.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/HibernateUtil.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/model/Account.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/model/Account.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/model/Account.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/model/Account.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/model/AccountSetting.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/model/AccountSetting.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/model/AccountSetting.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/model/AccountSetting.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/repository/AccountRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/repository/AccountRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/repository/AccountRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/repository/AccountRepository.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/repository/AccountSettingRepository.java b/persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/repository/AccountSettingRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/schemageneration/repository/AccountSettingRepository.java rename to persistence-modules/spring-data-jpa-crud/src/main/java/com/baeldung/schemageneration/repository/AccountSettingRepository.java diff --git a/persistence-modules/spring-data-jpa-crud/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-crud/src/main/resources/application.properties new file mode 100644 index 0000000000..af0df308cd --- /dev/null +++ b/persistence-modules/spring-data-jpa-crud/src/main/resources/application.properties @@ -0,0 +1,14 @@ +spring.main.allow-bean-definition-overriding=true + +spring.jpa.properties.hibernate.jdbc.batch_size=4 +spring.jpa.properties.hibernate.order_inserts=true +spring.jpa.properties.hibernate.order_updates=true +spring.jpa.properties.hibernate.generate_statistics=true + +# JPA-Schema-Generation +# Use below configuration to generate database schema create commands based on the entity models +# and export them into the create.sql file +#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create +#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql +#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-source=metadata +#spring.jpa.properties.hibernate.format_sql=true \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/src/main/resources/logback.xml b/persistence-modules/spring-data-jpa-crud/src/main/resources/logback.xml similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/resources/logback.xml rename to persistence-modules/spring-data-jpa-crud/src/main/resources/logback.xml diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/SpringContextTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/SpringContextTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/BatchInsertIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/BatchInsertIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/BatchInsertIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/BatchInsertIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/JpaBatchInsertsIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/JpaBatchInsertsIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/JpaBatchInsertsIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/JpaBatchInsertsIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/JpaNoBatchInsertsIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/JpaNoBatchInsertsIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/JpaNoBatchInsertsIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/JpaNoBatchInsertsIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/TestObjectHelper.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/TestObjectHelper.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/batchinserts/TestObjectHelper.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/batchinserts/TestObjectHelper.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/PersonInsertRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/boot/daos/PersonInsertRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/PersonInsertRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/boot/daos/PersonInsertRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/datajpadelete/DeleteFromRepositoryUnitTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/datajpadelete/DeleteFromRepositoryUnitTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/datajpadelete/DeleteFromRepositoryUnitTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/datajpadelete/DeleteFromRepositoryUnitTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/datajpadelete/DeleteInRelationshipsUnitTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/datajpadelete/DeleteInRelationshipsUnitTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/datajpadelete/DeleteInRelationshipsUnitTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/datajpadelete/DeleteInRelationshipsUnitTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/repository/EmployeeRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/repository/EmployeeRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/repository/EmployeeRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/repository/EmployeeRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/FruitRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/repository/FruitRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/FruitRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/repository/FruitRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-5/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-crud/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/resources/application-batchinserts.properties b/persistence-modules/spring-data-jpa-crud/src/test/resources/application-batchinserts.properties similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/resources/application-batchinserts.properties rename to persistence-modules/spring-data-jpa-crud/src/test/resources/application-batchinserts.properties diff --git a/persistence-modules/spring-data-jpa-3/src/test/resources/application-test.properties b/persistence-modules/spring-data-jpa-crud/src/test/resources/application-test.properties similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/resources/application-test.properties rename to persistence-modules/spring-data-jpa-crud/src/test/resources/application-test.properties diff --git a/persistence-modules/spring-data-jpa-2/src/test/resources/test-fruit-data.sql b/persistence-modules/spring-data-jpa-crud/src/test/resources/test-fruit-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/resources/test-fruit-data.sql rename to persistence-modules/spring-data-jpa-crud/src/test/resources/test-fruit-data.sql diff --git a/persistence-modules/spring-data-jpa-4/README.md b/persistence-modules/spring-data-jpa-enterprise/README.md similarity index 51% rename from persistence-modules/spring-data-jpa-4/README.md rename to persistence-modules/spring-data-jpa-enterprise/README.md index 085dfcb366..81398b1f00 100644 --- a/persistence-modules/spring-data-jpa-4/README.md +++ b/persistence-modules/spring-data-jpa-enterprise/README.md @@ -1,12 +1,17 @@ +## Spring Data JPA - Enterprise + +This module contains articles about Spring Data JPA used in enterprise applications such as transactions, sessions, naming conventions and more + ### Relevant Articles: -- [Derived Query Methods in Spring Data JPA Repositories](https://www.baeldung.com/spring-data-derived-queries) -- [LIKE Queries in Spring JPA Repositories](https://www.baeldung.com/spring-jpa-like-queries) + +- [Spring JPA – Multiple Databases](https://www.baeldung.com/spring-data-jpa-multiple-databases) +- [Spring Data Java 8 Support](https://www.baeldung.com/spring-data-java-8) +- [Pagination and Sorting using Spring Data JPA](https://www.baeldung.com/spring-data-jpa-pagination-sorting) +- [DB Integration Tests with Spring Boot and Testcontainers](https://www.baeldung.com/spring-boot-testcontainers-integration-test) - [A Guide to Spring’s Open Session In View](https://www.baeldung.com/spring-open-session-in-view) -- [Programmatic Transaction Management in Spring](https://www.baeldung.com/spring-programmatic-transaction-management) -- [JPA Entity Lifecycle Events](https://www.baeldung.com/jpa-entity-lifecycle-events) - [Working with Lazy Element Collections in JPA](https://www.baeldung.com/java-jpa-lazy-collections) -- [Calling Stored Procedures from Spring Data JPA Repositories](https://www.baeldung.com/spring-data-jpa-stored-procedures) - [Custom Naming Convention with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-custom-naming) +- [Partial Data Update with Spring Data](https://www.baeldung.com/spring-data-partial-update) ### Eclipse Config After importing the project into Eclipse, you may see the following error: @@ -16,3 +21,4 @@ This can be ignored: - Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" Or: - Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator + diff --git a/persistence-modules/spring-data-jpa-5/pom.xml b/persistence-modules/spring-data-jpa-enterprise/pom.xml similarity index 71% rename from persistence-modules/spring-data-jpa-5/pom.xml rename to persistence-modules/spring-data-jpa-enterprise/pom.xml index db58a16062..093059ad78 100644 --- a/persistence-modules/spring-data-jpa-5/pom.xml +++ b/persistence-modules/spring-data-jpa-enterprise/pom.xml @@ -3,8 +3,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-data-jpa-5 - spring-data-jpa-5 + spring-data-jpa-enterprise + spring-data-jpa-enterprise com.baeldung @@ -38,14 +38,39 @@ com.h2database h2 + + + org.hibernate + hibernate-envers + + + com.google.guava + guava + ${guava.version} + + org.mapstruct mapstruct-jdk8 ${mapstruct.version} provided + + + org.springframework.security + spring-security-test + test + + + + org.testcontainers + postgresql + ${testcontainers.version} + test + + @@ -75,6 +100,8 @@ 1.1.1.RELEASE 2.1.9.RELEASE 1.3.1.Final + 21.0 + 1.12.2
diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/Application.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/Application.java new file mode 100644 index 0000000000..3ea3d113da --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/Application.java @@ -0,0 +1,13 @@ +package com.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java new file mode 100644 index 0000000000..d9da2c53b6 --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java @@ -0,0 +1,17 @@ +package com.baeldung.boot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; + +@SpringBootApplication +@EnableJpaRepositories("com.baeldung.boot") +@EntityScan("com.baeldung.boot") +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/config/PersistenceConfiguration.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/config/PersistenceConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/config/PersistenceConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/config/PersistenceConfiguration.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/IBarCrudRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/IBarCrudRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/IBarCrudRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/IBarCrudRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/IFooDao.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/IFooDao.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/IFooDao.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/IFooDao.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/user/UserRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/user/UserRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/user/UserRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/user/UserRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Bar.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/Bar.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Bar.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/Bar.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Foo.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/Foo.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Foo.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/Foo.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/Possession.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/Possession.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/Possession.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/Possession.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/User.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/User.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/domain/User.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/domain/User.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/IBarService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/IBarService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/IBarService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/IBarService.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/IFooService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/IFooService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/IFooService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/IFooService.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/IOperations.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/IOperations.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/IOperations.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/IOperations.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/AbstractService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/AbstractService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/AbstractService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/AbstractService.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/AbstractSpringDataJpaService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/AbstractSpringDataJpaService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/AbstractSpringDataJpaService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/AbstractSpringDataJpaService.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/BarSpringDataJpaService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/BarSpringDataJpaService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/BarSpringDataJpaService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/BarSpringDataJpaService.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/FooService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/FooService.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/services/impl/FooService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/services/impl/FooService.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/ElementCollectionApplication.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/ElementCollectionApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/ElementCollectionApplication.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/ElementCollectionApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/model/Employee.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/model/Employee.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/model/Employee.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/model/Employee.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/model/Phone.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/model/Phone.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/model/Phone.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/model/Phone.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/repository/EmployeeRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/repository/EmployeeRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/elementcollection/repository/EmployeeRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/elementcollection/repository/EmployeeRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/model/product/Product.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/product/Product.java old mode 100644 new mode 100755 similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/multipledb/model/product/Product.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/product/Product.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/PossessionMultipleDB.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/UserMultipleDB.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/Person.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/Person.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/Person.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/Person.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/PersonRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/PersonRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/PersonRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/PersonRepository.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategy.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategy.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategy.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategy.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategy.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategy.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategy.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategy.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/SpringDataJpaNamingConventionApplication.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/SpringDataJpaNamingConventionApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/SpringDataJpaNamingConventionApplication.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/SpringDataJpaNamingConventionApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategy.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategy.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategy.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategy.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategy.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategy.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategy.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategy.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/OsivApplication.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/OsivApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/OsivApplication.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/OsivApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/model/BasicUser.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java similarity index 96% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/model/BasicUser.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java index 98f4e379d4..a4f8e4e5f2 100644 --- a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/model/BasicUser.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java @@ -4,7 +4,7 @@ import javax.persistence.*; import java.util.Set; @Entity -@Table(name = "users") +@Table(name = "basic_users") public class BasicUser { @Id diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/repository/BasicUserRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/repository/BasicUserRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/repository/BasicUserRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/repository/BasicUserRepository.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/service/SimpleUserService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/service/SimpleUserService.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/service/SimpleUserService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/service/SimpleUserService.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/service/UserService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/service/UserService.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/service/UserService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/service/UserService.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/web/DetailedUserDto.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/web/DetailedUserDto.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/web/DetailedUserDto.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/web/DetailedUserDto.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/web/UserController.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/web/UserController.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/osiv/web/UserController.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/web/UserController.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/PartialUpdateApplication.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/PartialUpdateApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/PartialUpdateApplication.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/PartialUpdateApplication.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/ContactPhone.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/ContactPhone.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/ContactPhone.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/ContactPhone.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/Customer.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/Customer.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/Customer.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/Customer.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/CustomerDto.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/CustomerDto.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/CustomerDto.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/CustomerDto.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/CustomerStructured.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/CustomerStructured.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/model/CustomerStructured.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/model/CustomerStructured.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/repository/ContactPhoneRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/repository/ContactPhoneRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/repository/ContactPhoneRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/repository/ContactPhoneRepository.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/repository/CustomerRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/repository/CustomerRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/repository/CustomerRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/repository/CustomerRepository.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/repository/CustomerStructuredRepository.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/repository/CustomerStructuredRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/repository/CustomerStructuredRepository.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/repository/CustomerStructuredRepository.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/service/CustomerService.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/service/CustomerService.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/service/CustomerService.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/service/CustomerService.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/util/CustomerMapper.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/util/CustomerMapper.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/main/java/com/baeldung/partialupdate/util/CustomerMapper.java rename to persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/partialupdate/util/CustomerMapper.java diff --git a/persistence-modules/spring-data-jpa-5/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-enterprise/src/main/resources/application.properties similarity index 76% rename from persistence-modules/spring-data-jpa-5/src/main/resources/application.properties rename to persistence-modules/spring-data-jpa-enterprise/src/main/resources/application.properties index f55ad438ff..29326c6061 100644 --- a/persistence-modules/spring-data-jpa-5/src/main/resources/application.properties +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/resources/application.properties @@ -10,4 +10,7 @@ spring.datasource.url=jdbc:h2:mem:baeldung #spring.jpa.properties.hibernate.format_sql=true spring.jpa.show-sql=true +spring.main.allow-bean-definition-overriding=true +#hibernate.dialect=org.hibernate.dialect.H2Dialect +spring.jpa.properties.hibernate.id.new_generator_mappings=false \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/src/main/resources/persistence-multiple-db-boot.properties b/persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db-boot.properties similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/resources/persistence-multiple-db-boot.properties rename to persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db-boot.properties diff --git a/persistence-modules/spring-data-jpa-3/src/main/resources/persistence-multiple-db.properties b/persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db.properties similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/resources/persistence-multiple-db.properties rename to persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db.properties diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringContextTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/services/AbstractServicePersistenceIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/services/AbstractServicePersistenceIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/services/AbstractServicePersistenceIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/services/AbstractServicePersistenceIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/services/FooServicePersistenceIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/services/FooServicePersistenceIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/services/FooServicePersistenceIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/services/FooServicePersistenceIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/services/SpringDataJPABarAuditIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/services/SpringDataJPABarAuditIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/services/SpringDataJPABarAuditIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/boot/services/SpringDataJPABarAuditIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/elementcollection/ElementCollectionIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/elementcollection/ElementCollectionIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/elementcollection/ElementCollectionIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/elementcollection/ElementCollectionIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyH2IntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyH2IntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyH2IntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyH2IntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyPostgresLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyPostgresLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyPostgresLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedLowerCaseNamingStrategyPostgresLiveTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyH2IntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyH2IntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyH2IntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyH2IntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyPostgresLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyPostgresLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyPostgresLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/QuotedUpperCaseNamingStrategyPostgresLiveTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyH2IntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyH2IntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyH2IntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyH2IntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyPostgresLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyPostgresLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyPostgresLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/SpringPhysicalNamingStrategyPostgresLiveTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyH2IntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyH2IntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyH2IntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyH2IntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyPostgresLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyPostgresLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyPostgresLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedLowerCaseNamingStrategyPostgresLiveTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyH2IntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyH2IntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyH2IntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyH2IntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyPostgresLiveTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyPostgresLiveTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyPostgresLiveTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/namingstrategy/UnquotedUpperCaseNamingStrategyPostgresLiveTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/osiv/UserControllerIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/osiv/UserControllerIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/osiv/UserControllerIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/osiv/UserControllerIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-5/src/test/java/com/baeldung/partialupdate/PartialUpdateUnitTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/partialupdate/PartialUpdateUnitTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/test/java/com/baeldung/partialupdate/PartialUpdateUnitTest.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/partialupdate/PartialUpdateUnitTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/util/IDUtil.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/util/IDUtil.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/util/IDUtil.java rename to persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/util/IDUtil.java diff --git a/persistence-modules/spring-data-jpa-5/src/test/resources/application-test.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/application-test.properties similarity index 100% rename from persistence-modules/spring-data-jpa-5/src/test/resources/application-test.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/application-test.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy-on-postgres.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy-on-postgres.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy-on-postgres.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy-on-postgres.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-lower-case-naming-strategy.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy-on-postgres.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy-on-postgres.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy-on-postgres.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy-on-postgres.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/quoted-upper-case-naming-strategy.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy-on-postgres.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy-on-postgres.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy-on-postgres.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy-on-postgres.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/spring-physical-naming-strategy.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy-on-postgres.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy-on-postgres.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy-on-postgres.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy-on-postgres.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-lower-case-naming-strategy.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy-on-postgres.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy-on-postgres.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy-on-postgres.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy-on-postgres.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy.properties b/persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy.properties rename to persistence-modules/spring-data-jpa-enterprise/src/test/resources/com/baeldung/namingstrategy/unquoted-upper-case-naming-strategy.properties diff --git a/persistence-modules/spring-data-jpa-filtering/README.md b/persistence-modules/spring-data-jpa-filtering/README.md new file mode 100644 index 0000000000..fe2f181154 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/README.md @@ -0,0 +1,19 @@ +## Spring Data JPA - Filtering + +This module contains articles about filtering data using Spring Data JPA + +### Relevant Articles: +- [An Advanced Tagging Implementation with JPA](https://www.baeldung.com/jpa-tagging-advanced) +- [A Simple Tagging Implementation with JPA](https://www.baeldung.com/jpa-tagging) +- [Spring Data JPA and Null Parameters](https://www.baeldung.com/spring-data-jpa-null-parameters) +- [Spring Data JPA Projections](https://www.baeldung.com/spring-data-jpa-projections) + +### Eclipse Config +After importing the project into Eclipse, you may see the following error: +"No persistence xml file found in project" + +This can be ignored: +- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" +Or: +- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator + diff --git a/persistence-modules/spring-data-jpa/pom.xml b/persistence-modules/spring-data-jpa-filtering/pom.xml similarity index 96% rename from persistence-modules/spring-data-jpa/pom.xml rename to persistence-modules/spring-data-jpa-filtering/pom.xml index ddd7e17dcd..2039ef1a37 100644 --- a/persistence-modules/spring-data-jpa/pom.xml +++ b/persistence-modules/spring-data-jpa-filtering/pom.xml @@ -2,8 +2,8 @@ 4.0.0 - spring-data-jpa - spring-data-jpa + spring-data-jpa-filtering + spring-data-jpa-filtering com.baeldung diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/Application.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/Application.java new file mode 100644 index 0000000000..3ea3d113da --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/Application.java @@ -0,0 +1,13 @@ +package com.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/config/StudentJpaConfig.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/config/StudentJpaConfig.java new file mode 100644 index 0000000000..08f37ea806 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/config/StudentJpaConfig.java @@ -0,0 +1,68 @@ +package com.baeldung.config; + +import java.util.Properties; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableJpaRepositories(basePackages = "com.baeldung.inmemory.persistence.dao") +@PropertySource("persistence-student.properties") +@EnableTransactionManagement +public class StudentJpaConfig { + + @Autowired + private Environment env; + + @Bean + public DataSource dataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName")); + dataSource.setUrl(env.getProperty("jdbc.url")); + dataSource.setUsername(env.getProperty("jdbc.user")); + dataSource.setPassword(env.getProperty("jdbc.pass")); + + return dataSource; + } + + @Bean + public LocalContainerEntityManagerFactoryBean entityManagerFactory() { + final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); + em.setDataSource(dataSource()); + em.setPackagesToScan(new String[] { "com.baeldung.inmemory.persistence.model" }); + em.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); + em.setJpaProperties(additionalProperties()); + return em; + } + + @Bean + JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { + JpaTransactionManager transactionManager = new JpaTransactionManager(); + transactionManager.setEntityManagerFactory(entityManagerFactory); + return transactionManager; + } + + final Properties additionalProperties() { + final Properties hibernateProperties = new Properties(); + + hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql")); + hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", env.getProperty("hibernate.cache.use_second_level_cache")); + hibernateProperties.setProperty("hibernate.cache.use_query_cache", env.getProperty("hibernate.cache.use_query_cache")); + + return hibernateProperties; + } +} diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Customer.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/entity/Customer.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Customer.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/entity/Customer.java diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/ManyStudentRepository.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/ManyStudentRepository.java new file mode 100644 index 0000000000..a2aa0c5780 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/ManyStudentRepository.java @@ -0,0 +1,10 @@ +package com.baeldung.inmemory.persistence.dao; + +import com.baeldung.inmemory.persistence.model.ManyStudent; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface ManyStudentRepository extends JpaRepository { + List findByManyTags_Name(String name); +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/ManyTagRepository.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/ManyTagRepository.java new file mode 100644 index 0000000000..63337f3cb9 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/ManyTagRepository.java @@ -0,0 +1,7 @@ +package com.baeldung.inmemory.persistence.dao; + +import com.baeldung.inmemory.persistence.model.ManyTag; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ManyTagRepository extends JpaRepository { +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/StudentRepository.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/StudentRepository.java new file mode 100644 index 0000000000..8ac91fbf0c --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/dao/StudentRepository.java @@ -0,0 +1,24 @@ +package com.baeldung.inmemory.persistence.dao; + +import com.baeldung.inmemory.persistence.model.Student; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; + +public interface StudentRepository extends JpaRepository { + + @Query("SELECT s FROM Student s JOIN s.tags t WHERE t = LOWER(:tag)") + List retrieveByTag(@Param("tag") String tag); + + @Query("SELECT s FROM Student s JOIN s.tags t WHERE s.name = LOWER(:name) AND t = LOWER(:tag)") + List retrieveByNameFilterByTag(@Param("name") String name, @Param("tag") String tag); + + @Query("SELECT s FROM Student s JOIN s.skillTags t WHERE t.name = LOWER(:tagName) AND t.value > :tagValue") + List retrieveByNameFilterByMinimumSkillTag(@Param("tagName") String tagName, @Param("tagValue") int tagValue); + + @Query("SELECT s FROM Student s JOIN s.kvTags t WHERE t.key = LOWER(:key)") + List retrieveByKeyTag(@Param("key") String key); + +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/KVTag.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/KVTag.java new file mode 100644 index 0000000000..1fc186f4ce --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/KVTag.java @@ -0,0 +1,34 @@ +package com.baeldung.inmemory.persistence.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class KVTag { + private String key; + private String value; + + public KVTag() { + } + + public KVTag(String key, String value) { + super(); + this.key = key; + this.value = value; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/LocationTag.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/LocationTag.java new file mode 100644 index 0000000000..b12ad9fbd1 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/LocationTag.java @@ -0,0 +1,40 @@ +package com.baeldung.inmemory.persistence.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class LocationTag { + private String name; + private int xPos; + private int yPos; + + public LocationTag() { + } + + public LocationTag(String name, int xPos, int yPos) { + super(); + this.name = name; + this.xPos = xPos; + this.yPos = yPos; + } + + public String getName() { + return name; + } + + public int getxPos() { + return xPos; + } + + public void setxPos(int xPos) { + this.xPos = xPos; + } + + public int getyPos() { + return yPos; + } + + public void setyPos(int yPos) { + this.yPos = yPos; + } +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/ManyStudent.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/ManyStudent.java new file mode 100644 index 0000000000..190740d582 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/ManyStudent.java @@ -0,0 +1,33 @@ +package com.baeldung.inmemory.persistence.model; + +import javax.persistence.*; +import java.util.HashSet; +import java.util.Set; + +@Entity +public class ManyStudent { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + private String name; + + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "manystudent_manytags", joinColumns = @JoinColumn(name = "manystudent_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "manytag_id", referencedColumnName = "id")) + private Set manyTags = new HashSet<>(); + + public ManyStudent() { + } + + public ManyStudent(String name) { + this.name = name; + } + + public Set getManyTags() { + return manyTags; + } + + public void setManyTags(Set manyTags) { + this.manyTags.addAll(manyTags); + } +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/ManyTag.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/ManyTag.java new file mode 100644 index 0000000000..5af898f7df --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/ManyTag.java @@ -0,0 +1,40 @@ +package com.baeldung.inmemory.persistence.model; + +import javax.persistence.*; +import java.util.HashSet; +import java.util.Set; + +@Entity +public class ManyTag { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + private String name; + + @ManyToMany(mappedBy = "manyTags") + private Set students = new HashSet<>(); + + public ManyTag() { + } + + public ManyTag(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set getStudents() { + return students; + } + + public void setStudents(Set students) { + this.students.addAll(students); + } +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/SkillTag.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/SkillTag.java new file mode 100644 index 0000000000..738b5d0b36 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/SkillTag.java @@ -0,0 +1,30 @@ +package com.baeldung.inmemory.persistence.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class SkillTag { + private String name; + private int value; + + public SkillTag() { + } + + public SkillTag(String name, int value) { + super(); + this.name = name; + this.value = value; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getName() { + return name; + } +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/Student.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/Student.java new file mode 100644 index 0000000000..f0e824e165 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/inmemory/persistence/model/Student.java @@ -0,0 +1,74 @@ +package com.baeldung.inmemory.persistence.model; + +import java.util.ArrayList; +import java.util.List; +import javax.persistence.ElementCollection; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class Student { + + @Id + private long id; + private String name; + + @ElementCollection + private List tags = new ArrayList<>(); + + @ElementCollection + private List skillTags = new ArrayList<>(); + + @ElementCollection + private List kvTags = new ArrayList<>(); + + public Student() { + } + + public Student(long id, String name) { + super(); + this.id = id; + this.name = name; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags.addAll(tags); + } + + public List getSkillTags() { + return skillTags; + } + + public void setSkillTags(List skillTags) { + this.skillTags.addAll(skillTags); + } + + public List getKVTags() { + return this.kvTags; + } + + public void setKVTags(List kvTags) { + this.kvTags.addAll(kvTags); + } + +} diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/model/Address.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/model/Address.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/model/Address.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/model/Address.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/model/Person.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/model/Person.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/model/Person.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/model/Person.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/repository/AddressRepository.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/repository/AddressRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/repository/AddressRepository.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/repository/AddressRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/repository/PersonRepository.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/repository/PersonRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/repository/PersonRepository.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/repository/PersonRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/view/AddressView.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/view/AddressView.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/view/AddressView.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/view/AddressView.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/view/PersonDto.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/view/PersonDto.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/view/PersonDto.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/view/PersonDto.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/view/PersonView.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/view/PersonView.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/projection/view/PersonView.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/projection/view/PersonView.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/CustomerRepository.java b/persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/repository/CustomerRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/CustomerRepository.java rename to persistence-modules/spring-data-jpa-filtering/src/main/java/com/baeldung/repository/CustomerRepository.java diff --git a/persistence-modules/spring-data-jpa-filtering/src/main/resources/persistence-student.properties b/persistence-modules/spring-data-jpa-filtering/src/main/resources/persistence-student.properties new file mode 100644 index 0000000000..d4c82420de --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/main/resources/persistence-student.properties @@ -0,0 +1,11 @@ +jdbc.driverClassName=com.mysql.cj.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/myDb +jdbc.user=tutorialuser +jdbc.pass=tutorialpass + +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create-drop + +hibernate.cache.use_second_level_cache=false +hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/persistence/repository/AdvancedTaggingIntegrationTest.java b/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/persistence/repository/AdvancedTaggingIntegrationTest.java new file mode 100644 index 0000000000..e98c1fa4a6 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/persistence/repository/AdvancedTaggingIntegrationTest.java @@ -0,0 +1,83 @@ +package com.baeldung.persistence.repository; + +import com.baeldung.config.StudentJpaConfig; +import com.baeldung.inmemory.persistence.dao.ManyStudentRepository; +import com.baeldung.inmemory.persistence.dao.ManyTagRepository; +import com.baeldung.inmemory.persistence.dao.StudentRepository; +import com.baeldung.inmemory.persistence.model.ManyStudent; +import com.baeldung.inmemory.persistence.model.ManyTag; +import com.baeldung.inmemory.persistence.model.SkillTag; +import com.baeldung.inmemory.persistence.model.Student; +import com.baeldung.inmemory.persistence.model.KVTag; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { StudentJpaConfig.class }, loader = AnnotationConfigContextLoader.class) +@Transactional +@DirtiesContext +public class AdvancedTaggingIntegrationTest { + @Resource + private StudentRepository studentRepository; + + @Resource + private ManyStudentRepository manyStudentRepository; + + @Resource + private ManyTagRepository manyTagRepository; + + @Test + public void givenStudentWithSkillTags_whenSave_thenGetByNameAndSkillTag() { + Student student = new Student(1, "Will"); + SkillTag skill1 = new SkillTag("java", 5); + student.setSkillTags(Arrays.asList(skill1)); + studentRepository.save(student); + + Student student2 = new Student(2, "Joe"); + SkillTag skill2 = new SkillTag("java", 1); + student2.setSkillTags(Arrays.asList(skill2)); + studentRepository.save(student2); + + List students = studentRepository.retrieveByNameFilterByMinimumSkillTag("java", 3); + assertEquals("size incorrect", 1, students.size()); + } + + @Test + public void givenStudentWithKVTags_whenSave_thenGetByTagOk() { + Student student = new Student(0, "John"); + student.setKVTags(Arrays.asList(new KVTag("department", "computer science"))); + studentRepository.save(student); + + Student student2 = new Student(1, "James"); + student2.setKVTags(Arrays.asList(new KVTag("department", "humanities"))); + studentRepository.save(student2); + + List students = studentRepository.retrieveByKeyTag("department"); + assertEquals("size incorrect", 2, students.size()); + } + + @Test + public void givenStudentWithManyTags_whenSave_theyGetByTagOk() { + ManyTag tag = new ManyTag("full time"); + manyTagRepository.save(tag); + + ManyStudent student = new ManyStudent("John"); + student.setManyTags(Collections.singleton(tag)); + manyStudentRepository.save(student); + + List students = manyStudentRepository.findByManyTags_Name("full time"); + assertEquals("size incorrect", 1, students.size()); + } +} diff --git a/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/persistence/repository/InMemoryDBIntegrationTest.java b/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/persistence/repository/InMemoryDBIntegrationTest.java new file mode 100644 index 0000000000..d8d867792e --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/persistence/repository/InMemoryDBIntegrationTest.java @@ -0,0 +1,84 @@ +package com.baeldung.persistence.repository; + +import com.baeldung.config.StudentJpaConfig; +import com.baeldung.inmemory.persistence.dao.StudentRepository; +import com.baeldung.inmemory.persistence.model.Student; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { StudentJpaConfig.class }, loader = AnnotationConfigContextLoader.class) +@Transactional +@DirtiesContext +public class InMemoryDBIntegrationTest { + + @Resource + private StudentRepository studentRepository; + + private static final long ID = 1; + private static final String NAME = "john"; + + @Test + public void givenStudent_whenSave_thenGetOk() { + Student student = new Student(ID, NAME); + studentRepository.save(student); + + Student student2 = studentRepository.findById(ID).get(); + assertEquals("name incorrect", NAME, student2.getName()); + } + + @Test + public void givenStudentWithTags_whenSave_thenGetByTagOk() { + Student student = new Student(ID, NAME); + student.setTags(Arrays.asList("full time", "computer science")); + studentRepository.save(student); + + Student student2 = studentRepository.retrieveByTag("full time").get(0); + assertEquals("name incorrect", NAME, student2.getName()); + } + + @Test + public void givenMultipleStudentsWithTags_whenSave_thenGetByTagReturnsCorrectCount() { + Student student = new Student(0, "Larry"); + student.setTags(Arrays.asList("full time", "computer science")); + studentRepository.save(student); + + Student student2 = new Student(1, "Curly"); + student2.setTags(Arrays.asList("part time", "rocket science")); + studentRepository.save(student2); + + Student student3 = new Student(2, "Moe"); + student3.setTags(Arrays.asList("full time", "philosophy")); + studentRepository.save(student3); + + Student student4 = new Student(3, "Shemp"); + student4.setTags(Arrays.asList("part time", "mathematics")); + studentRepository.save(student4); + + List students = studentRepository.retrieveByTag("full time"); + assertEquals("size incorrect", 2, students.size()); + } + + @Test + public void givenStudentWithTags_whenSave_thenGetByNameAndTagOk() { + Student student = new Student(ID, NAME); + student.setTags(Arrays.asList("full time", "computer science")); + studentRepository.save(student); + + Student student2 = studentRepository.retrieveByNameFilterByTag("John", "full time").get(0); + assertEquals("name incorrect", NAME, student2.getName()); + } + +} diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/projection/JpaProjectionIntegrationTest.java b/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/projection/JpaProjectionIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/projection/JpaProjectionIntegrationTest.java rename to persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/projection/JpaProjectionIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/CustomerRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/repository/CustomerRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/CustomerRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-filtering/src/test/java/com/baeldung/repository/CustomerRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-filtering/src/test/resources/persistence-student.properties b/persistence-modules/spring-data-jpa-filtering/src/test/resources/persistence-student.properties new file mode 100644 index 0000000000..3b6b580630 --- /dev/null +++ b/persistence-modules/spring-data-jpa-filtering/src/test/resources/persistence-student.properties @@ -0,0 +1,9 @@ +jdbc.driverClassName=org.h2.Driver +jdbc.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1 + +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create + +hibernate.cache.use_second_level_cache=false +hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-2/src/test/resources/projection-clean-up-data.sql b/persistence-modules/spring-data-jpa-filtering/src/test/resources/projection-clean-up-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/resources/projection-clean-up-data.sql rename to persistence-modules/spring-data-jpa-filtering/src/test/resources/projection-clean-up-data.sql diff --git a/persistence-modules/spring-data-jpa-2/src/test/resources/projection-insert-data.sql b/persistence-modules/spring-data-jpa-filtering/src/test/resources/projection-insert-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/resources/projection-insert-data.sql rename to persistence-modules/spring-data-jpa-filtering/src/test/resources/projection-insert-data.sql diff --git a/persistence-modules/spring-data-jpa-query/README.md b/persistence-modules/spring-data-jpa-query/README.md new file mode 100644 index 0000000000..bfff3c0ef3 --- /dev/null +++ b/persistence-modules/spring-data-jpa-query/README.md @@ -0,0 +1,22 @@ +## Spring Data JPA - Query + +This module contains articles about querying data using Spring Data JPA + +### Relevant Articles: +- [Query Entities by Dates and Times with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-query-by-date) +- [The Exists Query in Spring Data](https://www.baeldung.com/spring-data-exists-query) +- [Customizing the Result of JPA Queries with Aggregation Functions](https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions) +- [Limiting Query Results with JPA and Spring Data JPA](https://www.baeldung.com/jpa-limit-query-results) +- [Sorting Query Results with Spring Data](https://www.baeldung.com/spring-data-sorting) +- [Spring Data JPA Query by Example](https://www.baeldung.com/spring-data-query-by-example) +- [JPA Join Types](https://www.baeldung.com/jpa-join-types) +- [Spring Data JPA and Named Entity Graphs](https://www.baeldung.com/spring-data-jpa-named-entity-graphs) + +### Eclipse Config +After importing the project into Eclipse, you may see the following error: +"No persistence xml file found in project" + +This can be ignored: +- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" +Or: +- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator diff --git a/persistence-modules/spring-data-jpa-2/pom.xml b/persistence-modules/spring-data-jpa-query/pom.xml similarity index 91% rename from persistence-modules/spring-data-jpa-2/pom.xml rename to persistence-modules/spring-data-jpa-query/pom.xml index 838327de89..71498143c3 100644 --- a/persistence-modules/spring-data-jpa-2/pom.xml +++ b/persistence-modules/spring-data-jpa-query/pom.xml @@ -3,8 +3,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-data-jpa-2 - spring-data-jpa-2 + spring-data-jpa-query + spring-data-jpa-query com.baeldung diff --git a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/Application.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/Application.java new file mode 100644 index 0000000000..3ea3d113da --- /dev/null +++ b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/Application.java @@ -0,0 +1,13 @@ +package com.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/Comment.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Comment.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/Comment.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Comment.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/Post.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Post.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/Post.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Post.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ArticleRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/daos/ArticleRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ArticleRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/daos/ArticleRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Article.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/domain/Article.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Article.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/domain/Article.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/CustomPassengerRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/CustomPassengerRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/CustomPassengerRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/CustomPassengerRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/Passenger.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/Passenger.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/Passenger.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/Passenger.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/PassengerRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/PassengerRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/PassengerRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/PassengerRepository.java diff --git a/persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/PassengerRepositoryImpl.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/PassengerRepositoryImpl.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/main/java/com/baeldung/boot/passenger/PassengerRepositoryImpl.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/boot/passenger/PassengerRepositoryImpl.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/model/Characteristic.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/model/Characteristic.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/model/Characteristic.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/model/Characteristic.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/model/Item.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/model/Item.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/model/Item.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/model/Item.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/repository/CharacteristicsRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/repository/CharacteristicsRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/repository/CharacteristicsRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/repository/CharacteristicsRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/repository/ItemRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/repository/ItemRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entitygraph/repository/ItemRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/entitygraph/repository/ItemRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/exists/Car.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/exists/Car.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/exists/Car.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/exists/Car.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/exists/CarRepository.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/exists/CarRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/exists/CarRepository.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/exists/CarRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/joins/model/Department.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/joins/model/Department.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/joins/model/Department.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/joins/model/Department.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/joins/model/Employee.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/joins/model/Employee.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/joins/model/Employee.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/joins/model/Employee.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/joins/model/Phone.java b/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/joins/model/Phone.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/joins/model/Phone.java rename to persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/joins/model/Phone.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/resources/apple-fruit-data.xml b/persistence-modules/spring-data-jpa-query/src/main/resources/apple-fruit-data.xml similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/resources/apple-fruit-data.xml rename to persistence-modules/spring-data-jpa-query/src/main/resources/apple-fruit-data.xml diff --git a/persistence-modules/spring-data-jpa-2/src/main/resources/application-joins.properties b/persistence-modules/spring-data-jpa-query/src/main/resources/application-joins.properties similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/resources/application-joins.properties rename to persistence-modules/spring-data-jpa-query/src/main/resources/application-joins.properties diff --git a/persistence-modules/spring-data-jpa-2/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-query/src/main/resources/application.properties similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/resources/application.properties rename to persistence-modules/spring-data-jpa-query/src/main/resources/application.properties diff --git a/persistence-modules/spring-data-jpa-2/src/main/resources/db/import_joins.sql b/persistence-modules/spring-data-jpa-query/src/main/resources/db/import_joins.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/resources/db/import_joins.sql rename to persistence-modules/spring-data-jpa-query/src/main/resources/db/import_joins.sql diff --git a/persistence-modules/spring-data-jpa-2/src/main/resources/fruit-data.json b/persistence-modules/spring-data-jpa-query/src/main/resources/fruit-data.json similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/resources/fruit-data.json rename to persistence-modules/spring-data-jpa-query/src/main/resources/fruit-data.json diff --git a/persistence-modules/spring-data-jpa-2/src/main/resources/guava-fruit-data.xml b/persistence-modules/spring-data-jpa-query/src/main/resources/guava-fruit-data.xml similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/resources/guava-fruit-data.xml rename to persistence-modules/spring-data-jpa-query/src/main/resources/guava-fruit-data.xml diff --git a/persistence-modules/spring-data-jpa-query/src/main/resources/import_entities.sql b/persistence-modules/spring-data-jpa-query/src/main/resources/import_entities.sql new file mode 100644 index 0000000000..4fe18bf4aa --- /dev/null +++ b/persistence-modules/spring-data-jpa-query/src/main/resources/import_entities.sql @@ -0,0 +1,3 @@ +insert into Article(id, publication_date, publication_time, creation_date_time) values(1, TO_DATE('01/01/2018', 'DD/MM/YYYY'), TO_DATE('15:00', 'HH24:MI'), TO_DATE('31/12/2017 07:30', 'DD/MM/YYYY HH24:MI')); +insert into Article(id, publication_date, publication_time, creation_date_time) values(2, TO_DATE('01/01/2018', 'DD/MM/YYYY'), TO_DATE('15:30', 'HH24:MI'), TO_DATE('15/12/2017 08:00', 'DD/MM/YYYY HH24:MI')); +insert into Article(id, publication_date, publication_time, creation_date_time) values(3, TO_DATE('15/12/2017', 'DD/MM/YYYY'), TO_DATE('16:00', 'HH24:MI'), TO_DATE('01/12/2017 13:45', 'DD/MM/YYYY HH24:MI')); \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/aggregation/SpringDataAggregateIntegrationTest.java b/persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/aggregation/SpringDataAggregateIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/aggregation/SpringDataAggregateIntegrationTest.java rename to persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/aggregation/SpringDataAggregateIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/ArticleRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/boot/daos/ArticleRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/ArticleRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/boot/daos/ArticleRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/passenger/PassengerRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/boot/passenger/PassengerRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-3/src/test/java/com/baeldung/boot/passenger/PassengerRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/boot/passenger/PassengerRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/entitygraph/EntityGraphIntegrationTest.java b/persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/entitygraph/EntityGraphIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/entitygraph/EntityGraphIntegrationTest.java rename to persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/entitygraph/EntityGraphIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/exists/CarRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/exists/CarRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/exists/CarRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/exists/CarRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/joins/JpaJoinsIntegrationTest.java b/persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/joins/JpaJoinsIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/joins/JpaJoinsIntegrationTest.java rename to persistence-modules/spring-data-jpa-query/src/test/java/com/baeldung/joins/JpaJoinsIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/resources/entitygraph-data.sql b/persistence-modules/spring-data-jpa-query/src/test/resources/entitygraph-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/resources/entitygraph-data.sql rename to persistence-modules/spring-data-jpa-query/src/test/resources/entitygraph-data.sql diff --git a/persistence-modules/spring-data-jpa-query/src/test/resources/projection-clean-up-data.sql b/persistence-modules/spring-data-jpa-query/src/test/resources/projection-clean-up-data.sql new file mode 100644 index 0000000000..d34f6f0636 --- /dev/null +++ b/persistence-modules/spring-data-jpa-query/src/test/resources/projection-clean-up-data.sql @@ -0,0 +1,2 @@ +DELETE FROM address; +DELETE FROM person; \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-query/src/test/resources/projection-insert-data.sql b/persistence-modules/spring-data-jpa-query/src/test/resources/projection-insert-data.sql new file mode 100644 index 0000000000..544dcc4b88 --- /dev/null +++ b/persistence-modules/spring-data-jpa-query/src/test/resources/projection-insert-data.sql @@ -0,0 +1,2 @@ +INSERT INTO person(id,first_name,last_name) VALUES (1,'John','Doe'); +INSERT INTO address(id,person_id,state,city,street,zip_code) VALUES (1,1,'CA', 'Los Angeles', 'Standford Ave', '90001'); \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-2/src/test/resources/test-aggregation-data.sql b/persistence-modules/spring-data-jpa-query/src/test/resources/test-aggregation-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/resources/test-aggregation-data.sql rename to persistence-modules/spring-data-jpa-query/src/test/resources/test-aggregation-data.sql diff --git a/persistence-modules/spring-data-jpa-query/src/test/resources/test-fruit-data.sql b/persistence-modules/spring-data-jpa-query/src/test/resources/test-fruit-data.sql new file mode 100644 index 0000000000..d99f42e5a7 --- /dev/null +++ b/persistence-modules/spring-data-jpa-query/src/test/resources/test-fruit-data.sql @@ -0,0 +1,6 @@ +truncate table fruit; + +insert into fruit(id,name,color) values (1,'apple','red'); +insert into fruit(id,name,color) values (2,'custard apple','green'); +insert into fruit(id,name,color) values (3,'mango','yellow'); +insert into fruit(id,name,color) values (4,'guava','green'); \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/README.md b/persistence-modules/spring-data-jpa-repo/README.md similarity index 53% rename from persistence-modules/spring-data-jpa/README.md rename to persistence-modules/spring-data-jpa-repo/README.md index 1c43edf42b..284a7ac2b5 100644 --- a/persistence-modules/spring-data-jpa/README.md +++ b/persistence-modules/spring-data-jpa-repo/README.md @@ -1,18 +1,16 @@ -========= +## Spring Data JPA - Repo -## Spring Data JPA Example Project +This module contains articles about repositories in Spring Data JPA ### Relevant Articles: -- [Spring JPA – Multiple Databases](https://www.baeldung.com/spring-data-jpa-multiple-databases) -- [Spring Data JPA – Adding a Method in All Repositories](https://www.baeldung.com/spring-data-jpa-method-in-all-repositories) -- [An Advanced Tagging Implementation with JPA](https://www.baeldung.com/jpa-tagging-advanced) -- [Spring Data Annotations](https://www.baeldung.com/spring-data-annotations) -- [Spring Data Java 8 Support](https://www.baeldung.com/spring-data-java-8) -- [A Simple Tagging Implementation with JPA](https://www.baeldung.com/jpa-tagging) -- [Spring Data Composable Repositories](https://www.baeldung.com/spring-data-composable-repositories) -- [Query Entities by Dates and Times with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-query-by-date) -- [DDD Aggregates and @DomainEvents](https://www.baeldung.com/spring-data-ddd) +- [Case Insensitive Queries with Spring Data Repository](https://www.baeldung.com/spring-data-case-insensitive-queries) +- [Derived Query Methods in Spring Data JPA Repositories](https://www.baeldung.com/spring-data-derived-queries) +- [LIKE Queries in Spring JPA Repositories](https://www.baeldung.com/spring-jpa-like-queries) - [Spring Data – CrudRepository save() Method](https://www.baeldung.com/spring-data-crud-repository-save) +- [Spring Data JPA – Adding a Method in All Repositories](https://www.baeldung.com/spring-data-jpa-method-in-all-repositories) +- [Spring Data Composable Repositories](https://www.baeldung.com/spring-data-composable-repositories) +- [Spring Data JPA Repository Populators](https://www.baeldung.com/spring-data-jpa-repository-populators) +- [Calling Stored Procedures from Spring Data JPA Repositories](https://www.baeldung.com/spring-data-jpa-stored-procedures) ### Eclipse Config After importing the project into Eclipse, you may see the following error: @@ -22,4 +20,3 @@ This can be ignored: - Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" Or: - Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator - diff --git a/persistence-modules/spring-data-jpa-4/pom.xml b/persistence-modules/spring-data-jpa-repo/pom.xml similarity index 85% rename from persistence-modules/spring-data-jpa-4/pom.xml rename to persistence-modules/spring-data-jpa-repo/pom.xml index 71fc21527f..984bc1bdff 100644 --- a/persistence-modules/spring-data-jpa-4/pom.xml +++ b/persistence-modules/spring-data-jpa-repo/pom.xml @@ -2,8 +2,8 @@ 4.0.0 - spring-data-jpa-4 - spring-data-jpa-4 + spring-data-jpa-repo + spring-data-jpa-repo com.baeldung @@ -42,6 +42,11 @@ com.h2database h2 + + + org.springframework + spring-oxm + \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/Application.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/Application.java similarity index 94% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/Application.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/Application.java index c66921a3ca..47a18b557f 100644 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/Application.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/Application.java @@ -1,4 +1,4 @@ -package com.baeldung.boot; +package com.baeldung; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/InventoryRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/InventoryRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/InventoryRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/InventoryRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/LocationRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/LocationRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/LocationRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/LocationRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/StoreRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/StoreRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/StoreRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/StoreRepository.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Item.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Item.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Item.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Item.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/ItemType.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/ItemType.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/ItemType.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/ItemType.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/KVTag.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/KVTag.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/KVTag.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/KVTag.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Location.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Location.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Location.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Location.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/MerchandiseEntity.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/MerchandiseEntity.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/MerchandiseEntity.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/MerchandiseEntity.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/SkillTag.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/SkillTag.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/SkillTag.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/SkillTag.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Store.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Store.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Store.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Store.java diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Student.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Student.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Student.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Student.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/config/JpaPopulators.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/config/JpaPopulators.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/config/JpaPopulators.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/config/JpaPopulators.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/derivedquery/QueryApplication.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/QueryApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/derivedquery/QueryApplication.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/QueryApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/derivedquery/entity/User.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/entity/User.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/derivedquery/entity/User.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/entity/User.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Fruit.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Fruit.java new file mode 100644 index 0000000000..d45ac33db8 --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Fruit.java @@ -0,0 +1,40 @@ +package com.baeldung.entity; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +@Entity +public class Fruit { + + @Id + private long id; + private String name; + private String color; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + +} diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Passenger.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Passenger.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Passenger.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Passenger.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Song.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Song.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/entity/Song.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Song.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/like/LikeApplication.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/like/LikeApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/like/LikeApplication.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/like/LikeApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/like/model/Movie.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/like/model/Movie.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/like/model/Movie.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/like/model/Movie.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/like/repository/MovieRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/like/repository/MovieRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/like/repository/MovieRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/like/repository/MovieRepository.java diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FruitRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FruitRepository.java new file mode 100644 index 0000000000..5055252adf --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FruitRepository.java @@ -0,0 +1,27 @@ +package com.baeldung.repository; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import com.baeldung.entity.Fruit; + +@Repository +public interface FruitRepository extends JpaRepository { + + Long deleteByName(String name); + + List deleteByColor(String color); + + Long removeByName(String name); + + List removeByColor(String color); + + @Modifying + @Query("delete from Fruit f where f.name=:name or f.color=:color") + int deleteFruits(@Param("name") String name, @Param("color") String color); +} diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/PassengerRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PassengerRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/PassengerRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PassengerRepository.java diff --git a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/SongRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/SongRepository.java similarity index 99% rename from persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/SongRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/SongRepository.java index ad887fe680..6faed411d3 100644 --- a/persistence-modules/spring-data-jpa-2/src/main/java/com/baeldung/repository/SongRepository.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/SongRepository.java @@ -1,10 +1,11 @@ package com.baeldung.repository; -import com.baeldung.entity.Song; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import java.util.List; +import com.baeldung.entity.Song; @Repository public interface SongRepository extends JpaRepository { diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/controller/CarController.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/controller/CarController.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/controller/CarController.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/controller/CarController.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/entity/Car.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/entity/Car.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/entity/Car.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/entity/Car.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/service/CarService.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/service/CarService.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/service/CarService.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/storedprocedure/service/CarService.java diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/apple-fruit-data.xml b/persistence-modules/spring-data-jpa-repo/src/main/resources/apple-fruit-data.xml new file mode 100644 index 0000000000..d87ae28f1e --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/src/main/resources/apple-fruit-data.xml @@ -0,0 +1,7 @@ + + + + 1 + apple + red + diff --git a/persistence-modules/spring-data-jpa-4/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-repo/src/main/resources/application.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/resources/application.properties rename to persistence-modules/spring-data-jpa-repo/src/main/resources/application.properties diff --git a/persistence-modules/spring-data-jpa-4/src/main/resources/car-mysql.sql b/persistence-modules/spring-data-jpa-repo/src/main/resources/car-mysql.sql similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/main/resources/car-mysql.sql rename to persistence-modules/spring-data-jpa-repo/src/main/resources/car-mysql.sql diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json b/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json new file mode 100644 index 0000000000..6dc44e2586 --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json @@ -0,0 +1,14 @@ +[ + { + "_class": "com.baeldung.entity.Fruit", + "name": "apple", + "color": "red", + "id": 1 + }, + { + "_class": "com.baeldung.entity.Fruit", + "name": "guava", + "color": "green", + "id": 2 + } +] \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/guava-fruit-data.xml b/persistence-modules/spring-data-jpa-repo/src/main/resources/guava-fruit-data.xml new file mode 100644 index 0000000000..ffd75bb4bb --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/src/main/resources/guava-fruit-data.xml @@ -0,0 +1,7 @@ + + + + 2 + guava + green + diff --git a/persistence-modules/spring-data-jpa/src/main/resources/import_entities.sql b/persistence-modules/spring-data-jpa-repo/src/main/resources/import_entities.sql similarity index 69% rename from persistence-modules/spring-data-jpa/src/main/resources/import_entities.sql rename to persistence-modules/spring-data-jpa-repo/src/main/resources/import_entities.sql index deb9d07f05..6282fd1481 100644 --- a/persistence-modules/spring-data-jpa/src/main/resources/import_entities.sql +++ b/persistence-modules/spring-data-jpa-repo/src/main/resources/import_entities.sql @@ -1,7 +1,3 @@ -insert into Article(id, publication_date, publication_time, creation_date_time) values(1, TO_DATE('01/01/2018', 'DD/MM/YYYY'), TO_DATE('15:00', 'HH24:MI'), TO_DATE('31/12/2017 07:30', 'DD/MM/YYYY HH24:MI')); -insert into Article(id, publication_date, publication_time, creation_date_time) values(2, TO_DATE('01/01/2018', 'DD/MM/YYYY'), TO_DATE('15:30', 'HH24:MI'), TO_DATE('15/12/2017 08:00', 'DD/MM/YYYY HH24:MI')); -insert into Article(id, publication_date, publication_time, creation_date_time) values(3, TO_DATE('15/12/2017', 'DD/MM/YYYY'), TO_DATE('16:00', 'HH24:MI'), TO_DATE('01/12/2017 13:45', 'DD/MM/YYYY HH24:MI')); - insert into location (id, country, city) values (1, 'Country X', 'City One'); insert into location (id, country, city) values (2, 'Country X', 'City Two'); insert into location (id, country, city) values (3, 'Country X', 'City Three'); diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java similarity index 97% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java index 71f92c94ab..b367b5fdca 100644 --- a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java @@ -13,7 +13,7 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.boot.Application; +import com.baeldung.Application; import com.baeldung.boot.domain.Student; @RunWith(SpringRunner.class) diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java similarity index 98% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java index 5d73e261a4..22e2c81739 100644 --- a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java @@ -12,7 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.boot.Application; +import com.baeldung.Application; import com.baeldung.boot.domain.MerchandiseEntity; @RunWith(SpringRunner.class) diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/like/MovieRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/like/MovieRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/java/com/baeldung/like/MovieRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/like/MovieRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java similarity index 99% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java index f96f0249d7..37fcef7dab 100644 --- a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java @@ -1,6 +1,14 @@ package com.baeldung.repository; -import com.baeldung.entity.Passenger; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.core.IsNot.not; + +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -8,13 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.test.context.junit4.SpringRunner; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import java.util.List; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.core.IsNot.not; +import com.baeldung.entity.Passenger; @DataJpaTest @RunWith(SpringRunner.class) diff --git a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java similarity index 97% rename from persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java index 14912a4ecb..19362acd44 100644 --- a/persistence-modules/spring-data-jpa-2/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java @@ -13,6 +13,7 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import com.baeldung.entity.Song; +import com.baeldung.repository.SongRepository; @RunWith(SpringRunner.class) @SpringBootTest diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/application-test.properties b/persistence-modules/spring-data-jpa-repo/src/test/resources/application-test.properties similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/application-test.properties rename to persistence-modules/spring-data-jpa-repo/src/test/resources/application-test.properties diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/test-movie-cleanup.sql b/persistence-modules/spring-data-jpa-repo/src/test/resources/test-movie-cleanup.sql similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/test-movie-cleanup.sql rename to persistence-modules/spring-data-jpa-repo/src/test/resources/test-movie-cleanup.sql diff --git a/persistence-modules/spring-data-jpa-4/src/test/resources/test-movie-data.sql b/persistence-modules/spring-data-jpa-repo/src/test/resources/test-movie-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-4/src/test/resources/test-movie-data.sql rename to persistence-modules/spring-data-jpa-repo/src/test/resources/test-movie-data.sql diff --git a/persistence-modules/spring-data-jpa-2/src/test/resources/test-song-data.sql b/persistence-modules/spring-data-jpa-repo/src/test/resources/test-song-data.sql similarity index 100% rename from persistence-modules/spring-data-jpa-2/src/test/resources/test-song-data.sql rename to persistence-modules/spring-data-jpa-repo/src/test/resources/test-song-data.sql diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/PossessionRepository.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/PossessionRepository.java deleted file mode 100644 index e102754c18..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/PossessionRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.baeldung.boot.daos.user; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.baeldung.boot.domain.Possession; - -public interface PossessionRepository extends JpaRepository { - -} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepository.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepository.java deleted file mode 100644 index 53f692ff28..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepository.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.baeldung.boot.daos.user; - -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; - -import com.baeldung.boot.domain.User; - -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.stream.Stream; - -public interface UserRepository extends JpaRepository , UserRepositoryCustom{ - - Stream findAllByName(String name); - - @Query("SELECT u FROM User u WHERE u.status = 1") - Collection findAllActiveUsers(); - - @Query("select u from User u where u.email like '%@gmail.com'") - List findUsersWithGmailAddress(); - - @Query(value = "SELECT * FROM Users u WHERE u.status = 1", nativeQuery = true) - Collection findAllActiveUsersNative(); - - @Query("SELECT u FROM User u WHERE u.status = ?1") - User findUserByStatus(Integer status); - - @Query(value = "SELECT * FROM Users u WHERE u.status = ?1", nativeQuery = true) - User findUserByStatusNative(Integer status); - - @Query("SELECT u FROM User u WHERE u.status = ?1 and u.name = ?2") - User findUserByStatusAndName(Integer status, String name); - - @Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name") - User findUserByStatusAndNameNamedParams(@Param("status") Integer status, @Param("name") String name); - - @Query(value = "SELECT * FROM Users u WHERE u.status = :status AND u.name = :name", nativeQuery = true) - User findUserByStatusAndNameNamedParamsNative(@Param("status") Integer status, @Param("name") String name); - - @Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name") - User findUserByUserStatusAndUserName(@Param("status") Integer userStatus, @Param("name") String userName); - - @Query("SELECT u FROM User u WHERE u.name like ?1%") - User findUserByNameLike(String name); - - @Query("SELECT u FROM User u WHERE u.name like :name%") - User findUserByNameLikeNamedParam(@Param("name") String name); - - @Query(value = "SELECT * FROM users u WHERE u.name LIKE ?1%", nativeQuery = true) - User findUserByNameLikeNative(String name); - - @Query(value = "SELECT u FROM User u") - List findAllUsers(Sort sort); - - @Query(value = "SELECT u FROM User u ORDER BY id") - Page findAllUsersWithPagination(Pageable pageable); - - @Query(value = "SELECT * FROM Users ORDER BY id", countQuery = "SELECT count(*) FROM Users", nativeQuery = true) - Page findAllUsersWithPaginationNative(Pageable pageable); - - @Modifying - @Query("update User u set u.status = :status where u.name = :name") - int updateUserSetStatusForName(@Param("status") Integer status, @Param("name") String name); - - @Modifying - @Query(value = "UPDATE Users u SET u.status = ? WHERE u.name = ?", nativeQuery = true) - int updateUserSetStatusForNameNative(Integer status, String name); - - @Query(value = "INSERT INTO Users (name, age, email, status, active) VALUES (:name, :age, :email, :status, :active)", nativeQuery = true) - @Modifying - void insertUser(@Param("name") String name, @Param("age") Integer age, @Param("email") String email, @Param("status") Integer status, @Param("active") boolean active); - - @Modifying - @Query(value = "UPDATE Users u SET status = ? WHERE u.name = ?", nativeQuery = true) - int updateUserSetStatusForNameNativePostgres(Integer status, String name); - - @Query(value = "SELECT u FROM User u WHERE u.name IN :names") - List findUserByNameList(@Param("names") Collection names); - - void deleteAllByCreationDateAfter(LocalDate date); - - @Modifying(clearAutomatically = true, flushAutomatically = true) - @Query("update User u set u.active = false where u.lastLoginDate < :date") - void deactivateUsersNotLoggedInSince(@Param("date") LocalDate date); - - @Modifying(clearAutomatically = true, flushAutomatically = true) - @Query("delete User u where u.active = false") - int deleteDeactivatedUsers(); - - @Modifying(clearAutomatically = true, flushAutomatically = true) - @Query(value = "alter table USERS add column deleted int(1) not null default 0", nativeQuery = true) - void addDeletedColumn(); -} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java deleted file mode 100644 index c586b54027..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustom.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung.boot.daos.user; - -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.function.Predicate; - -import com.baeldung.boot.domain.User; - -public interface UserRepositoryCustom { - List findUserByEmails(Set emails); - - List findAllUsersByPredicates(Collection> predicates); -} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java deleted file mode 100644 index 63a743b6b5..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/daos/user/UserRepositoryCustomImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.baeldung.boot.daos.user; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Path; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - -import com.baeldung.boot.domain.User; - -public class UserRepositoryCustomImpl implements UserRepositoryCustom { - - @PersistenceContext - private EntityManager entityManager; - - @Override - public List findUserByEmails(Set emails) { - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - CriteriaQuery query = cb.createQuery(User.class); - Root user = query.from(User.class); - - Path emailPath = user.get("email"); - - List predicates = new ArrayList<>(); - for (String email : emails) { - - predicates.add(cb.like(emailPath, email)); - - } - query.select(user) - .where(cb.or(predicates.toArray(new Predicate[predicates.size()]))); - - return entityManager.createQuery(query) - .getResultList(); - } - - @Override - public List findAllUsersByPredicates(Collection> predicates) { - List allUsers = entityManager.createQuery("select u from User u", User.class).getResultList(); - Stream allUsersStream = allUsers.stream(); - for (java.util.function.Predicate predicate : predicates) { - allUsersStream = allUsersStream.filter(predicate); - } - - return allUsersStream.collect(Collectors.toList()); - } - -} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Possession.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Possession.java deleted file mode 100644 index f13491ad82..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/Possession.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.baeldung.boot.domain; - -import javax.persistence.*; -import com.baeldung.boot.domain.Possession; - -@Entity -@Table -public class Possession { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; - - private String name; - - public Possession() { - super(); - } - - public Possession(final String name) { - super(); - - this.name = name; - } - - public long getId() { - return id; - } - - public void setId(final int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(final String name) { - this.name = name; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = (prime * result) + (int) (id ^ (id >>> 32)); - result = (prime * result) + ((name == null) ? 0 : name.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final Possession other = (Possession) obj; - if (id != other.id) { - return false; - } - if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - return true; - } - - @Override - public String toString() { - final StringBuilder builder = new StringBuilder(); - builder.append("Possesion [id=").append(id).append(", name=").append(name).append("]"); - return builder.toString(); - } - -} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/User.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/User.java deleted file mode 100644 index cca00e52a2..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/boot/domain/User.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.baeldung.boot.domain; - -import javax.persistence.*; - -import java.time.LocalDate; -import java.util.List; -import java.util.Objects; - -@Entity -@Table(name = "users") -public class User { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private int id; - private String name; - private LocalDate creationDate; - private LocalDate lastLoginDate; - private boolean active; - private int age; - @Column(unique = true, nullable = false) - private String email; - private Integer status; - @OneToMany - List possessionList; - - public User() { - super(); - } - - public User(String name, LocalDate creationDate,String email, Integer status) { - this.name = name; - this.creationDate = creationDate; - this.email = email; - this.status = status; - this.active = true; - } - - public int getId() { - return id; - } - - public void setId(final int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(final String name) { - this.name = name; - } - - public String getEmail() { - return email; - } - - public void setEmail(final String email) { - this.email = email; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public int getAge() { - return age; - } - - public void setAge(final int age) { - this.age = age; - } - - public LocalDate getCreationDate() { - return creationDate; - } - - public List getPossessionList() { - return possessionList; - } - - public void setPossessionList(List possessionList) { - this.possessionList = possessionList; - } - - @Override - public String toString() { - final StringBuilder builder = new StringBuilder(); - builder.append("User [name=").append(name).append(", id=").append(id).append("]"); - return builder.toString(); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - User user = (User) o; - return id == user.id && - age == user.age && - Objects.equals(name, user.name) && - Objects.equals(creationDate, user.creationDate) && - Objects.equals(email, user.email) && - Objects.equals(status, user.status); - } - - @Override - public int hashCode() { - return Objects.hash(id, name, creationDate, age, email, status); - } - - public LocalDate getLastLoginDate() { - return lastLoginDate; - } - - public void setLastLoginDate(LocalDate lastLoginDate) { - this.lastLoginDate = lastLoginDate; - } - - public boolean isActive() { - return active; - } - - public void setActive(boolean active) { - this.active = active; - } - -} \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java deleted file mode 100644 index bcf2cd84eb..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.baeldung.multipledb; - -import com.google.common.base.Preconditions; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; -import org.springframework.transaction.PlatformTransactionManager; - -import javax.sql.DataSource; -import java.util.HashMap; - -@Configuration -@PropertySource({"classpath:persistence-multiple-db.properties"}) -@EnableJpaRepositories(basePackages = "com.baeldung.multipledb.dao.product", entityManagerFactoryRef = "productEntityManager", transactionManagerRef = "productTransactionManager") -@Profile("!tc") -public class PersistenceProductConfiguration { - @Autowired - private Environment env; - - public PersistenceProductConfiguration() { - super(); - } - - // - - @Bean - public LocalContainerEntityManagerFactoryBean productEntityManager() { - final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); - em.setDataSource(productDataSource()); - em.setPackagesToScan("com.baeldung.multipledb.model.product"); - - final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); - em.setJpaVendorAdapter(vendorAdapter); - final HashMap properties = new HashMap(); - properties.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); - properties.put("hibernate.dialect", env.getProperty("hibernate.dialect")); - em.setJpaPropertyMap(properties); - - return em; - } - - @Bean - public DataSource productDataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); - dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); - dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("product.jdbc.url"))); - dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); - dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); - - return dataSource; - } - - @Bean - public PlatformTransactionManager productTransactionManager() { - final JpaTransactionManager transactionManager = new JpaTransactionManager(); - transactionManager.setEntityManagerFactory(productEntityManager().getObject()); - return transactionManager; - } - -} diff --git a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/product/Product.java b/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/product/Product.java deleted file mode 100755 index eaf471043c..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/java/com/baeldung/multipledb/model/product/Product.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.baeldung.multipledb.model.product; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(schema = "products") -public class Product { - - @Id - private int id; - - private String name; - - private double price; - - public Product() { - super(); - } - - private Product(int id, String name, double price) { - super(); - this.id = id; - this.name = name; - this.price = price; - } - - public static Product from(int id, String name, double price) { - return new Product(id, name, price); - } - - public int getId() { - return id; - } - - public void setId(final int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(final String name) { - this.name = name; - } - - public double getPrice() { - return price; - } - - public void setPrice(final double price) { - this.price = price; - } - - @Override - public String toString() { - final StringBuilder builder = new StringBuilder(); - builder.append("Product [name=") - .append(name) - .append(", id=") - .append(id) - .append("]"); - return builder.toString(); - } -} diff --git a/persistence-modules/spring-data-jpa/src/main/resources/application.properties b/persistence-modules/spring-data-jpa/src/main/resources/application.properties deleted file mode 100644 index f127dd5e50..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.main.allow-bean-definition-overriding=true - -spring.jpa.properties.hibernate.jdbc.batch_size=4 -spring.jpa.properties.hibernate.order_inserts=true -spring.jpa.properties.hibernate.order_updates=true -spring.jpa.properties.hibernate.generate_statistics=true diff --git a/persistence-modules/spring-data-jpa/src/main/resources/persistence-multiple-db.properties b/persistence-modules/spring-data-jpa/src/main/resources/persistence-multiple-db.properties deleted file mode 100644 index 75534e8a54..0000000000 --- a/persistence-modules/spring-data-jpa/src/main/resources/persistence-multiple-db.properties +++ /dev/null @@ -1,13 +0,0 @@ -# jdbc.X -jdbc.driverClassName=org.h2.Driver -user.jdbc.url=jdbc:h2:mem:spring_jpa_user;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS USERS -product.jdbc.url=jdbc:h2:mem:spring_jpa_product;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS PRODUCTS -jdbc.user=sa -jdbc.pass=sa - -# hibernate.X -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.show_sql=false -hibernate.hbm2ddl.auto=create-drop -hibernate.cache.use_second_level_cache=false -hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java deleted file mode 100644 index b2581b8034..0000000000 --- a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryCommon.java +++ /dev/null @@ -1,545 +0,0 @@ -package com.baeldung.boot.daos; - -import org.junit.After; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.JpaSort; -import org.springframework.data.mapping.PropertyReferenceException; -import org.springframework.transaction.annotation.Transactional; - -import com.baeldung.boot.daos.user.UserRepository; -import com.baeldung.boot.domain.User; - -import javax.persistence.EntityManager; -import javax.persistence.Query; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Predicate; -import java.util.stream.Stream; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.*; - -public class UserRepositoryCommon { - - final String USER_EMAIL = "email@example.com"; - final String USER_EMAIL2 = "email2@example.com"; - final String USER_EMAIL3 = "email3@example.com"; - final String USER_EMAIL4 = "email4@example.com"; - final Integer INACTIVE_STATUS = 0; - final Integer ACTIVE_STATUS = 1; - final String USER_EMAIL5 = "email5@example.com"; - final String USER_EMAIL6 = "email6@example.com"; - final String USER_NAME_ADAM = "Adam"; - final String USER_NAME_PETER = "Peter"; - - @Autowired - protected UserRepository userRepository; - @Autowired - private EntityManager entityManager; - - @Test - @Transactional - public void givenUsersWithSameNameInDB_WhenFindAllByName_ThenReturnStreamOfUsers() { - User user1 = new User(); - user1.setName(USER_NAME_ADAM); - user1.setEmail(USER_EMAIL); - userRepository.save(user1); - - User user2 = new User(); - user2.setName(USER_NAME_ADAM); - user2.setEmail(USER_EMAIL2); - userRepository.save(user2); - - User user3 = new User(); - user3.setName(USER_NAME_ADAM); - user3.setEmail(USER_EMAIL3); - userRepository.save(user3); - - User user4 = new User(); - user4.setName("SAMPLE"); - user4.setEmail(USER_EMAIL4); - userRepository.save(user4); - - try (Stream foundUsersStream = userRepository.findAllByName(USER_NAME_ADAM)) { - assertThat(foundUsersStream.count()).isEqualTo(3l); - } - } - - @Test - public void givenUsersInDB_WhenFindAllWithQueryAnnotation_ThenReturnCollectionWithActiveUsers() { - User user1 = new User(); - user1.setName(USER_NAME_ADAM); - user1.setEmail(USER_EMAIL); - user1.setStatus(ACTIVE_STATUS); - userRepository.save(user1); - - User user2 = new User(); - user2.setName(USER_NAME_ADAM); - user2.setEmail(USER_EMAIL2); - user2.setStatus(ACTIVE_STATUS); - userRepository.save(user2); - - User user3 = new User(); - user3.setName(USER_NAME_ADAM); - user3.setEmail(USER_EMAIL3); - user3.setStatus(INACTIVE_STATUS); - userRepository.save(user3); - - Collection allActiveUsers = userRepository.findAllActiveUsers(); - - assertThat(allActiveUsers.size()).isEqualTo(2); - } - - @Test - public void givenUsersInDB_WhenFindAllWithQueryAnnotationNative_ThenReturnCollectionWithActiveUsers() { - User user1 = new User(); - user1.setName(USER_NAME_ADAM); - user1.setEmail(USER_EMAIL); - user1.setStatus(ACTIVE_STATUS); - userRepository.save(user1); - - User user2 = new User(); - user2.setName(USER_NAME_ADAM); - user2.setEmail(USER_EMAIL2); - user2.setStatus(ACTIVE_STATUS); - userRepository.save(user2); - - User user3 = new User(); - user3.setName(USER_NAME_ADAM); - user3.setEmail(USER_EMAIL3); - user3.setStatus(INACTIVE_STATUS); - userRepository.save(user3); - - Collection allActiveUsers = userRepository.findAllActiveUsersNative(); - - assertThat(allActiveUsers.size()).isEqualTo(2); - } - - @Test - public void givenUserInDB_WhenFindUserByStatusWithQueryAnnotation_ThenReturnActiveUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User userByStatus = userRepository.findUserByStatus(ACTIVE_STATUS); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUserInDB_WhenFindUserByStatusWithQueryAnnotationNative_ThenReturnActiveUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User userByStatus = userRepository.findUserByStatusNative(ACTIVE_STATUS); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByStatusAndNameWithQueryAnnotationIndexedParams_ThenReturnOneUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User user2 = new User(); - user2.setName(USER_NAME_PETER); - user2.setEmail(USER_EMAIL2); - user2.setStatus(ACTIVE_STATUS); - userRepository.save(user2); - - User userByStatus = userRepository.findUserByStatusAndName(ACTIVE_STATUS, USER_NAME_ADAM); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByStatusAndNameWithQueryAnnotationNamedParams_ThenReturnOneUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User user2 = new User(); - user2.setName(USER_NAME_PETER); - user2.setEmail(USER_EMAIL2); - user2.setStatus(ACTIVE_STATUS); - userRepository.save(user2); - - User userByStatus = userRepository.findUserByStatusAndNameNamedParams(ACTIVE_STATUS, USER_NAME_ADAM); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByStatusAndNameWithQueryAnnotationNativeNamedParams_ThenReturnOneUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User user2 = new User(); - user2.setName(USER_NAME_PETER); - user2.setEmail(USER_EMAIL2); - user2.setStatus(ACTIVE_STATUS); - userRepository.save(user2); - - User userByStatus = userRepository.findUserByStatusAndNameNamedParamsNative(ACTIVE_STATUS, USER_NAME_ADAM); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByStatusAndNameWithQueryAnnotationNamedParamsCustomNames_ThenReturnOneUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User user2 = new User(); - user2.setName(USER_NAME_PETER); - user2.setEmail(USER_EMAIL2); - user2.setStatus(ACTIVE_STATUS); - userRepository.save(user2); - - User userByStatus = userRepository.findUserByUserStatusAndUserName(ACTIVE_STATUS, USER_NAME_ADAM); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByNameLikeWithQueryAnnotationIndexedParams_ThenReturnUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User userByStatus = userRepository.findUserByNameLike("Ad"); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByNameLikeWithQueryAnnotationNamedParams_ThenReturnUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User userByStatus = userRepository.findUserByNameLikeNamedParam("Ad"); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindUserByNameLikeWithQueryAnnotationNative_ThenReturnUser() { - User user = new User(); - user.setName(USER_NAME_ADAM); - user.setEmail(USER_EMAIL); - user.setStatus(ACTIVE_STATUS); - userRepository.save(user); - - User userByStatus = userRepository.findUserByNameLikeNative("Ad"); - - assertThat(userByStatus.getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindAllWithSortByName_ThenReturnUsersSorted() { - userRepository.save(new User(USER_NAME_ADAM, LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User(USER_NAME_PETER, LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, INACTIVE_STATUS)); - - List usersSortByName = userRepository.findAll(Sort.by(Sort.Direction.ASC, "name")); - - assertThat(usersSortByName.get(0) - .getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test(expected = PropertyReferenceException.class) - public void givenUsersInDB_WhenFindAllSortWithFunction_ThenThrowException() { - userRepository.save(new User(USER_NAME_ADAM, LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User(USER_NAME_PETER, LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, INACTIVE_STATUS)); - - userRepository.findAll(Sort.by(Sort.Direction.ASC, "name")); - - List usersSortByNameLength = userRepository.findAll(Sort.by("LENGTH(name)")); - - assertThat(usersSortByNameLength.get(0) - .getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindAllSortWithFunctionQueryAnnotationJPQL_ThenReturnUsersSorted() { - userRepository.save(new User(USER_NAME_ADAM, LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User(USER_NAME_PETER, LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, INACTIVE_STATUS)); - - userRepository.findAllUsers(Sort.by("name")); - - List usersSortByNameLength = userRepository.findAllUsers(JpaSort.unsafe("LENGTH(name)")); - - assertThat(usersSortByNameLength.get(0) - .getName()).isEqualTo(USER_NAME_ADAM); - } - - @Test - public void givenUsersInDB_WhenFindAllWithPageRequestQueryAnnotationJPQL_ThenReturnPageOfUsers() { - userRepository.save(new User(USER_NAME_ADAM, LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User(USER_NAME_PETER, LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, INACTIVE_STATUS)); - userRepository.save(new User("SAMPLE1", LocalDate.now(), USER_EMAIL4, INACTIVE_STATUS)); - userRepository.save(new User("SAMPLE2", LocalDate.now(), USER_EMAIL5, INACTIVE_STATUS)); - userRepository.save(new User("SAMPLE3", LocalDate.now(), USER_EMAIL6, INACTIVE_STATUS)); - - Page usersPage = userRepository.findAllUsersWithPagination(PageRequest.of(1, 3)); - - assertThat(usersPage.getContent() - .get(0) - .getName()).isEqualTo("SAMPLE1"); - } - - @Test - public void givenUsersInDB_WhenFindAllWithPageRequestQueryAnnotationNative_ThenReturnPageOfUsers() { - userRepository.save(new User(USER_NAME_ADAM, LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User(USER_NAME_PETER, LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, INACTIVE_STATUS)); - userRepository.save(new User("SAMPLE1", LocalDate.now(), USER_EMAIL4, INACTIVE_STATUS)); - userRepository.save(new User("SAMPLE2", LocalDate.now(), USER_EMAIL5, INACTIVE_STATUS)); - userRepository.save(new User("SAMPLE3", LocalDate.now(), USER_EMAIL6, INACTIVE_STATUS)); - - Page usersSortByNameLength = userRepository.findAllUsersWithPaginationNative(PageRequest.of(1, 3)); - - assertThat(usersSortByNameLength.getContent() - .get(0) - .getName()).isEqualTo(USER_NAME_PETER); - } - - @Test - @Transactional - public void givenUsersInDB_WhenUpdateStatusForNameModifyingQueryAnnotationJPQL_ThenModifyMatchingUsers() { - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE1", LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE3", LocalDate.now(), USER_EMAIL4, ACTIVE_STATUS)); - - int updatedUsersSize = userRepository.updateUserSetStatusForName(INACTIVE_STATUS, "SAMPLE"); - - assertThat(updatedUsersSize).isEqualTo(2); - } - - @Test - public void givenUsersInDB_WhenFindByEmailsWithDynamicQuery_ThenReturnCollection() { - - User user1 = new User(); - user1.setEmail(USER_EMAIL); - userRepository.save(user1); - - User user2 = new User(); - user2.setEmail(USER_EMAIL2); - userRepository.save(user2); - - User user3 = new User(); - user3.setEmail(USER_EMAIL3); - userRepository.save(user3); - - Set emails = new HashSet<>(); - emails.add(USER_EMAIL2); - emails.add(USER_EMAIL3); - - Collection usersWithEmails = userRepository.findUserByEmails(emails); - - assertThat(usersWithEmails.size()).isEqualTo(2); - } - - @Test - public void givenUsersInDBWhenFindByNameListReturnCollection() { - - User user1 = new User(); - user1.setName(USER_NAME_ADAM); - user1.setEmail(USER_EMAIL); - userRepository.save(user1); - - User user2 = new User(); - user2.setName(USER_NAME_PETER); - user2.setEmail(USER_EMAIL2); - userRepository.save(user2); - - List names = Arrays.asList(USER_NAME_ADAM, USER_NAME_PETER); - - List usersWithNames = userRepository.findUserByNameList(names); - - assertThat(usersWithNames.size()).isEqualTo(2); - } - - - @Test - @Transactional - public void whenInsertedWithQuery_ThenUserIsPersisted() { - userRepository.insertUser(USER_NAME_ADAM, 1, USER_EMAIL, ACTIVE_STATUS, true); - userRepository.insertUser(USER_NAME_PETER, 1, USER_EMAIL2, ACTIVE_STATUS, true); - - User userAdam = userRepository.findUserByNameLike(USER_NAME_ADAM); - User userPeter = userRepository.findUserByNameLike(USER_NAME_PETER); - - assertThat(userAdam).isNotNull(); - assertThat(userAdam.getEmail()).isEqualTo(USER_EMAIL); - assertThat(userPeter).isNotNull(); - assertThat(userPeter.getEmail()).isEqualTo(USER_EMAIL2); - } - - - @Test - @Transactional - public void givenTwoUsers_whenFindByNameUsr01_ThenUserUsr01() { - User usr01 = new User("usr01", LocalDate.now(), "usr01@baeldung.com", 1); - User usr02 = new User("usr02", LocalDate.now(), "usr02@baeldung.com", 1); - - userRepository.save(usr01); - userRepository.save(usr02); - - try (Stream users = userRepository.findAllByName("usr01")) { - assertTrue(users.allMatch(usr -> usr.equals(usr01))); - } - } - - @Test - @Transactional - public void givenTwoUsers_whenFindByNameUsr00_ThenNoUsers() { - User usr01 = new User("usr01", LocalDate.now(), "usr01@baeldung.com", 1); - User usr02 = new User("usr02", LocalDate.now(), "usr02@baeldung.com", 1); - - userRepository.save(usr01); - userRepository.save(usr02); - - try (Stream users = userRepository.findAllByName("usr00")) { - assertEquals(0, users.count()); - } - } - - @Test - public void givenTwoUsers_whenFindUsersWithGmailAddress_ThenUserUsr02() { - User usr01 = new User("usr01", LocalDate.now(), "usr01@baeldung.com", 1); - User usr02 = new User("usr02", LocalDate.now(), "usr02@gmail.com", 1); - - userRepository.save(usr01); - userRepository.save(usr02); - - List users = userRepository.findUsersWithGmailAddress(); - assertEquals(1, users.size()); - assertEquals(usr02, users.get(0)); - } - - @Test - @Transactional - public void givenTwoUsers_whenDeleteAllByCreationDateAfter_ThenOneUserRemains() { - User usr01 = new User("usr01", LocalDate.of(2018, 1, 1), "usr01@baeldung.com", 1); - User usr02 = new User("usr02", LocalDate.of(2018, 6, 1), "usr02@baeldung.com", 1); - - userRepository.save(usr01); - userRepository.save(usr02); - - userRepository.deleteAllByCreationDateAfter(LocalDate.of(2018, 5, 1)); - - List users = userRepository.findAll(); - - assertEquals(1, users.size()); - assertEquals(usr01, users.get(0)); - } - - @Test - public void givenTwoUsers_whenFindAllUsersByPredicates_ThenUserUsr01() { - User usr01 = new User("usr01", LocalDate.of(2018, 1, 1), "usr01@baeldung.com", 1); - User usr02 = new User("usr02", LocalDate.of(2018, 6, 1), "usr02@baeldung.org", 1); - - userRepository.save(usr01); - userRepository.save(usr02); - - List> predicates = new ArrayList<>(); - predicates.add(usr -> usr.getCreationDate().isAfter(LocalDate.of(2017, 12, 31))); - predicates.add(usr -> usr.getEmail().endsWith(".com")); - - List users = userRepository.findAllUsersByPredicates(predicates); - - assertEquals(1, users.size()); - assertEquals(usr01, users.get(0)); - } - - @Test - @Transactional - public void givenTwoUsers_whenDeactivateUsersNotLoggedInSince_ThenUserUsr02Deactivated() { - User usr01 = new User("usr01", LocalDate.of(2018, 1, 1), "usr01@baeldung.com", 1); - usr01.setLastLoginDate(LocalDate.now()); - User usr02 = new User("usr02", LocalDate.of(2018, 6, 1), "usr02@baeldung.org", 1); - usr02.setLastLoginDate(LocalDate.of(2018, 7, 20)); - - userRepository.save(usr01); - userRepository.save(usr02); - - userRepository.deactivateUsersNotLoggedInSince(LocalDate.of(2018, 8, 1)); - - List users = userRepository.findAllUsers(Sort.by(Sort.Order.asc("name"))); - assertTrue(users.get(0).isActive()); - assertFalse(users.get(1).isActive()); - } - - @Test - @Transactional - public void givenTwoUsers_whenDeleteDeactivatedUsers_ThenUserUsr02Deleted() { - User usr01 = new User("usr01", LocalDate.of(2018, 1, 1), "usr01@baeldung.com", 1); - usr01.setLastLoginDate(LocalDate.now()); - User usr02 = new User("usr02", LocalDate.of(2018, 6, 1), "usr02@baeldung.com", 0); - usr02.setLastLoginDate(LocalDate.of(2018, 7, 20)); - usr02.setActive(false); - - userRepository.save(usr01); - userRepository.save(usr02); - - int deletedUsersCount = userRepository.deleteDeactivatedUsers(); - - List users = userRepository.findAll(); - assertEquals(1, users.size()); - assertEquals(usr01, users.get(0)); - assertEquals(1, deletedUsersCount); - } - - @Test - @Transactional - public void givenTwoUsers_whenAddDeletedColumn_ThenUsersHaveDeletedColumn() { - User usr01 = new User("usr01", LocalDate.of(2018, 1, 1), "usr01@baeldung.com", 1); - usr01.setLastLoginDate(LocalDate.now()); - User usr02 = new User("usr02", LocalDate.of(2018, 6, 1), "usr02@baeldung.org", 1); - usr02.setLastLoginDate(LocalDate.of(2018, 7, 20)); - usr02.setActive(false); - - userRepository.save(usr01); - userRepository.save(usr02); - - userRepository.addDeletedColumn(); - - Query nativeQuery = entityManager.createNativeQuery("select deleted from USERS where NAME = 'usr01'"); - assertEquals(0, nativeQuery.getResultList().get(0)); - } - - @After - public void cleanUp() { - userRepository.deleteAll(); - } -} diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java deleted file mode 100644 index 99eabc8271..0000000000 --- a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryTCAutoLiveTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.baeldung.boot.daos; - -import com.baeldung.boot.Application; -import com.baeldung.boot.domain.User; -import com.baeldung.util.BaeldungPostgresqlContainer; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.transaction.annotation.Transactional; -import org.testcontainers.containers.PostgreSQLContainer; - -import java.time.LocalDate; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Created by adam. - */ -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -@ActiveProfiles({"tc", "tc-auto"}) -public class UserRepositoryTCAutoLiveTest extends UserRepositoryCommon { - - @ClassRule - public static PostgreSQLContainer postgreSQLContainer = BaeldungPostgresqlContainer.getInstance(); - - @Test - @Transactional - public void givenUsersInDB_WhenUpdateStatusForNameModifyingQueryAnnotationNativePostgres_ThenModifyMatchingUsers() { - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE1", LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE3", LocalDate.now(), USER_EMAIL4, ACTIVE_STATUS)); - userRepository.flush(); - - int updatedUsersSize = userRepository.updateUserSetStatusForNameNativePostgres(INACTIVE_STATUS, "SAMPLE"); - - assertThat(updatedUsersSize).isEqualTo(2); - } -} diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java deleted file mode 100644 index be8843c166..0000000000 --- a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/boot/daos/UserRepositoryTCLiveTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.baeldung.boot.daos; - -import com.baeldung.boot.Application; -import com.baeldung.boot.domain.User; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.transaction.annotation.Transactional; -import org.testcontainers.containers.PostgreSQLContainer; - -import java.time.LocalDate; - -import static org.assertj.core.api.Assertions.assertThat; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -@ActiveProfiles("tc") -@ContextConfiguration(initializers = {UserRepositoryTCLiveTest.Initializer.class}) -public class UserRepositoryTCLiveTest extends UserRepositoryCommon { - - @ClassRule - public static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer("postgres:11.1") - .withDatabaseName("integration-tests-db") - .withUsername("sa") - .withPassword("sa"); - - @Test - @Transactional - public void givenUsersInDB_WhenUpdateStatusForNameModifyingQueryAnnotationNative_ThenModifyMatchingUsers() { - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE1", LocalDate.now(), USER_EMAIL2, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE", LocalDate.now(), USER_EMAIL3, ACTIVE_STATUS)); - userRepository.save(new User("SAMPLE3", LocalDate.now(), USER_EMAIL4, ACTIVE_STATUS)); - userRepository.flush(); - - int updatedUsersSize = userRepository.updateUserSetStatusForNameNativePostgres(INACTIVE_STATUS, "SAMPLE"); - - assertThat(updatedUsersSize).isEqualTo(2); - } - - static class Initializer - implements ApplicationContextInitializer { - public void initialize(ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues.of( - "spring.datasource.url=" + postgreSQLContainer.getJdbcUrl(), - "spring.datasource.username=" + postgreSQLContainer.getUsername(), - "spring.datasource.password=" + postgreSQLContainer.getPassword() - ).applyTo(configurableApplicationContext.getEnvironment()); - } - } -} diff --git a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java deleted file mode 100644 index e5ad2dd448..0000000000 --- a/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/util/BaeldungPostgresqlContainer.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.baeldung.util; - -import org.testcontainers.containers.PostgreSQLContainer; - -public class BaeldungPostgresqlContainer extends PostgreSQLContainer { - - private static final String IMAGE_VERSION = "postgres:11.1"; - - private static BaeldungPostgresqlContainer container; - - - private BaeldungPostgresqlContainer() { - super(IMAGE_VERSION); - } - - public static BaeldungPostgresqlContainer getInstance() { - if (container == null) { - container = new BaeldungPostgresqlContainer(); - } - return container; - } - - @Override - public void start() { - super.start(); - System.setProperty("DB_URL", container.getJdbcUrl()); - System.setProperty("DB_USERNAME", container.getUsername()); - System.setProperty("DB_PASSWORD", container.getPassword()); - } - - @Override - public void stop() { - //do nothing, JVM handles shut down - } -} diff --git a/persistence-modules/spring-data-jpa/src/test/resources/application-tc-auto.properties b/persistence-modules/spring-data-jpa/src/test/resources/application-tc-auto.properties deleted file mode 100644 index c3005d861f..0000000000 --- a/persistence-modules/spring-data-jpa/src/test/resources/application-tc-auto.properties +++ /dev/null @@ -1,4 +0,0 @@ -# configuration for test containers testing -spring.datasource.url=${DB_URL} -spring.datasource.username=${DB_USERNAME} -spring.datasource.password=${DB_PASSWORD} diff --git a/persistence-modules/spring-data-jpa/src/test/resources/application-tc.properties b/persistence-modules/spring-data-jpa/src/test/resources/application-tc.properties deleted file mode 100644 index 3bf8693d53..0000000000 --- a/persistence-modules/spring-data-jpa/src/test/resources/application-tc.properties +++ /dev/null @@ -1,4 +0,0 @@ -# configuration for Test Containers testing -spring.datasource.driver-class-name=org.postgresql.Driver -spring.jpa.hibernate.ddl-auto=create-drop -spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false diff --git a/spring-security-modules/spring-security-mvc-custom/.gitignore b/persistence-modules/spring-jpa-2/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/.gitignore rename to persistence-modules/spring-jpa-2/.gitignore diff --git a/persistence-modules/spring-jpa-2/README.md b/persistence-modules/spring-jpa-2/README.md new file mode 100644 index 0000000000..b1786f49bd --- /dev/null +++ b/persistence-modules/spring-jpa-2/README.md @@ -0,0 +1,5 @@ +## Spring JPA (2) + +### Relevant Articles: +- [Many-To-Many Relationship in JPA](https://www.baeldung.com/jpa-many-to-many) +- More articles: [[<-- prev]](/spring-jpa) \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/pom.xml b/persistence-modules/spring-jpa-2/pom.xml new file mode 100644 index 0000000000..08a1f0c6a3 --- /dev/null +++ b/persistence-modules/spring-jpa-2/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + spring-jpa-2 + 0.1-SNAPSHOT + spring-jpa-2 + war + + + com.baeldung + persistence-modules + 1.0.0-SNAPSHOT + + + + + + org.springframework + spring-orm + ${org.springframework.version} + + + commons-logging + commons-logging + + + + + org.springframework + spring-context + ${org.springframework.version} + + + + + org.hibernate + hibernate-entitymanager + ${hibernate.version} + + + com.h2database + h2 + ${h2.version} + + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + + + + 5.1.5.RELEASE + + + \ No newline at end of file diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Course.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Course.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Course.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Course.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRating.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRating.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRating.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRating.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Student.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Student.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Student.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Student.java diff --git a/persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java similarity index 100% rename from persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java rename to persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java diff --git a/persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java similarity index 97% rename from persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java rename to persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java index f4635b563a..1cc3621f0d 100644 --- a/persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java +++ b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java @@ -16,7 +16,7 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; @Configuration -@PropertySource("classpath:/manytomany/test.properties") +@PropertySource("manytomany/test.properties") public class ManyToManyTestConfiguration { @Bean diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/resources/.gitignore b/persistence-modules/spring-jpa-2/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/resources/.gitignore rename to persistence-modules/spring-jpa-2/src/test/resources/.gitignore diff --git a/persistence-modules/spring-jpa/src/test/resources/manytomany/db.sql b/persistence-modules/spring-jpa-2/src/test/resources/manytomany/db.sql similarity index 100% rename from persistence-modules/spring-jpa/src/test/resources/manytomany/db.sql rename to persistence-modules/spring-jpa-2/src/test/resources/manytomany/db.sql diff --git a/persistence-modules/spring-jpa/src/test/resources/manytomany/test.properties b/persistence-modules/spring-jpa-2/src/test/resources/manytomany/test.properties similarity index 100% rename from persistence-modules/spring-jpa/src/test/resources/manytomany/test.properties rename to persistence-modules/spring-jpa-2/src/test/resources/manytomany/test.properties diff --git a/persistence-modules/spring-jpa/README.md b/persistence-modules/spring-jpa/README.md index 94a1e1f575..d260913635 100644 --- a/persistence-modules/spring-jpa/README.md +++ b/persistence-modules/spring-jpa/README.md @@ -1,7 +1,4 @@ -========= - -## Spring JPA Example Project - +## Spring JPA (1) ### Relevant Articles: - [The DAO with JPA and Spring](https://www.baeldung.com/spring-dao-jpa) @@ -11,9 +8,7 @@ - [A Guide to Spring AbstractRoutingDatasource](https://www.baeldung.com/spring-abstract-routing-data-source) - [Obtaining Auto-generated Keys in Spring JDBC](https://www.baeldung.com/spring-jdbc-autogenerated-keys) - [Use Criteria Queries in a Spring Data Application](https://www.baeldung.com/spring-data-criteria-queries) -- [Many-To-Many Relationship in JPA](https://www.baeldung.com/jpa-many-to-many) -- [Spring Persistence (Hibernate and JPA) with a JNDI datasource](https://www.baeldung.com/spring-persistence-hibernate-and-jpa-with-a-jndi-datasource-2) - +- More articles: [[next -->]](/spring-jpa-2) ### Eclipse Config After importing the project into Eclipse, you may see the following error: diff --git a/pom.xml b/pom.xml index 9d9c448887..3565c2dc4b 100644 --- a/pom.xml +++ b/pom.xml @@ -343,18 +343,18 @@ animal-sniffer-mvn-plugin annotations antlr - - apache-cxf - apache-libraries - apache-olingo/olingo2 - apache-poi + + apache-cxf + apache-libraries + apache-olingo/olingo2 + apache-poi apache-rocketmq - apache-shiro + apache-shiro apache-spark apache-tapestry apache-thrift apache-tika - apache-velocity + apache-velocity asciidoctor asm @@ -415,13 +415,7 @@ graphql/graphql-java grpc - gson - guava - guava-2 - guava-collections - guava-collections-map - guava-collections-set - guava-io + gson guava-modules guice @@ -449,7 +443,8 @@ java-lite java-numbers java-numbers-2 - java-numbers-3 + java-numbers-3 + java-numbers-4 java-rmi java-spi java-vavr-stream @@ -561,6 +556,7 @@ atomikos reactive-systems slack + spring-webflux-threads @@ -862,18 +858,18 @@ animal-sniffer-mvn-plugin annotations antlr - - apache-cxf - apache-libraries - apache-olingo/olingo2 - apache-poi + + apache-cxf + apache-libraries + apache-olingo/olingo2 + apache-poi apache-rocketmq - apache-shiro + apache-shiro apache-spark apache-tapestry apache-thrift apache-tika - apache-velocity + apache-velocity asciidoctor asm @@ -933,12 +929,7 @@ graphql/graphql-java grpc - gson - guava - guava-collections - guava-collections-map - guava-collections-set - guava-io + gson guava-modules guice @@ -967,6 +958,7 @@ java-numbers java-numbers-2 java-numbers-3 + java-numbers-4 java-rmi java-spi java-vavr-stream @@ -1076,6 +1068,7 @@ atomikos reactive-systems slack + spring-webflux-threads @@ -1416,4 +1409,4 @@ 1.4.197 - + \ No newline at end of file diff --git a/reactive-systems/README.md b/reactive-systems/README.md index 0558dd141e..b23f4e4dc4 100644 --- a/reactive-systems/README.md +++ b/reactive-systems/README.md @@ -4,4 +4,4 @@ This module contains services for article about reactive systems in Java. Please ### Relevant Articles -- [Reactive Systems in Java](https://www.baeldung.com/) +- [Reactive Systems in Java](https://www.baeldung.com/java-reactive-systems) diff --git a/rule-engines/jess/pom.xml b/rule-engines/jess/pom.xml new file mode 100644 index 0000000000..40d50fae70 --- /dev/null +++ b/rule-engines/jess/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + com.baeldung.rules.jess + jess + 1.0-SNAPSHOT + + + + + jsr94 + jsr94 + 1.1 + + + gov.sandia + jess + 7.1p2 + + + + \ No newline at end of file diff --git a/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessHello.java b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessHello.java new file mode 100644 index 0000000000..1462996a4c --- /dev/null +++ b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessHello.java @@ -0,0 +1,17 @@ +package com.baeldung.rules.jess; + +import jess.JessException; +import jess.Rete; + +public class JessHello { + public static final String RULES_FILE = "helloJess.clp"; + + public static void main(String[] args) throws JessException { + Rete engine = new Rete(); + engine.reset(); + + engine.batch(RULES_FILE); + + engine.run(); + } +} diff --git a/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessWithData.java b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessWithData.java new file mode 100644 index 0000000000..5d5dc9b983 --- /dev/null +++ b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessWithData.java @@ -0,0 +1,42 @@ +package com.baeldung.rules.jess; + +import com.baeldung.rules.jess.model.Answer; +import com.baeldung.rules.jess.model.Question; +import jess.Filter; +import jess.JessException; +import jess.Rete; + +import java.util.Iterator; +import java.util.logging.Logger; + +public class JessWithData { + public static final String RULES_BONUS_FILE = "bonus.clp"; + private static Logger log = Logger.getLogger("JessWithData"); + + public static void main(String[] args) throws JessException { + Rete engine = new Rete(); + engine.reset(); + + engine.batch(RULES_BONUS_FILE); + + prepareData(engine); + + engine.run(); + + checkResults(engine); + } + + private static void checkResults(Rete engine) { + Iterator results = engine.getObjects(new Filter.ByClass(Answer.class)); + while (results.hasNext()) { + Answer answer = (Answer) results.next(); + log.info(answer.toString()); + } + } + + private static void prepareData(Rete engine) throws JessException { + Question question = new Question("Can I have a bonus?", -5); + log.info(question.toString()); + engine.add(question); + } +} diff --git a/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessWithJsr94.java b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessWithJsr94.java new file mode 100644 index 0000000000..f07bf10a7a --- /dev/null +++ b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/JessWithJsr94.java @@ -0,0 +1,98 @@ +package com.baeldung.rules.jess; + +import com.baeldung.rules.jess.model.Answer; +import com.baeldung.rules.jess.model.Question; + +import javax.rules.*; +import javax.rules.admin.RuleAdministrator; +import javax.rules.admin.RuleExecutionSet; +import javax.rules.admin.RuleExecutionSetCreateException; +import javax.rules.admin.RuleExecutionSetRegisterException; +import java.io.IOException; +import java.io.InputStream; +import java.rmi.RemoteException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.logging.Logger; + +public class JessWithJsr94 { + public static final String RULES_BONUS_FILE = "/bonus.clp"; + public static final String RULES_URI = "com/baeldung/rules/bonus"; + private static final String RULE_SERVICE_PROVIDER = "jess.jsr94"; + private static Logger log = Logger.getLogger("JessWithData"); + + public static void main(String[] args) throws Exception { + RuleServiceProvider ruleServiceProvider = instantiateJessInstance(); + + // load our rules and register them with the rules provider + registerRules(RULES_BONUS_FILE, RULES_URI, ruleServiceProvider); + + runRules(RULES_URI, ruleServiceProvider); + } + + private static RuleServiceProvider instantiateJessInstance() throws ClassNotFoundException, ConfigurationException { + // Load the rule service provider of the reference implementation. + // Loading this class will automatically register this provider with the provider manager. + Class.forName(RULE_SERVICE_PROVIDER + ".RuleServiceProviderImpl"); + + // Get the rule service provider from the provider manager. + return RuleServiceProviderManager.getRuleServiceProvider(RULE_SERVICE_PROVIDER); + } + + private static void runRules(String rulesURI, RuleServiceProvider ruleServiceProvider) + throws ConfigurationException, RuleSessionTypeUnsupportedException, RuleSessionCreateException, RuleExecutionSetNotFoundException, RemoteException, InvalidRuleSessionException { + // Get a RuleRuntime and invoke the rule engine. + RuleRuntime ruleRuntime = ruleServiceProvider.getRuleRuntime(); + + //Create a statelessRuleSession. + StatelessRuleSession statelessRuleSession = (StatelessRuleSession) ruleRuntime.createRuleSession(rulesURI, new HashMap(), RuleRuntime.STATELESS_SESSION_TYPE); + + calculateResults(statelessRuleSession); + + statelessRuleSession.release(); + } + + private static void calculateResults(StatelessRuleSession statelessRuleSession) throws InvalidRuleSessionException, RemoteException { + List data = prepareData(); + + // execute the rules + List results = statelessRuleSession.executeRules(data); + + checkResults(results); + } + + private static List prepareData() { + List data = new ArrayList(); + data.add(new Question("Can I have a bonus?", -5)); + return data; + } + + private static void checkResults(List results) { + Iterator itr = results.iterator(); + while (itr.hasNext()) { + Object obj = itr.next(); + if (obj instanceof Answer) { + log.info(obj.toString()); + } + } + } + + private static void registerRules(String rulesFile, String rulesURI, RuleServiceProvider serviceProvider) throws ConfigurationException, RuleExecutionSetCreateException, IOException, RuleExecutionSetRegisterException { + // Get the rule administrator. + RuleAdministrator ruleAdministrator = serviceProvider.getRuleAdministrator(); + + // load the rules + InputStream ruleInput = JessWithJsr94.class.getResourceAsStream(rulesFile); + HashMap vendorProperties = new HashMap(); + + // Create the RuleExecutionSet + RuleExecutionSet ruleExecutionSet = ruleAdministrator + .getLocalRuleExecutionSetProvider(vendorProperties) + .createRuleExecutionSet(ruleInput, vendorProperties); + + // Register the rule execution set. + ruleAdministrator.registerRuleExecutionSet(rulesURI, ruleExecutionSet, vendorProperties); + } +} \ No newline at end of file diff --git a/rule-engines/jess/src/main/java/com/baeldung/rules/jess/model/Answer.java b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/model/Answer.java new file mode 100644 index 0000000000..d690d04e13 --- /dev/null +++ b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/model/Answer.java @@ -0,0 +1,31 @@ +package com.baeldung.rules.jess.model; + +public class Answer { + private String answer; + private int newBalance; + + public Answer(String answer, int newBalance) { + this.answer = answer; + this.newBalance = newBalance; + } + + public int getNewBalance() { + return newBalance; + } + + public void setNewBalance(int newBalance) { + this.newBalance = newBalance; + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String toString() { + return "Answer(answer=" + answer + ", newBalance=" + newBalance + ")"; + } +} diff --git a/rule-engines/jess/src/main/java/com/baeldung/rules/jess/model/Question.java b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/model/Question.java new file mode 100644 index 0000000000..499113d0fc --- /dev/null +++ b/rule-engines/jess/src/main/java/com/baeldung/rules/jess/model/Question.java @@ -0,0 +1,32 @@ +package com.baeldung.rules.jess.model; + +public class Question { + private String question; + private int balance; + + public Question(String question, int balance) { + this.question = question; + this.balance = balance; + } + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + + public int getBalance() { + return balance; + } + + public void setBalance(int balance) { + this.balance = balance; + } + + public String toString() { + return "Question(question=" + question + ", balance=" + balance + ")"; + } + +} diff --git a/rule-engines/jess/src/main/resources/bonus.clp b/rule-engines/jess/src/main/resources/bonus.clp new file mode 100644 index 0000000000..7f430bc43f --- /dev/null +++ b/rule-engines/jess/src/main/resources/bonus.clp @@ -0,0 +1,8 @@ +(import com.baeldung.rules.jess.model.*) +(deftemplate Question (declare (from-class Question))) +(deftemplate Answer (declare (from-class Answer))) + +(defrule avoid-overdraft "Give $50 to anyone overdrawn" + ?q <- (Question { balance < 0 }) + => + (add (new Answer "Overdrawn bonus" (+ ?q.balance 50)))) diff --git a/rule-engines/jess/src/main/resources/helloJess.clp b/rule-engines/jess/src/main/resources/helloJess.clp new file mode 100644 index 0000000000..547294eca6 --- /dev/null +++ b/rule-engines/jess/src/main/resources/helloJess.clp @@ -0,0 +1,3 @@ +;; Hello, world in Jess! + +(printout t "Hello from Jess!" crlf) diff --git a/rule-engines/pom.xml b/rule-engines/pom.xml index d3d3127ce0..27748a5c3e 100644 --- a/rule-engines/pom.xml +++ b/rule-engines/pom.xml @@ -16,6 +16,7 @@ easy-rules openl-tablets rulebook + diff --git a/spring-5-reactive-2/README.md b/spring-5-reactive-2/README.md index 061c15b148..54f7ad35b1 100644 --- a/spring-5-reactive-2/README.md +++ b/spring-5-reactive-2/README.md @@ -8,5 +8,5 @@ This module contains articles about reactive Spring 5 - [Testing Reactive Streams Using StepVerifier and TestPublisher](https://www.baeldung.com/reactive-streams-step-verifier-test-publisher) - [Debugging Reactive Streams in Spring 5](https://www.baeldung.com/spring-debugging-reactive-streams) - [Static Content in Spring WebFlux](https://www.baeldung.com/spring-webflux-static-content) -- [Spring WebClient Filters](https://www.baeldung.com/spring-webclient-filters) +- [Server-Sent Events in Spring](https://www.baeldung.com/spring-server-sent-events) - More articles: [[<-- prev]](/spring-5-reactive) diff --git a/spring-5-reactive-2/pom.xml b/spring-5-reactive-2/pom.xml index fdeebd1dfd..4cb85d879e 100644 --- a/spring-5-reactive-2/pom.xml +++ b/spring-5-reactive-2/pom.xml @@ -53,6 +53,11 @@ reactor-test test + + org.springframework.security + spring-security-test + test + diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/consumer/ConsumerSSEApplication.java b/spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/consumer/ConsumerSSEApplication.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/consumer/ConsumerSSEApplication.java rename to spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/consumer/ConsumerSSEApplication.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/consumer/controller/ClientController.java b/spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/consumer/controller/ClientController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/consumer/controller/ClientController.java rename to spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/consumer/controller/ClientController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/server/ServerSSEApplication.java b/spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/server/ServerSSEApplication.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/server/ServerSSEApplication.java rename to spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/server/ServerSSEApplication.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/server/controllers/ServerController.java b/spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/server/controllers/ServerController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/serversentevents/server/controllers/ServerController.java rename to spring-5-reactive-2/src/main/java/com/baeldung/reactive/serversentevents/server/controllers/ServerController.java diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/serversentsevents/ServiceSentEventLiveTest.java b/spring-5-reactive-2/src/test/java/com/baeldung/reactive/serversentsevents/ServiceSentEventLiveTest.java similarity index 92% rename from spring-5-reactive/src/test/java/com/baeldung/reactive/serversentsevents/ServiceSentEventLiveTest.java rename to spring-5-reactive-2/src/test/java/com/baeldung/reactive/serversentsevents/ServiceSentEventLiveTest.java index 547cd99034..946a038763 100644 --- a/spring-5-reactive/src/test/java/com/baeldung/reactive/serversentsevents/ServiceSentEventLiveTest.java +++ b/spring-5-reactive-2/src/test/java/com/baeldung/reactive/serversentsevents/ServiceSentEventLiveTest.java @@ -8,7 +8,9 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.reactive.server.WebTestClient; -@SpringBootTest +import com.baeldung.reactive.serversentevents.server.ServerSSEApplication; + +@SpringBootTest(classes = ServerSSEApplication.class) @WithMockUser public class ServiceSentEventLiveTest { diff --git a/spring-5-reactive-client/README.md b/spring-5-reactive-client/README.md index bb308ae330..eebdc23aed 100644 --- a/spring-5-reactive-client/README.md +++ b/spring-5-reactive-client/README.md @@ -10,3 +10,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Simultaneous Spring WebClient Calls](https://www.baeldung.com/spring-webclient-simultaneous-calls) - [Logging Spring WebClient Calls](https://www.baeldung.com/spring-log-webclient-calls) - [Mocking a WebClient in Spring](https://www.baeldung.com/spring-mocking-webclient) +- [Spring WebClient Filters](https://www.baeldung.com/spring-webclient-filters) diff --git a/spring-5-reactive-client/pom.xml b/spring-5-reactive-client/pom.xml index 0b5efd1a47..7ae7ba6edd 100644 --- a/spring-5-reactive-client/pom.xml +++ b/spring-5-reactive-client/pom.xml @@ -33,6 +33,10 @@ org.springframework.boot spring-boot-starter-webflux + + org.springframework.boot + spring-boot-starter-security + org.projectreactor reactor-spring diff --git a/spring-5-reactive-2/src/main/java/com/baeldung/webclient/filter/WebClientFilters.java b/spring-5-reactive-client/src/main/java/com/baeldung/webclient/filter/WebClientFilters.java similarity index 100% rename from spring-5-reactive-2/src/main/java/com/baeldung/webclient/filter/WebClientFilters.java rename to spring-5-reactive-client/src/main/java/com/baeldung/webclient/filter/WebClientFilters.java diff --git a/spring-5-reactive-2/src/test/java/com/baeldung/webclient/filter/FilteredWebClientUnitTest.java b/spring-5-reactive-client/src/test/java/com/baeldung/webclient/filter/FilteredWebClientUnitTest.java similarity index 100% rename from spring-5-reactive-2/src/test/java/com/baeldung/webclient/filter/FilteredWebClientUnitTest.java rename to spring-5-reactive-client/src/test/java/com/baeldung/webclient/filter/FilteredWebClientUnitTest.java diff --git a/spring-5-reactive-oauth/pom.xml b/spring-5-reactive-oauth/pom.xml index e9882a6d32..15f5dcacaa 100644 --- a/spring-5-reactive-oauth/pom.xml +++ b/spring-5-reactive-oauth/pom.xml @@ -7,7 +7,7 @@ 1.0.0-SNAPSHOT spring-5-reactive-oauth jar - WebFluc and Spring Security OAuth + WebFlux and Spring Security OAuth com.baeldung @@ -64,8 +64,4 @@ - - 2.1.0.RELEASE - - diff --git a/spring-5-reactive-security/README.md b/spring-5-reactive-security/README.md index a0f47a503d..915f74cd78 100644 --- a/spring-5-reactive-security/README.md +++ b/spring-5-reactive-security/README.md @@ -12,3 +12,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Guide to Spring 5 WebFlux](https://www.baeldung.com/spring-webflux) - [Introduction to the Functional Web Framework in Spring 5](https://www.baeldung.com/spring-5-functional-web) - [Guide to the AuthenticationManagerResolver in Spring Security](https://www.baeldung.com/spring-security-authenticationmanagerresolver) +- [Spring Webflux and CORS](https://www.baeldung.com/spring-webflux-cors) diff --git a/spring-5-reactive-security/pom.xml b/spring-5-reactive-security/pom.xml index 58c993bda5..2024cb5138 100644 --- a/spring-5-reactive-security/pom.xml +++ b/spring-5-reactive-security/pom.xml @@ -128,7 +128,6 @@ 1.0 4.1 3.1.6.RELEASE - 2.2.2.RELEASE diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/annotated/CorsOnAnnotatedElementsApplication.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/annotated/CorsOnAnnotatedElementsApplication.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/annotated/CorsOnAnnotatedElementsApplication.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/annotated/CorsOnAnnotatedElementsApplication.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnClassController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnClassController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnClassController.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnClassController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnMethodsController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnMethodsController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnMethodsController.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/annotated/controllers/CorsOnMethodsController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/CorsGlobalConfigApplication.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/CorsGlobalConfigApplication.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/CorsGlobalConfigApplication.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/CorsGlobalConfigApplication.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/config/CorsGlobalConfiguration.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/config/CorsGlobalConfiguration.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/config/CorsGlobalConfiguration.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/config/CorsGlobalConfiguration.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/controllers/FurtherCorsConfigsController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/controllers/FurtherCorsConfigsController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/controllers/FurtherCorsConfigsController.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/controllers/FurtherCorsConfigsController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/controllers/RegularRestController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/controllers/RegularRestController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/controllers/RegularRestController.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/controllers/RegularRestController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/functional/handlers/CorsGlobalFunctionalHandler.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/functional/handlers/CorsGlobalFunctionalHandler.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/functional/handlers/CorsGlobalFunctionalHandler.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/functional/handlers/CorsGlobalFunctionalHandler.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/functional/routers/CorsRouterFunctions.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/functional/routers/CorsRouterFunctions.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/global/functional/routers/CorsRouterFunctions.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/global/functional/routers/CorsRouterFunctions.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/CorsWebFilterApplication.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/CorsWebFilterApplication.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/CorsWebFilterApplication.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/CorsWebFilterApplication.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/config/CorsWebFilterConfig.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/config/CorsWebFilterConfig.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/config/CorsWebFilterConfig.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/config/CorsWebFilterConfig.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/FurtherCorsConfigsController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/FurtherCorsConfigsController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/FurtherCorsConfigsController.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/FurtherCorsConfigsController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/RegularRestController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/RegularRestController.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/RegularRestController.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/controllers/RegularRestController.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/functional/handlers/CorsWithWebFilterHandler.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/functional/handlers/CorsWithWebFilterHandler.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/functional/handlers/CorsWithWebFilterHandler.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/functional/handlers/CorsWithWebFilterHandler.java diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/functional/routers/CorsWithWebFilterRouterFunctions.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/functional/routers/CorsWithWebFilterRouterFunctions.java similarity index 100% rename from spring-5-reactive/src/main/java/com/baeldung/reactive/cors/webfilter/functional/routers/CorsWithWebFilterRouterFunctions.java rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/cors/webfilter/functional/routers/CorsWithWebFilterRouterFunctions.java diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnAnnotatedElementsLiveTest.java b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnAnnotatedElementsLiveTest.java similarity index 96% rename from spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnAnnotatedElementsLiveTest.java rename to spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnAnnotatedElementsLiveTest.java index e6847e63da..5fd20eedfd 100644 --- a/spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnAnnotatedElementsLiveTest.java +++ b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnAnnotatedElementsLiveTest.java @@ -6,7 +6,9 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient.ResponseSpec; -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +import com.baeldung.reactive.cors.annotated.CorsOnAnnotatedElementsApplication; + +@SpringBootTest(classes = CorsOnAnnotatedElementsApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class CorsOnAnnotatedElementsLiveTest { private static final String BASE_URL = "http://localhost:8081"; diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnGlobalConfigLiveTest.java b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnGlobalConfigLiveTest.java similarity index 94% rename from spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnGlobalConfigLiveTest.java rename to spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnGlobalConfigLiveTest.java index 008f1a16f2..5c6582c127 100644 --- a/spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnGlobalConfigLiveTest.java +++ b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnGlobalConfigLiveTest.java @@ -6,7 +6,9 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient.ResponseSpec; -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +import com.baeldung.reactive.cors.global.CorsGlobalConfigApplication; + +@SpringBootTest(classes = CorsGlobalConfigApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class CorsOnGlobalConfigLiveTest { private static final String BASE_URL = "http://localhost:8082"; diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnWebFilterLiveTest.java b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnWebFilterLiveTest.java similarity index 94% rename from spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnWebFilterLiveTest.java rename to spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnWebFilterLiveTest.java index f8a4f34e29..7cc44454ec 100644 --- a/spring-5-reactive/src/test/java/com/baeldung/reactive/cors/CorsOnWebFilterLiveTest.java +++ b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/cors/CorsOnWebFilterLiveTest.java @@ -6,7 +6,9 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient.ResponseSpec; -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +import com.baeldung.reactive.cors.webfilter.CorsWebFilterApplication; + +@SpringBootTest(classes = CorsWebFilterApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class CorsOnWebFilterLiveTest { private static final String BASE_URL = "http://localhost:8083"; diff --git a/spring-5-reactive/README.md b/spring-5-reactive/README.md index 41d831632a..1945b7ea33 100644 --- a/spring-5-reactive/README.md +++ b/spring-5-reactive/README.md @@ -7,14 +7,11 @@ The "REST With Spring" Classes: https://bit.ly/restwithspring ### Relevant Articles -- [Introduction to the Functional Web Framework in Spring 5](https://www.baeldung.com/spring-5-functional-web) - [Spring 5 WebClient](https://www.baeldung.com/spring-5-webclient) - [Exploring the Spring 5 WebFlux URL Matching](https://www.baeldung.com/spring-5-mvc-url-matching) - [Reactive WebSockets with Spring 5](https://www.baeldung.com/spring-5-reactive-websockets) - [Spring Webflux Filters](https://www.baeldung.com/spring-webflux-filters) - [How to Set a Header on a Response with Spring 5](https://www.baeldung.com/spring-response-header) -- [Spring Webflux and CORS](https://www.baeldung.com/spring-webflux-cors) - [Handling Errors in Spring WebFlux](https://www.baeldung.com/spring-webflux-errors) -- [Server-Sent Events in Spring](https://www.baeldung.com/spring-server-sent-events) - [A Guide to Spring Session Reactive Support: WebSession](https://www.baeldung.com/spring-session-reactive) - More articles: [[next -->]](/spring-5-reactive-2) diff --git a/spring-5-security-cognito/pom.xml b/spring-5-security-cognito/pom.xml index 8d03b91ce0..5f8f328086 100644 --- a/spring-5-security-cognito/pom.xml +++ b/spring-5-security-cognito/pom.xml @@ -34,11 +34,6 @@ - - org.springframework.security.oauth.boot - spring-security-oauth2-autoconfigure - ${oauth-auto.version} - org.springframework.security spring-security-oauth2-client @@ -62,10 +57,8 @@ test - + - 2.1.0.RELEASE - 2.1.0.RELEASE com.baeldung.cognito.SpringCognitoApplication diff --git a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java index 6841fa7a65..df35a46ef3 100644 --- a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java +++ b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java @@ -1,12 +1,10 @@ package com.baeldung.cognito; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration -@PropertySource("cognito/application-cognito.yml") public class CognitoWebConfiguration implements WebMvcConfigurer { @Override diff --git a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java new file mode 100644 index 0000000000..ba0436d20d --- /dev/null +++ b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java @@ -0,0 +1,23 @@ +package com.baeldung.cognito; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@Configuration +public class SecurityConfiguration extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.csrf() + .and() + .authorizeRequests(authz -> authz.mvcMatchers("/") + .permitAll() + .anyRequest() + .authenticated()) + .oauth2Login() + .and() + .logout() + .logoutSuccessUrl("/"); + } +} \ No newline at end of file diff --git a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java index eebe6d8f45..fc55de590c 100644 --- a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java +++ b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java @@ -2,10 +2,8 @@ package com.baeldung.cognito; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.PropertySource; @SpringBootApplication -@PropertySource("cognito/application-cognito.yml") public class SpringCognitoApplication { public static void main(String[] args) { diff --git a/spring-5-security-cognito/src/main/resources/application.yml b/spring-5-security-cognito/src/main/resources/application.yml new file mode 100644 index 0000000000..e53a2642e0 --- /dev/null +++ b/spring-5-security-cognito/src/main/resources/application.yml @@ -0,0 +1,15 @@ +spring: + security: + oauth2: + client: + registration: + cognito: + client-id: your_clientId + client-secret: your_clientSecret + scope: openid + redirect-uri: http://localhost:8080/login/oauth2/code/cognito + clientName: your_clientName + provider: + cognito: + issuerUri: https://cognito-idp.{region}.amazonaws.com/{poolId} + user-name-attribute: cognito:username diff --git a/spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml b/spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml deleted file mode 100644 index 0a28dbccb4..0000000000 --- a/spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml +++ /dev/null @@ -1,15 +0,0 @@ -spring: - security: - oauth2: - client: - registration: - cognito: - client-id: clientId - client-secret: clientSecret - scope: openid - redirectUriTemplate: "http://localhost:8080/login/oauth2/code/cognito" - clientName: cognito-client-name - provider: - cognito: - issuerUri: https://cognito-idp.{region}.amazonaws.com/{poolId} - usernameAttribute: cognito:username diff --git a/spring-5-security-cognito/src/main/resources/cognito/home.html b/spring-5-security-cognito/src/main/resources/cognito/home.html deleted file mode 100644 index f0bd9e52a8..0000000000 --- a/spring-5-security-cognito/src/main/resources/cognito/home.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - OAuth2 Cognito Demo - - - - - -
-
-
-

OAuth2 Spring Security Cognito Demo

- -
-
- Hello, ! -
-
- - -
-
-
- - diff --git a/spring-5-security-cognito/src/main/resources/cognito/style.css b/spring-5-security-cognito/src/main/resources/cognito/style.css deleted file mode 100644 index 45190d6d70..0000000000 --- a/spring-5-security-cognito/src/main/resources/cognito/style.css +++ /dev/null @@ -1,9 +0,0 @@ -.login { - background-color: #7289da; - color: #fff; -} - -.login:hover { - background-color: #697ec4; - color: #fff; -} diff --git a/spring-5-security-cognito/src/main/resources/templates/home.html b/spring-5-security-cognito/src/main/resources/templates/home.html new file mode 100644 index 0000000000..df3c86fe2a --- /dev/null +++ b/spring-5-security-cognito/src/main/resources/templates/home.html @@ -0,0 +1,35 @@ + + + + + +OAuth2 Cognito Demo + + + + +
+
+
+

OAuth2 Spring Security Cognito Demo

+ +
+
+ Hello, ! +
+
+ + +
+
+
+ + diff --git a/spring-5-security-oauth/pom.xml b/spring-5-security-oauth/pom.xml index 40d54bf668..325aacea86 100644 --- a/spring-5-security-oauth/pom.xml +++ b/spring-5-security-oauth/pom.xml @@ -37,7 +37,7 @@ org.springframework.security.oauth.boot spring-security-oauth2-autoconfigure - ${oauth-auto.version} + ${spring-boot.version} org.springframework.security @@ -65,8 +65,6 @@ - 2.1.0.RELEASE - 2.1.0.RELEASE com.baeldung.oauth2.SpringOAuthApplication diff --git a/spring-5-security/pom.xml b/spring-5-security/pom.xml index 3fd31c8bc5..c486d5346b 100644 --- a/spring-5-security/pom.xml +++ b/spring-5-security/pom.xml @@ -60,8 +60,5 @@ - - 2.2.1.RELEASE - diff --git a/spring-5-security/src/main/java/com/baeldung/logoutredirects/LogoutApplication.java b/spring-5-security/src/main/java/com/baeldung/logoutredirects/LogoutApplication.java new file mode 100644 index 0000000000..ef8175ffb2 --- /dev/null +++ b/spring-5-security/src/main/java/com/baeldung/logoutredirects/LogoutApplication.java @@ -0,0 +1,13 @@ +package com.baeldung.logoutredirects; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class LogoutApplication { + + public static void main(String[] args) { + SpringApplication.run(LogoutApplication.class, args); + } + +} diff --git a/spring-5-security/src/main/java/com/baeldung/logoutredirects/securityconfig/SpringSecurityConfig.java b/spring-5-security/src/main/java/com/baeldung/logoutredirects/securityconfig/SpringSecurityConfig.java new file mode 100644 index 0000000000..64141f63d8 --- /dev/null +++ b/spring-5-security/src/main/java/com/baeldung/logoutredirects/securityconfig/SpringSecurityConfig.java @@ -0,0 +1,27 @@ +package com.baeldung.logoutredirects.securityconfig; + +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@Configuration +@EnableWebSecurity +public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.authorizeRequests(authz -> authz.mvcMatchers("/login") + .permitAll() + .anyRequest() + .authenticated()) + .logout(logout -> logout.permitAll() + .logoutSuccessHandler((request, response, authentication) -> { + response.setStatus(HttpServletResponse.SC_OK); + })); + + } + +} diff --git a/spring-5-security/src/main/resources/application.properties b/spring-5-security/src/main/resources/application.properties index 5912b0f755..8159ace060 100644 --- a/spring-5-security/src/main/resources/application.properties +++ b/spring-5-security/src/main/resources/application.properties @@ -2,4 +2,6 @@ server.port=8081 logging.level.root=INFO -logging.level.com.baeldung.dsl.ClientErrorLoggingFilter=DEBUG \ No newline at end of file +logging.level.com.baeldung.dsl.ClientErrorLoggingFilter=DEBUG + +logging.level.org.springframework.security=DEBUG \ No newline at end of file diff --git a/spring-5-security/src/test/java/com/baeldung/logoutredirects/LogoutApplicationUnitTest.java b/spring-5-security/src/test/java/com/baeldung/logoutredirects/LogoutApplicationUnitTest.java new file mode 100644 index 0000000000..519a6bdc99 --- /dev/null +++ b/spring-5-security/src/test/java/com/baeldung/logoutredirects/LogoutApplicationUnitTest.java @@ -0,0 +1,34 @@ +package com.baeldung.logoutredirects; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.unauthenticated; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +@RunWith(SpringRunner.class) +@WebMvcTest() +public class LogoutApplicationUnitTest { + + @Autowired + private MockMvc mockMvc; + + @WithMockUser(value = "spring") + @Test + public void whenLogout_thenDisableRedirect() throws Exception { + + this.mockMvc.perform(post("/logout").with(csrf())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$").doesNotExist()) + .andExpect(unauthenticated()) + .andReturn(); + } + +} \ No newline at end of file diff --git a/spring-boot-modules/pom.xml b/spring-boot-modules/pom.xml index 84f1f0e86c..3a2f14f5df 100644 --- a/spring-boot-modules/pom.xml +++ b/spring-boot-modules/pom.xml @@ -62,6 +62,7 @@ spring-boot-springdoc spring-boot-testing spring-boot-vue + spring-boot-xml spring-boot-actuator diff --git a/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/errorhandling/controllers/MyErrorController.java b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/errorhandling/controllers/MyErrorController.java index e002ac045d..8a7a3d6e45 100644 --- a/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/errorhandling/controllers/MyErrorController.java +++ b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/errorhandling/controllers/MyErrorController.java @@ -34,7 +34,7 @@ public class MyErrorController implements ErrorController { @Override public String getErrorPath() { - return "/error"; + return null; } } diff --git a/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java new file mode 100644 index 0000000000..a4ccb61dbb --- /dev/null +++ b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java @@ -0,0 +1,21 @@ +package com.baeldung.exitcode.exceptionexitgen; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +public class ExceptionExitCodeGeneratorApplication { + + public static void main(String[] args) { + SpringApplication.run(ExceptionExitCodeGeneratorApplication.class, args); + } + + @Bean + CommandLineRunner failApplication() { + return args -> { + throw new FailedToStartException(); + }; + } +} diff --git a/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java new file mode 100644 index 0000000000..04ac553153 --- /dev/null +++ b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java @@ -0,0 +1,11 @@ +package com.baeldung.exitcode.exceptionexitgen; + +import org.springframework.boot.ExitCodeGenerator; + +public class FailedToStartException extends RuntimeException implements ExitCodeGenerator { + + @Override + public int getExitCode() { + return 127; + } +} diff --git a/spring-boot-modules/spring-boot-basic-customization/src/main/resources/application.properties b/spring-boot-modules/spring-boot-basic-customization/src/main/resources/application.properties index 4d4a6ec7bd..53f13c4767 100644 --- a/spring-boot-modules/spring-boot-basic-customization/src/main/resources/application.properties +++ b/spring-boot-modules/spring-boot-basic-customization/src/main/resources/application.properties @@ -5,3 +5,4 @@ #spring.banner.image.height= //TODO #spring.banner.image.margin= //TODO #spring.banner.image.invert= //TODO +server.error.path=/error diff --git a/spring-boot-modules/spring-boot-crud/pom.xml b/spring-boot-modules/spring-boot-crud/pom.xml index 8ba7bab171..a4be360b0f 100644 --- a/spring-boot-modules/spring-boot-crud/pom.xml +++ b/spring-boot-modules/spring-boot-crud/pom.xml @@ -63,6 +63,7 @@ org.apache.maven.plugins maven-assembly-plugin + 3.3.0 jar-with-dependencies diff --git a/spring-boot-modules/spring-boot-custom-starter/pom.xml b/spring-boot-modules/spring-boot-custom-starter/pom.xml index 17f9fdc2cc..338bf22f46 100644 --- a/spring-boot-modules/spring-boot-custom-starter/pom.xml +++ b/spring-boot-modules/spring-boot-custom-starter/pom.xml @@ -18,6 +18,7 @@ greeter-library + greeter greeter-spring-boot-autoconfigure greeter-spring-boot-starter greeter-spring-boot-sample-app diff --git a/spring-boot-modules/spring-boot-data/README.md b/spring-boot-modules/spring-boot-data/README.md index faa38d475e..98589cf2d2 100644 --- a/spring-boot-modules/spring-boot-data/README.md +++ b/spring-boot-modules/spring-boot-data/README.md @@ -10,3 +10,4 @@ This module contains articles about Spring Boot with Spring Data - [Repositories with Multiple Spring Data Modules](https://www.baeldung.com/spring-multiple-data-modules) - [Spring Custom Property Editor](https://www.baeldung.com/spring-mvc-custom-property-editor) - [Using @JsonComponent in Spring Boot](https://www.baeldung.com/spring-boot-jsoncomponent) +- [Running Setup Data on Startup in Spring](https://www.baeldung.com/running-setup-logic-on-startup-in-spring) diff --git a/spring-core-4/src/main/java/com/baeldung/startup/AllStrategiesExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/AllStrategiesExampleBean.java similarity index 99% rename from spring-core-4/src/main/java/com/baeldung/startup/AllStrategiesExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/AllStrategiesExampleBean.java index e08309d474..53b81da340 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/AllStrategiesExampleBean.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/AllStrategiesExampleBean.java @@ -2,7 +2,6 @@ package com.baeldung.startup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.beans.factory.InitializingBean; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; diff --git a/spring-core-4/src/main/java/com/baeldung/startup/EventListenerExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/EventListenerExampleBean.java similarity index 99% rename from spring-core-4/src/main/java/com/baeldung/startup/EventListenerExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/EventListenerExampleBean.java index a76fc6a2b2..8a2e36ed8e 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/EventListenerExampleBean.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/EventListenerExampleBean.java @@ -2,7 +2,6 @@ package com.baeldung.startup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; diff --git a/spring-core-4/src/main/java/com/baeldung/startup/InitMethodExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InitMethodExampleBean.java similarity index 100% rename from spring-core-4/src/main/java/com/baeldung/startup/InitMethodExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InitMethodExampleBean.java index a3b12028d1..86f61dd395 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/InitMethodExampleBean.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InitMethodExampleBean.java @@ -1,7 +1,5 @@ package com.baeldung.startup; -import java.util.Arrays; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +7,8 @@ import org.springframework.context.annotation.Scope; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; +import java.util.Arrays; + @Component @Scope(value = "prototype") public class InitMethodExampleBean { diff --git a/spring-core-4/src/main/java/com/baeldung/startup/InitializingBeanExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InitializingBeanExampleBean.java similarity index 100% rename from spring-core-4/src/main/java/com/baeldung/startup/InitializingBeanExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InitializingBeanExampleBean.java index c625a172fd..8fef3bf8b7 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/InitializingBeanExampleBean.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InitializingBeanExampleBean.java @@ -1,7 +1,5 @@ package com.baeldung.startup; -import java.util.Arrays; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; @@ -10,6 +8,8 @@ import org.springframework.context.annotation.Scope; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; +import java.util.Arrays; + @Component @Scope(value = "prototype") public class InitializingBeanExampleBean implements InitializingBean { diff --git a/spring-core-4/src/main/java/com/baeldung/startup/InvalidInitExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InvalidInitExampleBean.java similarity index 100% rename from spring-core-4/src/main/java/com/baeldung/startup/InvalidInitExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/InvalidInitExampleBean.java diff --git a/spring-core-4/src/main/java/com/baeldung/startup/LogicInConstructorExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/LogicInConstructorExampleBean.java similarity index 100% rename from spring-core-4/src/main/java/com/baeldung/startup/LogicInConstructorExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/LogicInConstructorExampleBean.java index ade7573bbe..b4a102b09d 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/LogicInConstructorExampleBean.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/LogicInConstructorExampleBean.java @@ -1,7 +1,5 @@ package com.baeldung.startup; -import java.util.Arrays; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +7,8 @@ import org.springframework.context.annotation.Scope; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; +import java.util.Arrays; + @Component @Scope(value = "prototype") public class LogicInConstructorExampleBean { diff --git a/spring-core-4/src/main/java/com/baeldung/startup/PostConstructExampleBean.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/PostConstructExampleBean.java similarity index 99% rename from spring-core-4/src/main/java/com/baeldung/startup/PostConstructExampleBean.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/PostConstructExampleBean.java index 1001043d86..337aa1520a 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/PostConstructExampleBean.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/PostConstructExampleBean.java @@ -1,9 +1,5 @@ package com.baeldung.startup; -import java.util.Arrays; - -import javax.annotation.PostConstruct; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -11,6 +7,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; +import java.util.Arrays; + @Component @Scope(value = "prototype") public class PostConstructExampleBean { diff --git a/spring-core-4/src/main/java/com/baeldung/startup/SpringStartupConfig.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/SpringStartupConfig.java similarity index 100% rename from spring-core-4/src/main/java/com/baeldung/startup/SpringStartupConfig.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/SpringStartupConfig.java diff --git a/spring-core-4/src/main/java/com/baeldung/startup/StartupApplicationListenerExample.java b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/StartupApplicationListenerExample.java similarity index 99% rename from spring-core-4/src/main/java/com/baeldung/startup/StartupApplicationListenerExample.java rename to spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/StartupApplicationListenerExample.java index 2cc5e6abcb..345fb3a625 100644 --- a/spring-core-4/src/main/java/com/baeldung/startup/StartupApplicationListenerExample.java +++ b/spring-boot-modules/spring-boot-data/src/main/java/com/baeldung/startup/StartupApplicationListenerExample.java @@ -2,7 +2,6 @@ package com.baeldung.startup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; diff --git a/spring-core-4/src/main/resources/startupConfig.xml b/spring-boot-modules/spring-boot-data/src/main/resources/startupConfig.xml similarity index 100% rename from spring-core-4/src/main/resources/startupConfig.xml rename to spring-boot-modules/spring-boot-data/src/main/resources/startupConfig.xml diff --git a/spring-core-4/src/test/java/com/baeldung/startup/SpringStartupIntegrationTest.java b/spring-boot-modules/spring-boot-data/src/test/java/com/baeldung/startup/SpringStartupIntegrationTest.java similarity index 100% rename from spring-core-4/src/test/java/com/baeldung/startup/SpringStartupIntegrationTest.java rename to spring-boot-modules/spring-boot-data/src/test/java/com/baeldung/startup/SpringStartupIntegrationTest.java diff --git a/spring-core-4/src/test/java/com/baeldung/startup/SpringStartupXMLConfigIntegrationTest.java b/spring-boot-modules/spring-boot-data/src/test/java/com/baeldung/startup/SpringStartupXMLConfigIntegrationTest.java similarity index 100% rename from spring-core-4/src/test/java/com/baeldung/startup/SpringStartupXMLConfigIntegrationTest.java rename to spring-boot-modules/spring-boot-data/src/test/java/com/baeldung/startup/SpringStartupXMLConfigIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-mvc-2/README.md b/spring-boot-modules/spring-boot-mvc-2/README.md index c42730f9cc..f9becb721f 100644 --- a/spring-boot-modules/spring-boot-mvc-2/README.md +++ b/spring-boot-modules/spring-boot-mvc-2/README.md @@ -11,4 +11,5 @@ This module contains articles about Spring Web MVC in Spring Boot projects. - [Testing REST with multiple MIME types](https://www.baeldung.com/testing-rest-api-with-multiple-media-types) - [Testing Web APIs with Postman Collections](https://www.baeldung.com/postman-testing-collections) - [Spring Boot Consuming and Producing JSON](https://www.baeldung.com/spring-boot-json) +- [Serve Static Resources with Spring](https://www.baeldung.com/spring-mvc-static-resources) - More articles: [[prev -->]](/spring-boot-modules/spring-boot-mvc) diff --git a/spring-boot-modules/spring-boot-mvc-2/pom.xml b/spring-boot-modules/spring-boot-mvc-2/pom.xml index 73a75f020c..0b9213a7ea 100644 --- a/spring-boot-modules/spring-boot-mvc-2/pom.xml +++ b/spring-boot-modules/spring-boot-mvc-2/pom.xml @@ -90,15 +90,15 @@ - jcenter-snapshots + jcenter-release jcenter - http://oss.jfrog.org/artifactory/oss-snapshot-local/ + http://oss.jfrog.org/artifactory/oss-release-local/ - 3.0.0-SNAPSHOT + 3.0.0 com.baeldung.swagger2boot.SpringBootSwaggerApplication 1.4.11.1 diff --git a/spring-boot-modules/spring-boot-mvc-3/README.md b/spring-boot-modules/spring-boot-mvc-3/README.md index 58a3008966..0562224337 100644 --- a/spring-boot-modules/spring-boot-mvc-3/README.md +++ b/spring-boot-modules/spring-boot-mvc-3/README.md @@ -5,4 +5,5 @@ This module contains articles about Spring Web MVC in Spring Boot projects. ### Relevant Articles: - [Circular View Path Error](https://www.baeldung.com/spring-circular-view-path-error) +- [Download an Image or a File with Spring MVC](https://www.baeldung.com/spring-controller-return-image-file) - More articles: [[prev -->]](/spring-boot-modules/spring-boot-mvc-2) diff --git a/spring-boot-modules/spring-boot-mvc-3/pom.xml b/spring-boot-modules/spring-boot-mvc-3/pom.xml index 71b7383ef4..31c43461d2 100644 --- a/spring-boot-modules/spring-boot-mvc-3/pom.xml +++ b/spring-boot-modules/spring-boot-mvc-3/pom.xml @@ -26,6 +26,15 @@ org.springframework.boot spring-boot-starter-thymeleaf + + commons-io + commons-io + ${commons-io.version} + + + 2.7 + + \ No newline at end of file diff --git a/spring-resttemplate/src/main/java/com/baeldung/produceimage/ImageApplication.java b/spring-boot-modules/spring-boot-mvc-3/src/main/java/com/baeldung/produceimage/ImageApplication.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/produceimage/ImageApplication.java rename to spring-boot-modules/spring-boot-mvc-3/src/main/java/com/baeldung/produceimage/ImageApplication.java diff --git a/spring-resttemplate/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java b/spring-boot-modules/spring-boot-mvc-3/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java rename to spring-boot-modules/spring-boot-mvc-3/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java diff --git a/spring-boot-modules/spring-boot-mvc/pom.xml b/spring-boot-modules/spring-boot-mvc/pom.xml index fd6f1b0a8a..9ae6d8341a 100644 --- a/spring-boot-modules/spring-boot-mvc/pom.xml +++ b/spring-boot-modules/spring-boot-mvc/pom.xml @@ -20,9 +20,9 @@ - jcenter-snapshots + jcenter-release jcenter - http://oss.jfrog.org/artifactory/oss-snapshot-local/ + http://oss.jfrog.org/artifactory/oss-release-local/ @@ -148,7 +148,7 @@ - 3.0.0-SNAPSHOT + 3.0.0 1.10.0 2.3.7 diff --git a/spring-boot-modules/spring-boot-properties-2/README.md b/spring-boot-modules/spring-boot-properties-2/README.md index 4e03a4125c..c81ad50e40 100644 --- a/spring-boot-modules/spring-boot-properties-2/README.md +++ b/spring-boot-modules/spring-boot-properties-2/README.md @@ -10,4 +10,5 @@ This module contains articles about Properties in Spring Boot. - [@PropertySource with YAML Files in Spring Boot](https://www.baeldung.com/spring-yaml-propertysource) - [Inject Arrays and Lists From Spring Properties Files](https://www.baeldung.com/spring-inject-arrays-lists) - [Inject a Map from a YAML File with Spring](https://www.baeldung.com/spring-yaml-inject-map) +- [YAML to List of Objects in Spring Boot](https://www.baeldung.com/spring-boot-yaml-list) - More articles: [[<-- prev]](../spring-boot-properties) diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java deleted file mode 100644 index 56231a28bd..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2resource; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@EnableResourceServer -@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2resource") -public class SpringBootOAuth2ResourceApplication { - - public static void main(String[] args) { - new SpringApplicationBuilder() - .profiles("resource") - .sources(SpringBootOAuth2ResourceApplication.class) - .build() - .run(args); - } - - @RestController - class SecuredResourceController { - - @GetMapping("/securedResource") - public String securedResource() { - return "Baeldung Secured Resource OK"; - } - - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java deleted file mode 100644 index 04f046ff78..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.annotation.CurrentSecurityContext; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.security.Principal; - -@EnableResourceServer -@EnableAuthorizationServer -@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2server") -public class SpringBootAuthorizationServerApplication { - - private static final Logger logger = LoggerFactory.getLogger(SpringBootAuthorizationServerApplication.class); - - public static void main(String[] args) { - SpringApplication.run(SpringBootAuthorizationServerApplication.class, args); - } - - @RestController - class UserController { - - @GetMapping("/user") - public Principal user(Principal user) { - return user; - } - - @GetMapping("/authentication") - public Object getAuthentication(@CurrentSecurityContext(expression = "authentication") Authentication authentication) { - logger.info("authentication -> {}", authentication); - return authentication.getDetails(); - } - - @GetMapping("/principal") - public String getPrincipal(@CurrentSecurityContext(expression = "authentication.principal") Principal principal) { - logger.info("principal -> {}", principal); - return principal.getName(); - } - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java deleted file mode 100644 index 2b4135f36d..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@Configuration -@Profile("authz") -public class AuthenticationMananagerConfig extends WebSecurityConfigurerAdapter { - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } -} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java deleted file mode 100644 index 6e21987a89..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; -import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; -import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; - -@Configuration -@Profile("authz") -public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { - - @Autowired - private AuthenticationManager authenticationManager; - - @Override - public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { - endpoints.authenticationManager(authenticationManager); - } - - @Override - public void configure(ClientDetailsServiceConfigurer clients) throws Exception { - clients - .inMemory() - .withClient("baeldung") - .secret(passwordEncoder().encode("baeldung")) - .authorizedGrantTypes("client_credentials", "password", "authorization_code") - .scopes("openid", "read") - .autoApprove(true) - .and() - .withClient("baeldung-admin") - .secret(passwordEncoder().encode("baeldung")) - .authorizedGrantTypes("authorization_code", "client_credentials", "refresh_token") - .scopes("read", "write") - .autoApprove(true); - } - - @Bean - public BCryptPasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java deleted file mode 100644 index 3a8c073870..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@Configuration -@Profile("!authz") -public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { - - @Bean - public AuthenticationManager customAuthenticationManager() throws Exception { - return authenticationManager(); - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java deleted file mode 100644 index 342c246e66..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2sso; - -import org.springframework.boot.autoconfigure.SpringBootApplication; - -import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; -import org.springframework.boot.builder.SpringApplicationBuilder; - -@EnableOAuth2Sso -@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2sso") -public class SpringBootOAuth2SsoApplication { - - public static void main(String[] args) { - new SpringApplicationBuilder() - .profiles("sso") - .sources(SpringBootOAuth2SsoApplication.class) - .build() - .run(args); - } -} diff --git a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java b/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java deleted file mode 100644 index 104e115b18..0000000000 --- a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.server.LocalServerPort; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException; -import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; -import org.springframework.security.oauth2.common.OAuth2AccessToken; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - -import java.net.URL; -import java.util.regex.Pattern; - -import static java.util.Collections.singletonList; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, classes = SpringBootAuthorizationServerApplication.class) -@ActiveProfiles("authz") -public class CustomConfigAuthorizationServerIntegrationTest extends OAuth2IntegrationTestSupport { - - @LocalServerPort - private int port; - - @Before - public void setUp() throws Exception { - base = new URL("http://localhost:" + port); - } - - @Test - public void givenOAuth2Context_whenAccessTokenIsRequested_ThenAccessTokenValueIsNotNull() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("read")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - OAuth2AccessToken accessToken = restTemplate.getAccessToken(); - - assertNotNull(accessToken); - } - - @Test - public void givenOAuth2Context_whenAccessingAuthentication_ThenRespondTokenDetails() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("read")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - String authentication = executeGetRequest(restTemplate, "/authentication"); - - Pattern pattern = Pattern.compile("\\{\"remoteAddress\":\".*" + - "\",\"sessionId\":null,\"tokenValue\":\".*" + - "\",\"tokenType\":\"Bearer\",\"decodedDetails\":null}"); - assertTrue("authentication", pattern.matcher(authentication).matches()); - } - - @Test - public void givenOAuth2Context_whenAccessingPrincipal_ThenRespondBaeldung() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("read")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - String principal = executeGetRequest(restTemplate, "/principal"); - - assertEquals("baeldung", principal); - } - - @Test(expected = OAuth2AccessDeniedException.class) - public void givenOAuth2Context_whenAccessTokenIsRequestedWithInvalidException_ThenExceptionIsThrown() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("write")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - restTemplate.getAccessToken(); - } - - @Test - public void givenOAuth2Context_whenAccessTokenIsRequestedByClientWithWriteScope_ThenAccessTokenIsNotNull() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung-admin", singletonList("write")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - OAuth2AccessToken accessToken = restTemplate.getAccessToken(); - - assertNotNull(accessToken); - } - -} - diff --git a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java b/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java deleted file mode 100644 index 4d7b449380..0000000000 --- a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; -import org.springframework.security.oauth2.common.OAuth2AccessToken; -import org.springframework.test.context.junit4.SpringRunner; - -import static java.util.Arrays.asList; -import static org.junit.Assert.assertNotNull; -import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, classes = SpringBootAuthorizationServerApplication.class, - properties = { "security.oauth2.client.client-id=client", "security.oauth2.client.client-secret=baeldung" }) -public class DefaultConfigAuthorizationServerIntegrationTest extends OAuth2IntegrationTestSupport { - - @Test - public void givenOAuth2Context_whenAccessTokenIsRequested_ThenAccessTokenValueIsNotNull() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("client", asList("read", "write")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - OAuth2AccessToken accessToken = restTemplate.getAccessToken(); - - assertNotNull(accessToken); - - } - -} - diff --git a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java b/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java deleted file mode 100644 index a005965998..0000000000 --- a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.apache.commons.io.IOUtils; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; -import org.springframework.web.client.RequestCallback; -import org.springframework.web.client.ResponseExtractor; - -import java.net.URL; -import java.nio.charset.Charset; -import java.util.List; - -import static java.lang.String.format; -import static java.util.Collections.singletonList; -import static org.springframework.http.HttpMethod.GET; - -public class OAuth2IntegrationTestSupport { - - public static final ResponseExtractor EXTRACT_BODY_AS_STRING = clientHttpResponse -> - IOUtils.toString(clientHttpResponse.getBody(), Charset.defaultCharset()); - private static final RequestCallback DO_NOTHING_CALLBACK = request -> { - }; - - @Value("${local.server.port}") - protected int port; - - protected URL base; - - protected ClientCredentialsResourceDetails getClientCredentialsResourceDetails(final String clientId, final List scopes) { - ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails(); - resourceDetails.setAccessTokenUri(format("http://localhost:%d/oauth/token", port)); - resourceDetails.setClientId(clientId); - resourceDetails.setClientSecret("baeldung"); - resourceDetails.setScope(scopes); - resourceDetails.setGrantType("client_credentials"); - return resourceDetails; - } - - protected OAuth2RestTemplate getOAuth2RestTemplate(final ClientCredentialsResourceDetails resourceDetails) { - DefaultOAuth2ClientContext clientContext = new DefaultOAuth2ClientContext(); - OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resourceDetails, clientContext); - restTemplate.setMessageConverters(singletonList(new MappingJackson2HttpMessageConverter())); - return restTemplate; - } - - protected String executeGetRequest(OAuth2RestTemplate restTemplate, String path) { - return restTemplate.execute(base.toString() + path, GET, DO_NOTHING_CALLBACK, EXTRACT_BODY_AS_STRING); - } - -} diff --git a/spring-boot-modules/spring-boot-testing/src/main/java/com/baeldung/testloglevel/TestLogLevelApplication.java b/spring-boot-modules/spring-boot-testing/src/main/java/com/baeldung/testloglevel/TestLogLevelApplication.java index ed8218c6a3..ef4534938b 100644 --- a/spring-boot-modules/spring-boot-testing/src/main/java/com/baeldung/testloglevel/TestLogLevelApplication.java +++ b/spring-boot-modules/spring-boot-testing/src/main/java/com/baeldung/testloglevel/TestLogLevelApplication.java @@ -3,13 +3,11 @@ package com.baeldung.testloglevel; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import com.baeldung.boot.Application; - @SpringBootApplication(scanBasePackages = {"com.baeldung.testloglevel", "com.baeldung.component"}) public class TestLogLevelApplication { public static void main(String[] args) { - SpringApplication.run(Application.class, args); + SpringApplication.run(TestLogLevelApplication.class, args); } } diff --git a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackMultiProfileTestLogLevelIntegrationTest.java b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackMultiProfileTestLogLevelIntegrationTest.java index f8bd61e5c7..ffe99672be 100644 --- a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackMultiProfileTestLogLevelIntegrationTest.java +++ b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackMultiProfileTestLogLevelIntegrationTest.java @@ -16,9 +16,9 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_CLASS; +import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD; -@DirtiesContext(classMode = AFTER_CLASS) +@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD) @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = TestLogLevelApplication.class) @EnableAutoConfiguration(exclude = SecurityAutoConfiguration.class) diff --git a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackTestLogLevelIntegrationTest.java b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackTestLogLevelIntegrationTest.java index ffe9d400ed..cbd22e8087 100644 --- a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackTestLogLevelIntegrationTest.java +++ b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/LogbackTestLogLevelIntegrationTest.java @@ -16,9 +16,9 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_CLASS; +import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD; -@DirtiesContext(classMode = AFTER_CLASS) +@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD) @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = TestLogLevelApplication.class) @EnableAutoConfiguration(exclude = SecurityAutoConfiguration.class) diff --git a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/TestLogLevelWithProfileIntegrationTest.java b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/TestLogLevelWithProfileIntegrationTest.java index 6e80f50c00..571b826b80 100644 --- a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/TestLogLevelWithProfileIntegrationTest.java +++ b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/testloglevel/TestLogLevelWithProfileIntegrationTest.java @@ -16,10 +16,10 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_CLASS; +import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD; @RunWith(SpringRunner.class) -@DirtiesContext(classMode = AFTER_CLASS) +@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = TestLogLevelApplication.class) @EnableAutoConfiguration(exclude = SecurityAutoConfiguration.class) @ActiveProfiles("logging-test") diff --git a/spring-boot-modules/spring-boot-xml/pom.xml b/spring-boot-modules/spring-boot-xml/pom.xml new file mode 100644 index 0000000000..e1ddd8f437 --- /dev/null +++ b/spring-boot-modules/spring-boot-xml/pom.xml @@ -0,0 +1,40 @@ + + + + parent-boot-2 + com.baeldung + 0.0.1-SNAPSHOT + ../../parent-boot-2 + + + 4.0.0 + + spring-boot-xml + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-test + + + junit + junit + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/Pojo.java b/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/Pojo.java new file mode 100644 index 0000000000..8c8b47ed40 --- /dev/null +++ b/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/Pojo.java @@ -0,0 +1,17 @@ +package com.baeldung.springbootxml; + +public class Pojo { + + private String field; + + public Pojo() { + } + + public String getField() { + return field; + } + + public void setField(String field) { + this.field = field; + } +} diff --git a/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/SpringBootXmlApplication.java b/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/SpringBootXmlApplication.java new file mode 100644 index 0000000000..addf24c427 --- /dev/null +++ b/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/SpringBootXmlApplication.java @@ -0,0 +1,29 @@ +package com.baeldung.springbootxml; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@EnableAutoConfiguration +@ImportResource("classpath:beans.xml") +public class SpringBootXmlApplication implements CommandLineRunner { + + private static final Logger logger = LoggerFactory.getLogger(SpringBootXmlApplication.class); + + @Autowired private Pojo pojo; + + public static void main(String[] args) { + SpringApplication.run(SpringBootXmlApplication.class, args); + } + + public void run(String... args) { + logger.info(pojo.getField()); + } + +} diff --git a/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/SpringBootXmlApplicationIntegrationTest.java b/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/SpringBootXmlApplicationIntegrationTest.java new file mode 100644 index 0000000000..2c3993d0d8 --- /dev/null +++ b/spring-boot-modules/spring-boot-xml/src/main/java/com/baeldung/springbootxml/SpringBootXmlApplicationIntegrationTest.java @@ -0,0 +1,26 @@ +package com.baeldung.springbootxml; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = SpringBootXmlApplication.class) +public class SpringBootXmlApplicationIntegrationTest { + + @Autowired private Pojo pojo; + @Value("${sample}") private String sample; + + @Test + public void whenCallingGetter_thenPrintingProperty() { + assertThat(pojo.getField()) + .isNotBlank() + .isEqualTo(sample); + } + +} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-xml/src/main/resources/application.properties b/spring-boot-modules/spring-boot-xml/src/main/resources/application.properties new file mode 100644 index 0000000000..ab9de92c82 --- /dev/null +++ b/spring-boot-modules/spring-boot-xml/src/main/resources/application.properties @@ -0,0 +1 @@ +sample=string loaded from properties! \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-xml/src/main/resources/beans.xml b/spring-boot-modules/spring-boot-xml/src/main/resources/beans.xml new file mode 100644 index 0000000000..200afecbc9 --- /dev/null +++ b/spring-boot-modules/spring-boot-xml/src/main/resources/beans.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/spring-boot-modules/spring-boot/README.MD b/spring-boot-modules/spring-boot/README.MD index fb1c20e988..c95fe51842 100644 --- a/spring-boot-modules/spring-boot/README.MD +++ b/spring-boot-modules/spring-boot/README.MD @@ -25,4 +25,3 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Spring Shutdown Callbacks](https://www.baeldung.com/spring-shutdown-callbacks) - [Container Configuration in Spring Boot 2](https://www.baeldung.com/embeddedservletcontainercustomizer-configurableembeddedservletcontainer-spring-boot) - [Validation in Spring Boot](https://www.baeldung.com/spring-boot-bean-validation) -- [Running Setup Data on Startup in Spring](https://www.baeldung.com/running-setup-logic-on-startup-in-spring) diff --git a/spring-cloud/pom.xml b/spring-cloud/pom.xml index 0e2cac1ff9..99fde0daf4 100644 --- a/spring-cloud/pom.xml +++ b/spring-cloud/pom.xml @@ -41,6 +41,8 @@ spring-cloud-zuul spring-cloud-zuul-fallback spring-cloud-ribbon-retry + spring-cloud-circuit-breaker + spring-cloud-eureka-self-preservation diff --git a/spring-cloud/spring-cloud-openfeign/pom.xml b/spring-cloud/spring-cloud-openfeign/pom.xml index df529d7fb1..c1f3f2dc30 100644 --- a/spring-cloud/spring-cloud-openfeign/pom.xml +++ b/spring-cloud/spring-cloud-openfeign/pom.xml @@ -51,8 +51,7 @@ - 2.0.1.RELEASE - Finchley.SR2 + Hoxton.SR6 diff --git a/spring-cloud/spring-cloud-stream/pom.xml b/spring-cloud/spring-cloud-stream/pom.xml index ebaaab0801..17c788c000 100644 --- a/spring-cloud/spring-cloud-stream/pom.xml +++ b/spring-cloud/spring-cloud-stream/pom.xml @@ -14,7 +14,9 @@ + spring-cloud-stream-kafka spring-cloud-stream-rabbit + spring-cloud-stream-kinesis diff --git a/spring-cloud/spring-cloud-zuul/pom.xml b/spring-cloud/spring-cloud-zuul/pom.xml index 140a1337b3..b3c66dd1c6 100644 --- a/spring-cloud/spring-cloud-zuul/pom.xml +++ b/spring-cloud/spring-cloud-zuul/pom.xml @@ -72,8 +72,7 @@ - Hoxton.RELEASE - 2.2.2.RELEASE + Hoxton.SR4 diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml index 8643309645..0ca9f0d050 100644 --- a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml +++ b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml @@ -18,8 +18,4 @@ - - Hoxton.SR1 - - \ No newline at end of file diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml b/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml index fd6d18fc09..8873282d1e 100644 --- a/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml +++ b/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml @@ -48,8 +48,6 @@ - Finchley.SR1 - 2.0.6.RELEASE 2.2.0.RELEASE diff --git a/spring-core-4/README.md b/spring-core-4/README.md index 706c330f39..03a6747c1d 100644 --- a/spring-core-4/README.md +++ b/spring-core-4/README.md @@ -9,6 +9,6 @@ This module contains articles about core Spring functionality - [Spring @Import Annotation](https://www.baeldung.com/spring-import-annotation) - [Spring BeanPostProcessor](https://www.baeldung.com/spring-beanpostprocessor) - [Using @Autowired in Abstract Classes](https://www.baeldung.com/spring-autowired-abstract-class) -- [Running Setup Data on Startup in Spring](https://www.baeldung.com/running-setup-logic-on-startup-in-spring) - [Constructor Injection in Spring with Lombok](https://www.baeldung.com/spring-injection-lombok) +- [The Spring ApplicationContext](https://www.baeldung.com/spring-application-context) - More articles: [[<-- prev]](/spring-core-3) diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java index fde56bebc0..9b79f716e9 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java @@ -30,23 +30,23 @@ public class KafkaApplication { MessageListener listener = context.getBean(MessageListener.class); /* * Sending a Hello World message to topic 'baeldung'. - * Must be recieved by both listeners with group foo + * Must be received by both listeners with group foo * and bar with containerFactory fooKafkaListenerContainerFactory * and barKafkaListenerContainerFactory respectively. - * It will also be recieved by the listener with - * headersKafkaListenerContainerFactory as container factory + * It will also be received by the listener with + * headersKafkaListenerContainerFactory as container factory. */ producer.sendMessage("Hello, World!"); listener.latch.await(10, TimeUnit.SECONDS); /* - * Sending message to a topic with 5 partition, + * Sending message to a topic with 5 partitions, * each message to a different partition. But as per * listener configuration, only the messages from * partition 0 and 3 will be consumed. */ for (int i = 0; i < 5; i++) { - producer.sendMessageToPartion("Hello To Partioned Topic!", i); + producer.sendMessageToPartition("Hello To Partitioned Topic!", i); } listener.partitionLatch.await(10, TimeUnit.SECONDS); @@ -61,7 +61,7 @@ public class KafkaApplication { /* * Sending message to 'greeting' topic. This will send - * and recieved a java object with the help of + * and received a java object with the help of * greetingKafkaListenerContainerFactory. */ producer.sendGreetingMessage(new Greeting("Greetings", "World!")); @@ -92,7 +92,7 @@ public class KafkaApplication { private String topicName; @Value(value = "${partitioned.topic.name}") - private String partionedTopicName; + private String partitionedTopicName; @Value(value = "${filtered.topic.name}") private String filteredTopicName; @@ -119,8 +119,8 @@ public class KafkaApplication { }); } - public void sendMessageToPartion(String message, int partition) { - kafkaTemplate.send(partionedTopicName, partition, null, message); + public void sendMessageToPartition(String message, int partition) { + kafkaTemplate.send(partitionedTopicName, partition, null, message); } public void sendMessageToFiltered(String message) { @@ -144,37 +144,37 @@ public class KafkaApplication { @KafkaListener(topics = "${message.topic.name}", groupId = "foo", containerFactory = "fooKafkaListenerContainerFactory") public void listenGroupFoo(String message) { - System.out.println("Received Messasge in group 'foo': " + message); + System.out.println("Received Message in group 'foo': " + message); latch.countDown(); } @KafkaListener(topics = "${message.topic.name}", groupId = "bar", containerFactory = "barKafkaListenerContainerFactory") public void listenGroupBar(String message) { - System.out.println("Received Messasge in group 'bar': " + message); + System.out.println("Received Message in group 'bar': " + message); latch.countDown(); } @KafkaListener(topics = "${message.topic.name}", containerFactory = "headersKafkaListenerContainerFactory") public void listenWithHeaders(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { - System.out.println("Received Messasge: " + message + " from partition: " + partition); + System.out.println("Received Message: " + message + " from partition: " + partition); latch.countDown(); } @KafkaListener(topicPartitions = @TopicPartition(topic = "${partitioned.topic.name}", partitions = { "0", "3" }), containerFactory = "partitionsKafkaListenerContainerFactory") - public void listenToParition(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { + public void listenToPartition(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { System.out.println("Received Message: " + message + " from partition: " + partition); this.partitionLatch.countDown(); } @KafkaListener(topics = "${filtered.topic.name}", containerFactory = "filterKafkaListenerContainerFactory") public void listenWithFilter(String message) { - System.out.println("Recieved Message in filtered listener: " + message); + System.out.println("Received Message in filtered listener: " + message); this.filterLatch.countDown(); } @KafkaListener(topics = "${greeting.topic.name}", containerFactory = "greetingKafkaListenerContainerFactory") public void greetingListener(Greeting greeting) { - System.out.println("Recieved greeting message: " + greeting); + System.out.println("Received greeting message: " + greeting); this.greetingLatch.countDown(); } diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java index fb60fadde4..00e4147cd0 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java @@ -20,7 +20,7 @@ public class KafkaTopicConfig { private String topicName; @Value(value = "${partitioned.topic.name}") - private String partionedTopicName; + private String partitionedTopicName; @Value(value = "${filtered.topic.name}") private String filteredTopicName; @@ -42,7 +42,7 @@ public class KafkaTopicConfig { @Bean public NewTopic topic2() { - return new NewTopic(partionedTopicName, 6, (short) 1); + return new NewTopic(partitionedTopicName, 6, (short) 1); } @Bean diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/CustomWebMvcConfigurationSupport.java b/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable.dottruncated/CustomWebMvcConfigurationSupport.java similarity index 92% rename from spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/CustomWebMvcConfigurationSupport.java rename to spring-mvc-java-2/src/main/java/com/baeldung/pathvariable.dottruncated/CustomWebMvcConfigurationSupport.java index 12c208c623..24d5a447ab 100644 --- a/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/CustomWebMvcConfigurationSupport.java +++ b/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable.dottruncated/CustomWebMvcConfigurationSupport.java @@ -1,4 +1,4 @@ -package com.baeldung.pathvariable; +package com.baeldung.pathvariable.dottruncated; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/SiteController.java b/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable.dottruncated/SiteController.java similarity index 96% rename from spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/SiteController.java rename to spring-mvc-java-2/src/main/java/com/baeldung/pathvariable.dottruncated/SiteController.java index 493161b0eb..c9584afdc9 100644 --- a/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/SiteController.java +++ b/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable.dottruncated/SiteController.java @@ -1,4 +1,4 @@ -package com.baeldung.pathvariable; +package com.baeldung.pathvariable.dottruncated; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/PathVariableAnnotationController.java b/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/PathVariableAnnotationController.java new file mode 100644 index 0000000000..0cbd852095 --- /dev/null +++ b/spring-mvc-java-2/src/main/java/com/baeldung/pathvariable/PathVariableAnnotationController.java @@ -0,0 +1,89 @@ +package com.baeldung.pathvariable; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; +import java.util.Optional; + +@RestController +public class PathVariableAnnotationController { + @GetMapping("/api/employees/{id}") + @ResponseBody + public String getEmployeesById(@PathVariable String id) { + return "ID: " + id; + } + + @GetMapping("/api/employeeswithvariable/{id}") + @ResponseBody + public String getEmployeesByIdWithVariableName(@PathVariable("id") String employeeId) { + return "ID: " + employeeId; + } + + @GetMapping("/api/employees/{id}/{name}") + @ResponseBody + public String getEmployeesByIdAndName(@PathVariable String id, @PathVariable String name) { + return "ID: " + id + ", name: " + name; + } + + @GetMapping("/api/employeeswithmapvariable/{id}/{name}") + @ResponseBody + public String getEmployeesByIdAndNameWithMapVariable(@PathVariable Map pathVarsMap) { + String id = pathVarsMap.get("id"); + String name = pathVarsMap.get("name"); + if (id != null && name != null) { + return "ID: " + id + ", name: " + name; + } else { + return "Missing Parameters"; + } + } + + @GetMapping(value = { "/api/employeeswithrequired", "/api/employeeswithrequired/{id}" }) + @ResponseBody + public String getEmployeesByIdWithRequired(@PathVariable String id) { + return "ID: " + id; + } + + @GetMapping(value = { "/api/employeeswithrequiredfalse", "/api/employeeswithrequiredfalse/{id}" }) + @ResponseBody + public String getEmployeesByIdWithRequiredFalse(@PathVariable(required = false) String id) { + if (id != null) { + return "ID: " + id; + } else { + return "ID missing"; + } + } + + @GetMapping(value = { "/api/employeeswithoptional", "/api/employeeswithoptional/{id}" }) + @ResponseBody + public String getEmployeesByIdWithOptional(@PathVariable Optional id) { + if (id.isPresent()) { + return "ID: " + id.get(); + } else { + return "ID missing"; + } + } + + @GetMapping(value = { "/api/defaultemployeeswithoptional", "/api/defaultemployeeswithoptional/{id}" }) + @ResponseBody + public String getDefaultEmployeesByIdWithOptional(@PathVariable Optional id) { + if (id.isPresent()) { + return "ID: " + id.get(); + } else { + return "ID: Default Employee"; + } + } + + @GetMapping(value = { "/api/employeeswithmap/{id}", "/api/employeeswithmap" }) + @ResponseBody + public String getEmployeesByIdWithMap(@PathVariable Map pathVarsMap) { + String id = pathVarsMap.get("id"); + if (id != null) { + return "ID: " + id; + } else { + return "ID missing"; + } + } +} diff --git a/spring-resttemplate-2/README.md b/spring-resttemplate-2/README.md index d7a8a8633a..e1e0ba40b0 100644 --- a/spring-resttemplate-2/README.md +++ b/spring-resttemplate-2/README.md @@ -5,3 +5,6 @@ This module contains articles about Spring RestTemplate ### Relevant Articles: - [Spring RestTemplate Request/Response Logging](https://www.baeldung.com/spring-resttemplate-logging) +- [Proxies With RestTemplate](https://www.baeldung.com/java-resttemplate-proxy) +- [A Custom Media Type for a Spring REST API](https://www.baeldung.com/spring-rest-custom-media-type) +- [RestTemplate Post Request with JSON](https://www.baeldung.com/spring-resttemplate-post-json) diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java b/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java new file mode 100644 index 0000000000..8df3c13d7b --- /dev/null +++ b/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java @@ -0,0 +1,13 @@ +package com.baeldung.resttemplate; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class RestTemplateConfigurationApplication { + + public static void main(String[] args) { + SpringApplication.run(RestTemplateConfigurationApplication.class, args); + } +} diff --git a/spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java b/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java rename to spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java diff --git a/spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/dto/Person.java b/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/dto/Person.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/dto/Person.java rename to spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/dto/Person.java diff --git a/spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java b/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java rename to spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java diff --git a/spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java b/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java rename to spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java b/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java new file mode 100644 index 0000000000..cac12c6978 --- /dev/null +++ b/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java @@ -0,0 +1,17 @@ +package com.baeldung.sampleapp.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +@EnableWebMvc +@ComponentScan({ "com.baeldung.sampleapp.web" }) +public class WebConfig implements WebMvcConfigurer { + + public WebConfig() { + super(); + } + +} diff --git a/spring-resttemplate/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java b/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java rename to spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java diff --git a/spring-resttemplate/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java b/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java rename to spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java diff --git a/spring-resttemplate/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java b/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java similarity index 100% rename from spring-resttemplate/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java rename to spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java diff --git a/spring-resttemplate/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java b/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java similarity index 100% rename from spring-resttemplate/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java rename to spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java diff --git a/spring-resttemplate/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java b/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java similarity index 100% rename from spring-resttemplate/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java rename to spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java diff --git a/spring-resttemplate/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java b/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java similarity index 100% rename from spring-resttemplate/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java rename to spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java diff --git a/spring-resttemplate/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java b/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java similarity index 100% rename from spring-resttemplate/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java rename to spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java diff --git a/spring-resttemplate/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java b/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java similarity index 100% rename from spring-resttemplate/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java rename to spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java diff --git a/spring-resttemplate/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java b/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java similarity index 100% rename from spring-resttemplate/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java rename to spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java diff --git a/spring-resttemplate/README.md b/spring-resttemplate/README.md index bbfda4f6b8..952f35e90b 100644 --- a/spring-resttemplate/README.md +++ b/spring-resttemplate/README.md @@ -11,16 +11,11 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Spring RestTemplate Error Handling](https://www.baeldung.com/spring-rest-template-error-handling) - [Configure a RestTemplate with RestTemplateBuilder](https://www.baeldung.com/spring-rest-template-builder) - [Mocking a RestTemplate in Spring](https://www.baeldung.com/spring-mock-rest-template) -- [RestTemplate Post Request with JSON](https://www.baeldung.com/spring-resttemplate-post-json) - [Download a Large File Through a Spring RestTemplate](https://www.baeldung.com/spring-resttemplate-download-large-file) - [Using the Spring RestTemplate Interceptor](https://www.baeldung.com/spring-rest-template-interceptor) - [Uploading MultipartFile with Spring RestTemplate](https://www.baeldung.com/spring-rest-template-multipart-upload) - [Get and Post Lists of Objects with RestTemplate](https://www.baeldung.com/spring-rest-template-list) -- [Copy of RestTemplate Post Request with JSON](https://www.baeldung.com/spring-resttemplate-post-json-test) - [HTTP PUT vs HTTP PATCH in a REST API](https://www.baeldung.com/http-put-patch-difference-spring) -- [A Custom Media Type for a Spring REST API](https://www.baeldung.com/spring-rest-custom-media-type) -- [Download an Image or a File with Spring MVC](https://www.baeldung.com/spring-controller-return-image-file) -- [Proxies With RestTemplate](https://www.baeldung.com/java-resttemplate-proxy) ### NOTE: diff --git a/spring-resttemplate/src/test/java/com/baeldung/SpringContextTest.java b/spring-resttemplate/src/test/java/com/baeldung/SpringContextTest.java index 19d5eabd2b..43901cf37f 100644 --- a/spring-resttemplate/src/test/java/com/baeldung/SpringContextTest.java +++ b/spring-resttemplate/src/test/java/com/baeldung/SpringContextTest.java @@ -5,12 +5,10 @@ import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.produceimage.ImageApplication; import com.baeldung.responseheaders.ResponseHeadersApplication; @RunWith(SpringRunner.class) -@SpringBootTest(classes = { ImageApplication.class, - ResponseHeadersApplication.class, +@SpringBootTest(classes = { ResponseHeadersApplication.class, com.baeldung.web.upload.app.UploadApplication.class, }) public class SpringContextTest { diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml index 472c6b6e0d..815b84d448 100644 --- a/spring-security-modules/pom.xml +++ b/spring-security-modules/pom.xml @@ -16,27 +16,26 @@ spring-security-acl spring-security-auth0 - spring-security-angular/server + spring-security-web-angular/server spring-security-config spring-security-core - spring-security-mvc - spring-security-mvc-boot-1 - spring-security-mvc-boot-2 - spring-security-mvc-custom - spring-security-mvc-digest-auth - spring-security-mvc-jsonview + spring-security-web-mvc + spring-security-web-boot-1 + spring-security-web-boot-2 + spring-security-web-mvc-custom + spring-security-web-digest-auth + spring-security-web-jsonview spring-security-ldap - spring-security-mvc-login - spring-security-mvc-persisted-remember-me - spring-security-mvc-socket + spring-security-web-login + spring-security-web-persisted-remember-me + spring-security-web-sockets spring-security-oidc spring-security-okta - spring-security-react + spring-security-web-react spring-security-rest spring-security-rest-basic-auth spring-security-rest-custom - spring-security-sso - spring-security-stormpath + spring-security-oauth2-sso spring-security-thymeleaf spring-security-x509 spring-security-kotlin-dsl diff --git a/spring-security-modules/spring-security-config/cors/pom.xml b/spring-security-modules/spring-security-config/cors/pom.xml index 19ca7f5ccc..175b21a77d 100644 --- a/spring-security-modules/spring-security-config/cors/pom.xml +++ b/spring-security-modules/spring-security-config/cors/pom.xml @@ -11,6 +11,7 @@ com.baeldung spring-security-modules 0.0.1-SNAPSHOT + ../../ diff --git a/spring-security-modules/spring-security-config/pom.xml b/spring-security-modules/spring-security-config/pom.xml index b3796d1cc6..2b6b6b6b4e 100644 --- a/spring-security-modules/spring-security-config/pom.xml +++ b/spring-security-modules/spring-security-config/pom.xml @@ -11,6 +11,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../../ diff --git a/spring-security-modules/spring-security-sso/README.md b/spring-security-modules/spring-security-oauth2-sso/README.md similarity index 100% rename from spring-security-modules/spring-security-sso/README.md rename to spring-security-modules/spring-security-oauth2-sso/README.md diff --git a/spring-security-modules/spring-security-sso/pom.xml b/spring-security-modules/spring-security-oauth2-sso/pom.xml similarity index 92% rename from spring-security-modules/spring-security-sso/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/pom.xml index 4e5bb49aa3..ed4b1d64ba 100644 --- a/spring-security-modules/spring-security-sso/pom.xml +++ b/spring-security-modules/spring-security-oauth2-sso/pom.xml @@ -3,9 +3,9 @@ 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-security-sso + spring-security-oauth2-sso 1.0.0-SNAPSHOT - spring-security-sso + spring-security-oauth2-sso pom diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/application.properties b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/application.properties rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-angular/server/src/main/resources/logback.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/resources/logback.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/.gitignore b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/.gitignore similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/.gitignore rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/.gitignore diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/README.md b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/README.md similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/README.md rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/README.md diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/application.properties b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/application.properties rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/application.yml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/application.yml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/application.yml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/application.yml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/logback.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/logback.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/application.yml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/application.yml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/application.yml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/application.yml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/index.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-oidc/pom.xml b/spring-security-modules/spring-security-oidc/pom.xml index 91e4641450..b9a4b340a3 100644 --- a/spring-security-modules/spring-security-oidc/pom.xml +++ b/spring-security-modules/spring-security-oidc/pom.xml @@ -26,8 +26,4 @@ - - 2.2.1.RELEASE - - diff --git a/spring-security-modules/spring-security-stormpath/README.md b/spring-security-modules/spring-security-stormpath/README.md deleted file mode 100644 index 971d4cc858..0000000000 --- a/spring-security-modules/spring-security-stormpath/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Spring Security Stormpath - -This module contains articles about Spring Security with Stormpath - -### Relevant articles - -- [Spring Security with Stormpath](https://www.baeldung.com/spring-security-stormpath) diff --git a/spring-security-modules/spring-security-stormpath/pom.xml b/spring-security-modules/spring-security-stormpath/pom.xml deleted file mode 100644 index 81a7c40aef..0000000000 --- a/spring-security-modules/spring-security-stormpath/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - 4.0.0 - spring-security-stormpath - 1.0-SNAPSHOT - spring-security-stormpath - war - http://maven.apache.org - - - - abhinabkanrar@gmail.com - Abhinab Kanrar - https://github.com/AbhinabKanrar - abhinabkanrar - - - - - com.baeldung - parent-boot-1 - 0.0.1-SNAPSHOT - ../../parent-boot-1 - - - - - org.springframework.boot - spring-boot-starter-web - - - com.stormpath.spring - stormpath-default-spring-boot-starter - ${stormpath-spring.version} - - - - - spring-security-stormpath - - - src/main/resources - - - - - org.springframework.boot - spring-boot-maven-plugin - - true - - - - - repackage - - - - - - - - - 1.5.4 - - - diff --git a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java b/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java deleted file mode 100644 index 3d1409eaeb..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package com.baeldung; - -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @author abhinab - * - */ -@SpringBootApplication -public class Application implements CommandLineRunner { - - @Override - public void run(String... args) throws Exception { - } - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } - -} diff --git a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java b/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java deleted file mode 100644 index 5d75ecea8a..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.baeldung.security; - -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -import static com.stormpath.spring.config.StormpathWebSecurityConfigurer.stormpath; - -/** - * @author abhinab - * - */ -@Configuration -public class SecurityConfiguration extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http.apply(stormpath()); - } - -} diff --git a/spring-security-modules/spring-security-stormpath/src/main/resources/application.properties b/spring-security-modules/spring-security-stormpath/src/main/resources/application.properties deleted file mode 100644 index 64a9ca456c..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -security.basic.enabled = false - -stormpath.web.stormpathFilter.order = 0 - -stormpath.client.apiKey.id = 668HU0EOZQ7F4MT53ND2HSGBA -stormpath.client.apiKey.secret = RPTaYX07csTJR0AMKjM462KRdiP6q037kBWoDrBC3DI diff --git a/spring-security-modules/spring-security-angular/README.md b/spring-security-modules/spring-security-web-angular/README.md similarity index 100% rename from spring-security-modules/spring-security-angular/README.md rename to spring-security-modules/spring-security-web-angular/README.md diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/app.js b/spring-security-modules/spring-security-web-angular/client/anguarjs/app.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/app.js rename to spring-security-modules/spring-security-web-angular/client/anguarjs/app.js diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/home/home.controller.js b/spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.controller.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/home/home.controller.js rename to spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.controller.js diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/home/home.view.html b/spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.view.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/home/home.view.html rename to spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.view.html diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/index.html b/spring-security-modules/spring-security-web-angular/client/anguarjs/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/index.html rename to spring-security-modules/spring-security-web-angular/client/anguarjs/index.html diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/login/login.controller.js b/spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.controller.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/login/login.controller.js rename to spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.controller.js diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/login/login.view.html b/spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.view.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/login/login.view.html rename to spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.view.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app.css b/spring-security-modules/spring-security-web-angular/client/angular2/app.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app.css rename to spring-security-modules/spring-security-web-angular/client/angular2/app.css diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/main.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/index.html b/spring-security-modules/spring-security-web-angular/client/angular2/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/index.html rename to spring-security-modules/spring-security-web-angular/client/angular2/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/package.json b/spring-security-modules/spring-security-web-angular/client/angular2/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/package.json rename to spring-security-modules/spring-security-web-angular/client/angular2/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular2/systemjs.config.js b/spring-security-modules/spring-security-web-angular/client/angular2/systemjs.config.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/systemjs.config.js rename to spring-security-modules/spring-security-web-angular/client/angular2/systemjs.config.js diff --git a/spring-security-modules/spring-security-angular/client/angular2/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular2/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular2/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/.angular-cli.json b/spring-security-modules/spring-security-web-angular/client/angular4/.angular-cli.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/.angular-cli.json rename to spring-security-modules/spring-security-web-angular/client/angular4/.angular-cli.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/package.json b/spring-security-modules/spring-security-web-angular/client/angular4/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/package.json rename to spring-security-modules/spring-security-web-angular/client/angular4/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/index.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/index.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/main.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/polyfills.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/polyfills.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/polyfills.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/polyfills.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/styles.css b/spring-security-modules/spring-security-web-angular/client/angular4/src/styles.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/styles.css rename to spring-security-modules/spring-security-web-angular/client/angular4/src/styles.css diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/tsconfig.app.json b/spring-security-modules/spring-security-web-angular/client/angular4/src/tsconfig.app.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/tsconfig.app.json rename to spring-security-modules/spring-security-web-angular/client/angular4/src/tsconfig.app.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular4/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular4/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/tslint.json b/spring-security-modules/spring-security-web-angular/client/angular4/tslint.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/tslint.json rename to spring-security-modules/spring-security-web-angular/client/angular4/tslint.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/.angular-cli.json b/spring-security-modules/spring-security-web-angular/client/angular5/.angular-cli.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/.angular-cli.json rename to spring-security-modules/spring-security-web-angular/client/angular5/.angular-cli.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/package.json b/spring-security-modules/spring-security-web-angular/client/angular5/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/package.json rename to spring-security-modules/spring-security-web-angular/client/angular5/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/index.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/index.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/main.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/polyfills.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/polyfills.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/polyfills.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/polyfills.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/styles.css b/spring-security-modules/spring-security-web-angular/client/angular5/src/styles.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/styles.css rename to spring-security-modules/spring-security-web-angular/client/angular5/src/styles.css diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/tsconfig.app.json b/spring-security-modules/spring-security-web-angular/client/angular5/src/tsconfig.app.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/tsconfig.app.json rename to spring-security-modules/spring-security-web-angular/client/angular5/src/tsconfig.app.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular5/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular5/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/tslint.json b/spring-security-modules/spring-security-web-angular/client/angular5/tslint.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/tslint.json rename to spring-security-modules/spring-security-web-angular/client/angular5/tslint.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/angular.json b/spring-security-modules/spring-security-web-angular/client/angular6/angular.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/angular.json rename to spring-security-modules/spring-security-web-angular/client/angular6/angular.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/package.json b/spring-security-modules/spring-security-web-angular/client/angular6/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/package.json rename to spring-security-modules/spring-security-web-angular/client/angular6/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/index.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/index.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/main.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/polyfills.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/polyfills.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/polyfills.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/polyfills.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/styles.css b/spring-security-modules/spring-security-web-angular/client/angular6/src/styles.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/styles.css rename to spring-security-modules/spring-security-web-angular/client/angular6/src/styles.css diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/tsconfig.app.json b/spring-security-modules/spring-security-web-angular/client/angular6/src/tsconfig.app.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/tsconfig.app.json rename to spring-security-modules/spring-security-web-angular/client/angular6/src/tsconfig.app.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular6/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular6/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/tslint.json b/spring-security-modules/spring-security-web-angular/client/angular6/tslint.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/tslint.json rename to spring-security-modules/spring-security-web-angular/client/angular6/tslint.json diff --git a/spring-security-modules/spring-security-angular/server/pom.xml b/spring-security-modules/spring-security-web-angular/server/pom.xml similarity index 100% rename from spring-security-modules/spring-security-angular/server/pom.xml rename to spring-security-modules/spring-security-web-angular/server/pom.xml diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/resources/application.properties b/spring-security-modules/spring-security-web-angular/server/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-angular/server/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-angular/server/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-angular/server/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java b/spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java rename to spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/README.md b/spring-security-modules/spring-security-web-boot-1/README.md similarity index 92% rename from spring-security-modules/spring-security-mvc-boot-1/README.md rename to spring-security-modules/spring-security-web-boot-1/README.md index f2c161d387..042fedf62b 100644 --- a/spring-security-modules/spring-security-mvc-boot-1/README.md +++ b/spring-security-modules/spring-security-web-boot-1/README.md @@ -13,5 +13,5 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com - [Granted Authority Versus Role in Spring Security](https://www.baeldung.com/spring-security-granted-authority-vs-role) - [Spring Security – Whitelist IP Range](https://www.baeldung.com/spring-security-whitelist-ip-range) - [Find the Registered Spring Security Filters](https://www.baeldung.com/spring-security-registered-filters) -- More articles: [[next -->]](/../spring-security-mvc-boot-2) +- More articles: [[next -->]](/spring-security-modules/spring-security-web-boot-2) diff --git a/spring-security-modules/spring-security-mvc-boot-1/WebContent/META-INF/MANIFEST.MF b/spring-security-modules/spring-security-web-boot-1/WebContent/META-INF/MANIFEST.MF similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/WebContent/META-INF/MANIFEST.MF rename to spring-security-modules/spring-security-web-boot-1/WebContent/META-INF/MANIFEST.MF diff --git a/spring-security-modules/spring-security-mvc-boot-1/pom.xml b/spring-security-modules/spring-security-web-boot-1/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-boot-1/pom.xml rename to spring-security-modules/spring-security-web-boot-1/pom.xml index 7ad18376ec..1f80b62765 100644 --- a/spring-security-modules/spring-security-mvc-boot-1/pom.xml +++ b/spring-security-modules/spring-security-web-boot-1/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-security-mvc-boot-1 + spring-security-web-boot-1 0.0.1-SNAPSHOT - spring-security-mvc-boot-1 + spring-security-web-boot-1 war Spring Security MVC Boot - 1 diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/Application.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/Application.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/Application.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/Application.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application-defaults.properties b/spring-security-modules/spring-security-web-boot-1/src/main/resources/application-defaults.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application-defaults.properties rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/application-defaults.properties diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application.properties b/spring-security-modules/spring-security-web-boot-1/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-boot-1/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-web-boot-1/src/main/resources/persistence-h2.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/persistence-h2.properties rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/persistence-h2.properties diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-custom-voter.xml b/spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-custom-voter.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-custom-voter.xml rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-custom-voter.xml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-ip.xml b/spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-ip.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-ip.xml rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-ip.xml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/403.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/403.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/403.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/403.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/index.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/login.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginAdmin.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginAdmin.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginAdmin.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginAdmin.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginUser.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginUser.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginUser.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginUser.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/login.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/login.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/private.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/private.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/private.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/private.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/home.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/home.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/home.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/home.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/login.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/login.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/ssl/welcome.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/ssl/welcome.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/ssl/welcome.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/ssl/welcome.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/README.md b/spring-security-modules/spring-security-web-boot-2/README.md similarity index 92% rename from spring-security-modules/spring-security-mvc-boot-2/README.md rename to spring-security-modules/spring-security-web-boot-2/README.md index bbbf514c90..f5fc3a890d 100644 --- a/spring-security-modules/spring-security-mvc-boot-2/README.md +++ b/spring-security-modules/spring-security-web-boot-2/README.md @@ -14,3 +14,4 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com - [Spring Security: Exploring JDBC Authentication](https://www.baeldung.com/spring-security-jdbc-authentication) - [Spring Security Custom Logout Handler](https://www.baeldung.com/spring-security-custom-logout-handler) - [Redirecting Logged-in Users with Spring Security](https://www.baeldung.com/spring-security-redirect-logged-in) +- More articles: [[<-- prev]](/spring-security-modules/spring-security-web-boot-1) diff --git a/spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF b/spring-security-modules/spring-security-web-boot-2/WebContent/META-INF/MANIFEST.MF similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF rename to spring-security-modules/spring-security-web-boot-2/WebContent/META-INF/MANIFEST.MF diff --git a/spring-security-modules/spring-security-mvc-boot-2/pom.xml b/spring-security-modules/spring-security-web-boot-2/pom.xml similarity index 99% rename from spring-security-modules/spring-security-mvc-boot-2/pom.xml rename to spring-security-modules/spring-security-web-boot-2/pom.xml index 668eb04cd9..ca357509a3 100644 --- a/spring-security-modules/spring-security-mvc-boot-2/pom.xml +++ b/spring-security-modules/spring-security-web-boot-2/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-security-mvc-boot-2 + spring-security-web-boot-2 0.0.1-SNAPSHOT - spring-security-mvc-boot-2 + spring-security-web-boot-2 war Spring Security MVC Boot - 2 diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-customlogouthandler.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-customlogouthandler.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-customlogouthandler.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-customlogouthandler.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-defaults.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-defaults.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-mysql.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-mysql.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-mysql.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-mysql.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-postgre.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-postgre.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-postgre.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-postgre.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-ssl.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-ssl.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-ssl.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-ssl.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-mysql.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/data-mysql.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-mysql.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/data-mysql.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-postgre.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/data-postgre.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-postgre.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/data-postgre.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/keystore/baeldung.p12 b/spring-security-modules/spring-security-web-boot-2/src/main/resources/keystore/baeldung.p12 similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/keystore/baeldung.p12 rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/keystore/baeldung.p12 diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/persistence-h2.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/persistence-h2.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-mysql.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-mysql.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-mysql.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-mysql.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-postgre.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-postgre.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-postgre.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-postgre.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-login-redirect.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-login-redirect.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-login-redirect.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-login-redirect.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-entry.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-entry.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-entry.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-entry.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/403.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/403.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/adminPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/adminPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/adminPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/adminPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginAdmin.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginAdmin.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginUser.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginUser.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/private.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/private.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/protectedLinks.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/protectedLinks.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/protectedLinks.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/protectedLinks.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/ssl/welcome.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/ssl/welcome.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userMainPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userMainPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userMainPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userMainPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/after.sql b/spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/after.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/after.sql rename to spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/after.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/application.properties b/spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/application.properties rename to spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/application.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/before.sql b/spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/before.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/before.sql rename to spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/before.sql diff --git a/spring-security-modules/spring-security-mvc-digest-auth/.gitignore b/spring-security-modules/spring-security-web-digest-auth/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/.gitignore rename to spring-security-modules/spring-security-web-digest-auth/.gitignore diff --git a/spring-security-modules/spring-security-mvc-digest-auth/README.md b/spring-security-modules/spring-security-web-digest-auth/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/README.md rename to spring-security-modules/spring-security-web-digest-auth/README.md diff --git a/spring-security-modules/spring-security-mvc-digest-auth/pom.xml b/spring-security-modules/spring-security-web-digest-auth/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-digest-auth/pom.xml rename to spring-security-modules/spring-security-web-digest-auth/pom.xml index 8061235c71..2579a11f97 100644 --- a/spring-security-modules/spring-security-mvc-digest-auth/pom.xml +++ b/spring-security-modules/spring-security-web-digest-auth/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - spring-security-mvc-digest-auth + spring-security-web-digest-auth 0.1-SNAPSHOT - spring-security-mvc-digest-auth + spring-security-web-digest-auth war diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java b/spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java rename to spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-digest-auth/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-digest-auth/src/test/resources/.gitignore diff --git a/spring-security-modules/spring-security-mvc-jsonview/.gitignore b/spring-security-modules/spring-security-web-jsonview/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/.gitignore rename to spring-security-modules/spring-security-web-jsonview/.gitignore diff --git a/spring-security-modules/spring-security-mvc-jsonview/README.md b/spring-security-modules/spring-security-web-jsonview/README.md similarity index 86% rename from spring-security-modules/spring-security-mvc-jsonview/README.md rename to spring-security-modules/spring-security-web-jsonview/README.md index 0e28d4c292..83f8106df9 100644 --- a/spring-security-modules/spring-security-mvc-jsonview/README.md +++ b/spring-security-modules/spring-security-web-jsonview/README.md @@ -1,4 +1,4 @@ -## Spring Security MVC Json View +## Spring Security Web Json View This module contains articles about Spring Security with JSON diff --git a/spring-security-modules/spring-security-mvc-jsonview/pom.xml b/spring-security-modules/spring-security-web-jsonview/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-jsonview/pom.xml rename to spring-security-modules/spring-security-web-jsonview/pom.xml index f6ba997c62..0d1b0b09db 100644 --- a/spring-security-modules/spring-security-mvc-jsonview/pom.xml +++ b/spring-security-modules/spring-security-web-jsonview/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - spring-security-mvc-jsonview + spring-security-web-jsonview 0.1-SNAPSHOT - spring-security-mvc-jsonview + spring-security-web-jsonview war diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/AppInitializer.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/AppInitializer.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/ItemsController.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/ItemsController.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/View.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/View.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/model/Item.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/model/Item.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/AppConfig.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/AppConfig.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java b/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java rename to spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-login/.gitignore b/spring-security-modules/spring-security-web-login/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-login/.gitignore rename to spring-security-modules/spring-security-web-login/.gitignore diff --git a/spring-security-modules/spring-security-mvc-login/README.md b/spring-security-modules/spring-security-web-login/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-login/README.md rename to spring-security-modules/spring-security-web-login/README.md diff --git a/spring-security-modules/spring-security-mvc-login/pom.xml b/spring-security-modules/spring-security-web-login/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-login/pom.xml rename to spring-security-modules/spring-security-web-login/pom.xml index 4e0fe00176..2b64d157d3 100644 --- a/spring-security-modules/spring-security-mvc-login/pom.xml +++ b/spring-security-modules/spring-security-web-login/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - spring-security-mvc-login + spring-security-web-login 0.1-SNAPSHOT - spring-security-mvc-login + spring-security-web-login war diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/AppInitializer.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/AppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/AppInitializer.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/AppInitializer.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/controller/SecuredResourceController.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/controller/SecuredResourceController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/controller/SecuredResourceController.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/controller/SecuredResourceController.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/RedirectionWebSecurityConfig.xml b/spring-security-modules/spring-security-web-login/src/main/resources/RedirectionWebSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/RedirectionWebSecurityConfig.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/RedirectionWebSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/channelWebSecurityConfig.xml b/spring-security-modules/spring-security-web-login/src/main/resources/channelWebSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/channelWebSecurityConfig.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/channelWebSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-login/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-login/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/accessDenied.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/accessDenied.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/accessDenied.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/accessDenied.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/web-old.xml b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/web-old.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/web-old.xml rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/web-old.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java b/spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java rename to spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java diff --git a/spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java b/spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java rename to spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-login/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-login/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-login/src/test/resources/.gitignore diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-mvc-custom/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-mvc-custom/.gitignore diff --git a/spring-security-modules/spring-security-mvc-custom/README.md b/spring-security-modules/spring-security-web-mvc-custom/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/README.md rename to spring-security-modules/spring-security-web-mvc-custom/README.md diff --git a/spring-security-modules/spring-security-mvc-custom/pom.xml b/spring-security-modules/spring-security-web-mvc-custom/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-custom/pom.xml rename to spring-security-modules/spring-security-web-mvc-custom/pom.xml index fe8c749c59..bd4a800bc5 100644 --- a/spring-security-modules/spring-security-mvc-custom/pom.xml +++ b/spring-security-modules/spring-security-web-mvc-custom/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - spring-security-mvc-custom + spring-security-web-mvc-custom 0.1-SNAPSHOT - spring-security-mvc-custom + spring-security-web-mvc-custom war diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java diff --git a/spring-security-modules/spring-security-mvc/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc/.gitignore b/spring-security-modules/spring-security-web-mvc-custom/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc/.gitignore rename to spring-security-modules/spring-security-web-mvc-custom/src/test/resources/.gitignore diff --git a/spring-security-modules/spring-security-mvc/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-mvc/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-mvc/.gitignore diff --git a/spring-security-modules/spring-security-mvc/README.md b/spring-security-modules/spring-security-web-mvc/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc/README.md rename to spring-security-modules/spring-security-web-mvc/README.md diff --git a/spring-security-modules/spring-security-mvc/pom.xml b/spring-security-modules/spring-security-web-mvc/pom.xml similarity index 97% rename from spring-security-modules/spring-security-mvc/pom.xml rename to spring-security-modules/spring-security-web-mvc/pom.xml index d97825975f..2651b3a0f2 100644 --- a/spring-security-modules/spring-security-mvc/pom.xml +++ b/spring-security-modules/spring-security-web-mvc/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-security-mvc + spring-security-web-mvc 0.1-SNAPSHOT - spring-security-mvc + spring-security-web-mvc jar diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Constants.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Constants.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Constants.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Constants.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Foo.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Foo.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Foo.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Foo.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/FooController.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/FooController.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/FooController.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/FooController.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java diff --git a/spring-security-modules/spring-security-mvc/src/main/resources/application.properties b/spring-security-modules/spring-security-web-mvc/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-mvc/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-web-mvc/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-mvc/src/main/resources/logback.xml new file mode 100644 index 0000000000..56af2d397e --- /dev/null +++ b/spring-security-modules/spring-security-web-mvc/src/main/resources/logback.xml @@ -0,0 +1,19 @@ + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-modules/spring-security-mvc/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-mvc/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-mvc/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/console.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java b/spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java rename to spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java diff --git a/spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java b/spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java rename to spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java diff --git a/spring-security-modules/spring-security-web-mvc/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-mvc/src/test/resources/.gitignore new file mode 100644 index 0000000000..83c05e60c8 --- /dev/null +++ b/spring-security-modules/spring-security-web-mvc/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/.gitignore b/spring-security-modules/spring-security-web-persisted-remember-me/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/.gitignore rename to spring-security-modules/spring-security-web-persisted-remember-me/.gitignore diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/README.md b/spring-security-modules/spring-security-web-persisted-remember-me/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/README.md rename to spring-security-modules/spring-security-web-persisted-remember-me/README.md diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/pom.xml b/spring-security-modules/spring-security-web-persisted-remember-me/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/pom.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/pom.xml index 9410793222..25c5ddd9d0 100644 --- a/spring-security-modules/spring-security-mvc-persisted-remember-me/pom.xml +++ b/spring-security-modules/spring-security-web-persisted-remember-me/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - spring-security-mvc-persisted-remember-me + spring-security-web-persisted-remember-me 0.1-SNAPSHOT - spring-security-mvc-persisted-remember-me + spring-security-web-persisted-remember-me war diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java diff --git a/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/logback.xml new file mode 100644 index 0000000000..56af2d397e --- /dev/null +++ b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/logback.xml @@ -0,0 +1,19 @@ + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-h2.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-h2.properties rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-h2.properties diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-postgres.properties b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-postgres.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-postgres.properties rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-postgres.properties diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/console.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-web-persisted-remember-me/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-persisted-remember-me/src/test/resources/.gitignore new file mode 100644 index 0000000000..83c05e60c8 --- /dev/null +++ b/spring-security-modules/spring-security-web-persisted-remember-me/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-modules/spring-security-react/.gitignore b/spring-security-modules/spring-security-web-react/.gitignore similarity index 100% rename from spring-security-modules/spring-security-react/.gitignore rename to spring-security-modules/spring-security-web-react/.gitignore diff --git a/spring-security-modules/spring-security-react/README.md b/spring-security-modules/spring-security-web-react/README.md similarity index 100% rename from spring-security-modules/spring-security-react/README.md rename to spring-security-modules/spring-security-web-react/README.md diff --git a/spring-security-modules/spring-security-react/pom.xml b/spring-security-modules/spring-security-web-react/pom.xml similarity index 98% rename from spring-security-modules/spring-security-react/pom.xml rename to spring-security-modules/spring-security-web-react/pom.xml index 19240fe88c..d0ca6f8c8d 100644 --- a/spring-security-modules/spring-security-react/pom.xml +++ b/spring-security-modules/spring-security-web-react/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - spring-security-react + spring-security-web-react 0.1-SNAPSHOT - spring-security-react + spring-security-web-react war diff --git a/spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-react/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-react/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-react/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-react/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/accessDenied.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/accessDenied.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/accessDenied.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/accessDenied.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.babelrc b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.babelrc similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.babelrc rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.babelrc diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintignore b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintignore similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintignore rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintignore diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintrc b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintrc similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintrc rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintrc diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.gitignore b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.gitignore similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.gitignore rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.gitignore diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package-lock.json similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package-lock.json diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package.json b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package.json similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package.json rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package.json diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/index.html b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/index.html similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/index.html rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/index.html diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/manifest.json b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/manifest.json similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/manifest.json rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/manifest.json diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Form.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Form.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Form.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Form.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Input.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Input.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Input.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Input.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.css b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.css similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.css rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.css diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-react/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-react/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-react/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-react/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-socket/.gitignore b/spring-security-modules/spring-security-web-sockets/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/.gitignore rename to spring-security-modules/spring-security-web-sockets/.gitignore diff --git a/spring-security-modules/spring-security-mvc-socket/README.md b/spring-security-modules/spring-security-web-sockets/README.md similarity index 95% rename from spring-security-modules/spring-security-mvc-socket/README.md rename to spring-security-modules/spring-security-web-sockets/README.md index d134d19c84..14ef0c8b99 100644 --- a/spring-security-modules/spring-security-mvc-socket/README.md +++ b/spring-security-modules/spring-security-web-sockets/README.md @@ -1,4 +1,4 @@ -## Spring Security MVC Socket +## Spring Security Web Sockets This module contains articles about WebSockets with Spring Security diff --git a/spring-security-modules/spring-security-mvc-socket/pom.xml b/spring-security-modules/spring-security-web-sockets/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-socket/pom.xml rename to spring-security-modules/spring-security-web-sockets/pom.xml index 6515121f9f..3a3ec47af5 100644 --- a/spring-security-modules/spring-security-mvc-socket/pom.xml +++ b/spring-security-modules/spring-security-web-sockets/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 com.baeldung.springsecuredsockets - spring-security-mvc-socket + spring-security-web-sockets 1.0.0 - spring-security-mvc-socket + spring-security-web-sockets war diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/Constants.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/Constants.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/Constants.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/Constants.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/User.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/User.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/User.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Greeting.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Greeting.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Greeting.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Greeting.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Message.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Message.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Message.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Message.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/data.sql b/spring-security-modules/spring-security-web-sockets/src/main/resources/data.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/data.sql rename to spring-security-modules/spring-security-web-sockets/src/main/resources/data.sql diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-sockets/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-sockets/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/schema.sql b/spring-security-modules/spring-security-web-sockets/src/main/resources/schema.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/schema.sql rename to spring-security-modules/spring-security-web-sockets/src/main/resources/schema.sql diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.html b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.html similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.html rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.html diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.js b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.js rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.html b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.html similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.html rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.html diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.js b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.js rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/denied.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/denied.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/denied.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/denied.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/index.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/index.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/index.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/index.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/login.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/login.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/login.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/socket.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/socket.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/socket.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/socket.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/success.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/success.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/success.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/success.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/app.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/app.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/app.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/app.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/indexController.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/indexController.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/indexController.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/indexController.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/socketController.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/socketController.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/socketController.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/socketController.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/successController.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/successController.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/successController.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/successController.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/routes/router.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/routes/router.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/routes/router.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/routes/router.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/services/SocketService.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/services/SocketService.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/services/SocketService.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/services/SocketService.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/app.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/app.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/app.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/app.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/denied.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/denied.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/denied.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/denied.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/index.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/index.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/index.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/index.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/login.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/login.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/login.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/login.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/socket.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/socket.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/socket.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/socket.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/success.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/success.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/success.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/success.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js.map b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js.map similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js.map rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js.map diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js.map b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js.map similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js.map rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js.map diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/jquery/jquery.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/jquery/jquery.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/jquery/jquery.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/jquery/jquery.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/stomp/stomp.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/stomp/stomp.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/stomp/stomp.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/stomp/stomp.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-sockets/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-sockets/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-session/pom.xml b/spring-session/pom.xml index 8388efb6c3..6616a0d1f3 100644 --- a/spring-session/pom.xml +++ b/spring-session/pom.xml @@ -21,4 +21,4 @@ spring-session-mongodb - \ No newline at end of file + diff --git a/spring-soap/.gitignore b/spring-soap/.gitignore index b83d22266a..cce17abdb9 100644 --- a/spring-soap/.gitignore +++ b/spring-soap/.gitignore @@ -1 +1,2 @@ /target/ +sun-jaxb.episode diff --git a/spring-soap/pom.xml b/spring-soap/pom.xml index 137ff03c31..bea3d033e6 100644 --- a/spring-soap/pom.xml +++ b/spring-soap/pom.xml @@ -75,6 +75,7 @@ ${project.basedir}/src/main/java com.baeldung.springsoap.client.gen ${project.basedir}/src/main/resources + true countries.wsdl diff --git a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Country.java b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Country.java index e17dce55f9..bb196d625d 100644 --- a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Country.java +++ b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Country.java @@ -1,10 +1,3 @@ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 -// See https://javaee.github.io/jaxb-v2/ -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2020.04.25 at 03:18:49 PM IST -// - package com.baeldung.springsoap.client.gen; diff --git a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Currency.java b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Currency.java index 12fdef58c2..023a8103e5 100644 --- a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Currency.java +++ b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/Currency.java @@ -1,10 +1,3 @@ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 -// See https://javaee.github.io/jaxb-v2/ -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2020.04.25 at 03:18:49 PM IST -// - package com.baeldung.springsoap.client.gen; diff --git a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryRequest.java b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryRequest.java index 5739ee3b96..dcd5b1f08b 100644 --- a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryRequest.java +++ b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryRequest.java @@ -1,10 +1,3 @@ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 -// See https://javaee.github.io/jaxb-v2/ -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2020.04.25 at 03:18:49 PM IST -// - package com.baeldung.springsoap.client.gen; diff --git a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryResponse.java b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryResponse.java index ba1ab56cf8..11135c32e1 100644 --- a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryResponse.java +++ b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/GetCountryResponse.java @@ -1,10 +1,3 @@ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 -// See https://javaee.github.io/jaxb-v2/ -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2020.04.25 at 03:18:49 PM IST -// - package com.baeldung.springsoap.client.gen; diff --git a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/ObjectFactory.java b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/ObjectFactory.java index 88b27245be..e6d56d5aba 100644 --- a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/ObjectFactory.java +++ b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/ObjectFactory.java @@ -1,10 +1,3 @@ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 -// See https://javaee.github.io/jaxb-v2/ -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2020.04.25 at 03:18:49 PM IST -// - package com.baeldung.springsoap.client.gen; diff --git a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/package-info.java b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/package-info.java index eefed169a8..9432e0c328 100644 --- a/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/package-info.java +++ b/spring-soap/src/main/java/com/baeldung/springsoap/client/gen/package-info.java @@ -1,9 +1,2 @@ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 -// See https://javaee.github.io/jaxb-v2/ -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2020.04.25 at 03:18:49 PM IST -// - @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.baeldung.com/springsoap/gen", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) package com.baeldung.springsoap.client.gen; diff --git a/spring-webflux-threads/pom.xml b/spring-webflux-threads/pom.xml new file mode 100644 index 0000000000..15224fcd14 --- /dev/null +++ b/spring-webflux-threads/pom.xml @@ -0,0 +1,90 @@ + + + 4.0.0 + com.baeldung.spring + spring-webflux-threads + 1.0.0-SNAPSHOT + spring-webflux-threads + jar + Spring WebFlux Threads Sample + + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../parent-boot-2 + + + + + org.springframework.boot + spring-boot-starter-webflux + + + + + + + + + io.reactivex.rxjava2 + rxjava + 2.2.19 + + + org.springframework.boot + spring-boot-starter-data-mongodb-reactive + + + io.projectreactor.kafka + reactor-kafka + 1.2.2.RELEASE + + + com.fasterxml.jackson.core + jackson-databind + + + org.springframework.boot + spring-boot-starter-test + test + + + io.projectreactor + reactor-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java new file mode 100644 index 0000000000..06a148a77f --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java @@ -0,0 +1,17 @@ +package com.baeldung.webflux; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** +* Please note we assume Mongo and Kafka are running in the local machine and on default configuration. +* Additionally, if you want to experiment with Tomcat/Jetty instead of Netty, just uncomment the lines in pom.xml and rebuild. +*/ +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java new file mode 100644 index 0000000000..3c7e4e41ca --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java @@ -0,0 +1,128 @@ +package com.baeldung.webflux; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.serialization.IntegerDeserializer; +import org.apache.kafka.common.serialization.IntegerSerializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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 org.springframework.web.reactive.function.client.WebClient; + +import io.reactivex.Observable; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Scheduler; +import reactor.core.scheduler.Schedulers; +import reactor.kafka.receiver.KafkaReceiver; +import reactor.kafka.receiver.ReceiverOptions; +import reactor.kafka.receiver.ReceiverRecord; +import reactor.kafka.sender.KafkaSender; +import reactor.kafka.sender.SenderOptions; +import reactor.kafka.sender.SenderRecord; + +@RestController +@RequestMapping("/") +public class Controller { + + @Autowired + private PersonRepository personRepository; + + private Scheduler scheduler = Schedulers.newBoundedElastic(5, 10, "MyThreadGroup"); + + private Logger logger = LoggerFactory.getLogger(Controller.class); + + @GetMapping("/threads/webflux") + public Flux getThreadsWebflux() { + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/threads/webclient") + public Flux getThreadsWebClient() { + WebClient.create("http://localhost:8080/index") + .get() + .retrieve() + .bodyToMono(String.class) + .subscribeOn(scheduler) + .publishOn(scheduler) + .doOnNext(s -> logger.info("Response: {}", s)) + .subscribe(); + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/threads/rxjava") + public Observable getIndexRxJava() { + Observable.fromIterable(Arrays.asList("Hello", "World")) + .map(s -> s.toUpperCase()) + .observeOn(io.reactivex.schedulers.Schedulers.trampoline()) + .doOnNext(s -> logger.info("String: {}", s)) + .subscribe(); + return Observable.fromIterable(getThreads()); + } + + @GetMapping("/threads/mongodb") + public Flux getIndexMongo() { + personRepository.findAll() + .doOnNext(p -> logger.info("Person: {}", p)) + .subscribe(); + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/threads/reactor-kafka") + public Flux getIndexKafka() { + Map producerProps = new HashMap<>(); + producerProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); + producerProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class); + producerProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); + SenderOptions senderOptions = SenderOptions.create(producerProps); + KafkaSender sender = KafkaSender.create(senderOptions); + Flux> outboundFlux = Flux.range(1, 10) + .map(i -> SenderRecord.create(new ProducerRecord<>("reactive-test", i, "Message_" + i), i)); + sender.send(outboundFlux) + .subscribe(); + + Map consumerProps = new HashMap<>(); + consumerProps.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); + consumerProps.put(ConsumerConfig.CLIENT_ID_CONFIG, "my-consumer"); + consumerProps.put(ConsumerConfig.GROUP_ID_CONFIG, "my-group"); + consumerProps.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, IntegerDeserializer.class); + consumerProps.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); + consumerProps.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); + ReceiverOptions receiverOptions = ReceiverOptions.create(consumerProps); + receiverOptions.subscription(Collections.singleton("reactive-test")); + KafkaReceiver receiver = KafkaReceiver.create(receiverOptions); + Flux> inboundFlux = receiver.receive(); + inboundFlux.subscribe(r -> { + logger.info("Received message: {}", r.value()); + r.receiverOffset() + .acknowledge(); + }); + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/index") + public Mono getIndex() { + return Mono.just("Hello world!"); + } + + private List getThreads() { + return Thread.getAllStackTraces() + .keySet() + .stream() + .map(t -> String.format("%-20s \t %s \t %d \t %s\n", t.getName(), t.getState(), t.getPriority(), t.isDaemon() ? "Daemon" : "Normal")) + .collect(Collectors.toList()); + } +} diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java new file mode 100644 index 0000000000..4c6bd5f585 --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java @@ -0,0 +1,27 @@ +package com.baeldung.webflux; + +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +@Document +public class Person { + @Id + String id; + + public Person(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return "Person{" + "id='" + id + '\'' + '}'; + } +} diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java new file mode 100644 index 0000000000..38fbd3d431 --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java @@ -0,0 +1,6 @@ +package com.baeldung.webflux; + +import org.springframework.data.mongodb.repository.ReactiveMongoRepository; + +public interface PersonRepository extends ReactiveMongoRepository { +} diff --git a/spring-security-modules/spring-security-stormpath/src/main/resources/logback.xml b/spring-webflux-threads/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-stormpath/src/main/resources/logback.xml rename to spring-webflux-threads/src/main/resources/logback.xml diff --git a/testing-modules/mockito-2/README.md b/testing-modules/mockito-2/README.md index 1a013f5de3..bb7235c2cc 100644 --- a/testing-modules/mockito-2/README.md +++ b/testing-modules/mockito-2/README.md @@ -5,4 +5,5 @@ - [Mockito Strict Stubbing and The UnnecessaryStubbingException](https://www.baeldung.com/mockito-unnecessary-stubbing-exception) - [Mockito and Fluent APIs](https://www.baeldung.com/mockito-fluent-apis) - [Mocking the ObjectMapper readValue() Method](https://www.baeldung.com/mockito-mock-jackson-read-value) -- [Introduction to Mockito’s AdditionalAnswers](https://www.baeldung.com/mockito-additionalanswers) \ No newline at end of file +- [Introduction to Mockito’s AdditionalAnswers](https://www.baeldung.com/mockito-additionalanswers) +- [Mockito – Using Spies](https://www.baeldung.com/mockito-spy) diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java new file mode 100644 index 0000000000..8307b4323b --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java @@ -0,0 +1,7 @@ +package com.baeldung.mockito.argumentcaptor; + +public enum AuthenticationStatus { + AUTHENTICATED, + NOT_AUTHENTICATED, + ERROR +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java new file mode 100644 index 0000000000..d5d60bb6fc --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java @@ -0,0 +1,14 @@ +package com.baeldung.mockito.argumentcaptor; + +public class Credentials { + private final String name; + private final String password; + private final String key; + + public Credentials(String name, String password, String key) { + this.name = name; + this.password = password; + this.key = key; + } +} + diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java new file mode 100644 index 0000000000..6cbaf7b97c --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java @@ -0,0 +1,10 @@ +package com.baeldung.mockito.argumentcaptor; + +public interface DeliveryPlatform { + + void deliver(Email email); + + String getServiceStatus(); + + AuthenticationStatus authenticate(Credentials credentials); +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java new file mode 100644 index 0000000000..6fc753a31c --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java @@ -0,0 +1,47 @@ +package com.baeldung.mockito.argumentcaptor; + +public class Email { + + private String address; + private String subject; + private String body; + private Format format; + + public Email(String address, String subject, String body) { + this.address = address; + this.subject = subject; + this.body = body; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public Format getFormat() { + return format; + } + + public void setFormat(Format format) { + this.format = format; + } +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java new file mode 100644 index 0000000000..d22feaf8a4 --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java @@ -0,0 +1,36 @@ +package com.baeldung.mockito.argumentcaptor; + +public class EmailService { + + private DeliveryPlatform platform; + + public EmailService(DeliveryPlatform platform) { + this.platform = platform; + } + + public void send(String to, String subject, String body, boolean html) { + Format format = Format.TEXT_ONLY; + if (html) { + format = Format.HTML; + } + Email email = new Email(to, subject, body); + email.setFormat(format); + platform.deliver(email); + } + + public ServiceStatus checkServiceStatus() { + if (platform.getServiceStatus().equals("OK")) { + return ServiceStatus.UP; + } else { + return ServiceStatus.DOWN; + } + } + + public boolean authenticatedSuccessfully(Credentials credentials) { + if (platform.authenticate(credentials).equals(AuthenticationStatus.AUTHENTICATED)) { + return true; + } else { + return false; + } + } +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java new file mode 100644 index 0000000000..4c10375159 --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java @@ -0,0 +1,6 @@ +package com.baeldung.mockito.argumentcaptor; + +public enum Format { + TEXT_ONLY, + HTML +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java new file mode 100644 index 0000000000..65def5af64 --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java @@ -0,0 +1,7 @@ +package com.baeldung.mockito.argumentcaptor; + +public enum ServiceStatus { + UP, + DOWN, + AUTHENTICATED +} diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java new file mode 100644 index 0000000000..5ed7be7d6e --- /dev/null +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java @@ -0,0 +1,93 @@ +package com.baeldung.mockito.argumentcaptor; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.*; +import org.mockito.junit.MockitoJUnitRunner; + +import static org.junit.Assert.*; + +@RunWith(MockitoJUnitRunner.class) +public class EmailServiceUnitTest { + + @Mock + DeliveryPlatform platform; + + @InjectMocks + EmailService emailService; + + @Captor + ArgumentCaptor emailCaptor; + + @Captor + ArgumentCaptor credentialsCaptor; + + @Test + public void whenDoesNotSupportHtml_expectTextOnlyEmailFormat() { + String to = "info@baeldung.com"; + String subject = "Using ArgumentCaptor"; + String body = "Hey, let'use ArgumentCaptor"; + + emailService.send(to, subject, body, false); + + Mockito.verify(platform).deliver(emailCaptor.capture()); + Email emailCaptorValue = emailCaptor.getValue(); + assertEquals(Format.TEXT_ONLY, emailCaptorValue.getFormat()); + } + + @Test + public void whenDoesSupportHtml_expectHTMLEmailFormat() { + String to = "info@baeldung.com"; + String subject = "Using ArgumentCaptor"; + String body = "Hey, let'use ArgumentCaptor"; + + emailService.send(to, subject, body, true); + + Mockito.verify(platform).deliver(emailCaptor.capture()); + Email value = emailCaptor.getValue(); + assertEquals(Format.HTML, value.getFormat()); + } + + @Test + public void whenServiceRunning_expectUpResponse() { + Mockito.when(platform.getServiceStatus()).thenReturn("OK"); + + ServiceStatus serviceStatus = emailService.checkServiceStatus(); + + assertEquals(ServiceStatus.UP, serviceStatus); + } + + @Test + public void whenServiceNotRunning_expectDownResponse() { + Mockito.when(platform.getServiceStatus()).thenReturn("Error"); + + ServiceStatus serviceStatus = emailService.checkServiceStatus(); + + assertEquals(ServiceStatus.DOWN, serviceStatus); + } + + @Test + public void whenUsingArgumentMatcherForValidCredentials_expectTrue() { + Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); + Mockito.when(platform.authenticate(Mockito.eq(credentials))).thenReturn(AuthenticationStatus.AUTHENTICATED); + + assertTrue(emailService.authenticatedSuccessfully(credentials)); + } + + @Test + public void whenUsingArgumentCaptorForValidCredentials_expectTrue() { + Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); + Mockito.when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.AUTHENTICATED); + + assertTrue(emailService.authenticatedSuccessfully(credentials)); + assertEquals(credentials, credentialsCaptor.getValue()); + } + + @Test + public void whenNotAuthenticated_expectFalse() { + Credentials credentials = new Credentials("baeldung", "incorrect_password", "incorrect_key"); + Mockito.when(platform.authenticate(Mockito.eq(credentials))).thenReturn(AuthenticationStatus.NOT_AUTHENTICATED); + + assertFalse(emailService.authenticatedSuccessfully(credentials)); + } +} \ No newline at end of file diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/fluentapi/PizzaServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/fluentapi/PizzaServiceUnitTest.java index b5dd10b1d4..5993d1968c 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/fluentapi/PizzaServiceUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/fluentapi/PizzaServiceUnitTest.java @@ -1,5 +1,16 @@ package com.baeldung.mockito.fluentapi; +import com.baeldung.mockito.fluentapi.Pizza.PizzaBuilder; +import com.baeldung.mockito.fluentapi.Pizza.PizzaSize; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Answers; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -8,18 +19,7 @@ import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Answers; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; - -import com.baeldung.mockito.fluentapi.Pizza.PizzaBuilder; -import com.baeldung.mockito.fluentapi.Pizza.PizzaSize; - +@RunWith(MockitoJUnitRunner.class) public class PizzaServiceUnitTest { @Mock @@ -33,11 +33,6 @@ public class PizzaServiceUnitTest { @Captor private ArgumentCaptor sizeCaptor; - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - @Test public void givenTraditonalMocking_whenServiceInvoked_thenPizzaIsBuilt() { PizzaBuilder nameBuilder = Mockito.mock(Pizza.PizzaBuilder.class); diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java index 2efac513b7..8d6d4bade1 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java @@ -1,19 +1,19 @@ package com.baeldung.mockito.java8; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Optional; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; -import java.util.Optional; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.ArgumentMatchers; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - - +@RunWith(MockitoJUnitRunner.class) public class ArgumentMatcherWithLambdaUnitTest { @InjectMocks @@ -36,9 +36,4 @@ public class ArgumentMatcherWithLambdaUnitTest { assertTrue(unemploymentService.personIsEntitledToUnemploymentSupport(linda)); assertFalse(unemploymentService.personIsEntitledToUnemploymentSupport(peter)); } - - @Before - public void init() { - MockitoAnnotations.initMocks(this); - } } diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java index aaa8d03585..3b003d0a87 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java @@ -1,8 +1,12 @@ package com.baeldung.mockito.java8; -import org.junit.Before; import org.junit.Test; -import org.mockito.*; +import org.junit.runner.RunWith; +import org.mockito.ArgumentMatcher; +import org.mockito.ArgumentMatchers; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import java.util.Optional; @@ -11,6 +15,7 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; +@RunWith(MockitoJUnitRunner.class) public class ArgumentMatcherWithoutLambdaUnitTest { private class PeterArgumentMatcher implements ArgumentMatcher { @@ -43,9 +48,4 @@ public class ArgumentMatcherWithoutLambdaUnitTest { assertTrue(unemploymentService.personIsEntitledToUnemploymentSupport(linda)); assertFalse(unemploymentService.personIsEntitledToUnemploymentSupport(peter)); } - - @Before - public void init() { - MockitoAnnotations.initMocks(this); - } } diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java index 06e9bca6d3..8886d1325c 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java @@ -2,9 +2,10 @@ package com.baeldung.mockito.java8; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; import java.util.stream.Stream; @@ -13,6 +14,7 @@ import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; +@RunWith(MockitoJUnitRunner.class) public class CustomAnswerWithLambdaUnitTest { @InjectMocks @@ -37,8 +39,6 @@ public class CustomAnswerWithLambdaUnitTest { @Before public void init() { - MockitoAnnotations.initMocks(this); - when(jobService.listJobs(any(Person.class))).then((i) -> Stream.of(new JobPosition("Teacher")) .filter(p -> ((Person) i.getArgument(0)).getName().equals("Peter"))); diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java index d5b9d6d1ce..f75a62fea5 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java @@ -2,10 +2,11 @@ package com.baeldung.mockito.java8; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; import java.util.stream.Stream; @@ -15,7 +16,7 @@ import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; - +@RunWith(MockitoJUnitRunner.class) public class CustomAnswerWithoutLambdaUnitTest { private class PersonAnswer implements Answer> { @@ -54,8 +55,6 @@ public class CustomAnswerWithoutLambdaUnitTest { @Before public void init() { - MockitoAnnotations.initMocks(this); - when(jobService.listJobs(any(Person.class))).then(new PersonAnswer()); } } diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java index 9ea5c1db47..5b3bc5e3d5 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java @@ -1,18 +1,19 @@ package com.baeldung.mockito.java8; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Optional; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.when; -import java.util.Optional; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; - +@RunWith(MockitoJUnitRunner.class) public class JobServiceUnitTest { @Mock private JobService jobService; @@ -36,9 +37,4 @@ public class JobServiceUnitTest { assertTrue(jobService.assignJobPosition(person, new JobPosition())); } - - @Before - public void init() { - MockitoAnnotations.initMocks(this); - } } diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java index b3b71e5bf9..87093fc1ba 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java @@ -1,19 +1,20 @@ package com.baeldung.mockito.java8; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Optional; +import java.util.stream.Stream; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Mockito.when; -import java.util.Optional; -import java.util.stream.Stream; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - +@RunWith(MockitoJUnitRunner.class) public class UnemploymentServiceImplUnitTest { @Mock private JobService jobService; @@ -54,9 +55,4 @@ public class UnemploymentServiceImplUnitTest { // This will fail when Mockito 1 is used assertFalse(unemploymentService.searchJob(person, "").isPresent()); } - - @Before - public void init() { - MockitoAnnotations.initMocks(this); - } } diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/misusing/MockitoUnecessaryStubUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/misusing/MockitoUnecessaryStubUnitTest.java index 00edb699de..828d31f6f9 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/misusing/MockitoUnecessaryStubUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/misusing/MockitoUnecessaryStubUnitTest.java @@ -1,21 +1,22 @@ package com.baeldung.mockito.misusing; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.exceptions.misusing.UnnecessaryStubbingException; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.quality.Strictness; + +import java.util.ArrayList; + import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; -import java.util.ArrayList; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.mockito.exceptions.misusing.UnnecessaryStubbingException; -import org.mockito.junit.MockitoJUnit; -import org.mockito.quality.Strictness; - +@RunWith(MockitoJUnitRunner.class) public class MockitoUnecessaryStubUnitTest { @Rule @@ -25,11 +26,6 @@ public class MockitoUnecessaryStubUnitTest { @Mock private ArrayList mockList; - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - } - @Test public void givenUnusedStub_whenInvokingGetThenThrowUnnecessaryStubbingException() { rule.expectedFailure(UnnecessaryStubbingException.class); diff --git a/testing-modules/mockito/README.md b/testing-modules/mockito/README.md index 5f307c2f0b..38fb8225a6 100644 --- a/testing-modules/mockito/README.md +++ b/testing-modules/mockito/README.md @@ -12,5 +12,4 @@ - [Mocking Void Methods with Mockito](https://www.baeldung.com/mockito-void-methods) - [Mock Final Classes and Methods with Mockito](https://www.baeldung.com/mockito-final) - [Testing Callbacks with Mockito](https://www.baeldung.com/mockito-callbacks) -- [Mockito – Using Spies](https://www.baeldung.com/mockito-spy) - [Quick Guide to BDDMockito](https://www.baeldung.com/bdd-mockito) diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java index 27e3258efb..1d3d6b1428 100644 --- a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java @@ -76,52 +76,6 @@ public class MockitoAnnotationUnitTest { assertEquals(100, spiedList.size()); } - @Test - public void whenSpyingOnList_thenCorrect() { - List list = new ArrayList(); - List spyList = Mockito.spy(list); - - spyList.add("one"); - spyList.add("two"); - - Mockito.verify(spyList).add("one"); - Mockito.verify(spyList).add("two"); - - assertEquals(2, spyList.size()); - } - - @Test - public void whenUsingTheSpyAnnotation_thenObjectIsSpied() { - spiedList.add("one"); - spiedList.add("two"); - - Mockito.verify(spiedList).add("one"); - Mockito.verify(spiedList).add("two"); - - assertEquals(2, spiedList.size()); - } - - @Test - public void whenStubASpy_thenStubbed() { - List list = new ArrayList(); - List spyList = Mockito.spy(list); - - assertEquals(0, spyList.size()); - - Mockito.doReturn(100).when(spyList).size(); - assertEquals(100, spyList.size()); - } - - @Test - public void whenCreateSpy_thenCreate() { - List spyList = Mockito.spy(new ArrayList<>()); - - spyList.add("one"); - Mockito.verify(spyList).add("one"); - - assertEquals(1, spyList.size()); - } - @Test public void whenNotUseCaptorAnnotation_thenCorrect() { final List mockList = Mockito.mock(List.class); diff --git a/testing-modules/selenium-junit-testng/README.md b/testing-modules/selenium-junit-testng/README.md index 8baddd3449..aa3f0e8005 100644 --- a/testing-modules/selenium-junit-testng/README.md +++ b/testing-modules/selenium-junit-testng/README.md @@ -4,3 +4,4 @@ - [Testing with Selenium/WebDriver and the Page Object Pattern](http://www.baeldung.com/selenium-webdriver-page-object) - [Using Cookies With Selenium WebDriver in Java](https://www.baeldung.com/java-selenium-webdriver-cookies) - [Clicking Elements in Selenium using JavaScript](https://www.baeldung.com/java-selenium-javascript) +- [Taking Screenshots With Selenium WebDriver](https://www.baeldung.com/java-selenium-screenshots) diff --git a/testing-modules/testing-libraries/README.md b/testing-modules/testing-libraries/README.md index b1e1575e63..4db7fb8e7a 100644 --- a/testing-modules/testing-libraries/README.md +++ b/testing-modules/testing-libraries/README.md @@ -10,3 +10,4 @@ - [Cucumber Data Tables](https://www.baeldung.com/cucumber-data-tables) - [Cucumber Background](https://www.baeldung.com/java-cucumber-background) - [Cucumber Hooks](https://www.baeldung.com/java-cucumber-hooks) +- [Unit Testing of System.out.println() with JUnit](https://www.baeldung.com/java-testing-system-out-println) diff --git a/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java index 3ffc508fa5..549f0ee7b9 100644 --- a/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java +++ b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.Assert; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -19,7 +20,7 @@ class SystemOutPrintlnUnitTest { System.setOut(new PrintStream(outputStreamCaptor)); } - @BeforeEach + @AfterEach public void tearDown() { System.setOut(standardOut); }