From 80757dce5f875b649f82e2b892229c1937a10633 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 21 Jul 2019 21:29:18 +0530 Subject: [PATCH 01/52] [BAEL-16045] - Fixed article code for https://www.baeldung.com/get-user-in-spring-security --- ...roller5.java => GetUserWithCustomInterfaceController.java} | 4 ++-- ...ler4.java => GetUserWithHTTPServletRequestController.java} | 4 ++-- .../{SecurityController2.java => SecurityController.java} | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) rename spring-security-rest-custom/src/main/java/org/baeldung/web/controller/{SecurityController5.java => GetUserWithCustomInterfaceController.java} (88%) rename spring-security-rest-custom/src/main/java/org/baeldung/web/controller/{SecurityController4.java => GetUserWithHTTPServletRequestController.java} (86%) rename spring-security-rest-custom/src/main/java/org/baeldung/web/controller/{SecurityController2.java => SecurityController.java} (88%) diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/GetUserWithCustomInterfaceController.java similarity index 88% rename from spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java rename to spring-security-rest-custom/src/main/java/org/baeldung/web/controller/GetUserWithCustomInterfaceController.java index e1a0c35cc6..b8521d6663 100644 --- a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/GetUserWithCustomInterfaceController.java @@ -9,12 +9,12 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller -public class SecurityController5 { +public class GetUserWithCustomInterfaceController { @Autowired private IAuthenticationFacade authenticationFacade; - public SecurityController5() { + public GetUserWithCustomInterfaceController() { super(); } diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/GetUserWithHTTPServletRequestController.java similarity index 86% rename from spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java rename to spring-security-rest-custom/src/main/java/org/baeldung/web/controller/GetUserWithHTTPServletRequestController.java index 0434cc5fdc..ace5688697 100644 --- a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/GetUserWithHTTPServletRequestController.java @@ -10,9 +10,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller -public class SecurityController4 { +public class GetUserWithHTTPServletRequestController { - public SecurityController4() { + public GetUserWithHTTPServletRequestController() { super(); } diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController.java similarity index 88% rename from spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java rename to spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController.java index ac02738d0c..7cf57a5275 100644 --- a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController.java @@ -8,9 +8,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller -public class SecurityController2 { +public class SecurityController { - public SecurityController2() { + public SecurityController() { super(); } From 95aab7441bc4ed0aa9b3481b92d36a04988af7ec Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 28 Jul 2019 11:40:22 +0530 Subject: [PATCH 02/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/spring-mvc-tutorial article --- .../config/{AppInitializer.java => MainWebAppInitializer.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename spring-mvc-basics/src/main/java/com/baeldung/config/{AppInitializer.java => MainWebAppInitializer.java} (92%) diff --git a/spring-mvc-basics/src/main/java/com/baeldung/config/AppInitializer.java b/spring-mvc-basics/src/main/java/com/baeldung/config/MainWebAppInitializer.java similarity index 92% rename from spring-mvc-basics/src/main/java/com/baeldung/config/AppInitializer.java rename to spring-mvc-basics/src/main/java/com/baeldung/config/MainWebAppInitializer.java index a76d955e4f..0a2368619a 100644 --- a/spring-mvc-basics/src/main/java/com/baeldung/config/AppInitializer.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/config/MainWebAppInitializer.java @@ -9,7 +9,7 @@ import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; -public class AppInitializer implements WebApplicationInitializer { +public class MainWebAppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { From 9b77ae82eeb51bbc2068a80212da9ffcffac40b9 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 28 Jul 2019 11:52:43 +0530 Subject: [PATCH 03/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/java-pairs article --- .../java/com/baeldung/pairs/CustomPair.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 libraries/src/main/java/com/baeldung/pairs/CustomPair.java diff --git a/libraries/src/main/java/com/baeldung/pairs/CustomPair.java b/libraries/src/main/java/com/baeldung/pairs/CustomPair.java new file mode 100644 index 0000000000..bd37977f92 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/pairs/CustomPair.java @@ -0,0 +1,33 @@ +package com.baeldung.pairs; + +public class CustomPair { + + private String key; + private String value; + + public CustomPair(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; + } + + public Object[] getPair() { + return new Object[] { this.key, this.value}; + } +} From 12325b9be1808e4d201a73e0a3bc4595cdeeceea Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 28 Jul 2019 16:28:33 +0530 Subject: [PATCH 04/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/java-spring-mockito-mock-mockbean article --- .../test/java/org/baeldung/mockito/MockAnnotationUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing-modules/spring-testing/src/test/java/org/baeldung/mockito/MockAnnotationUnitTest.java b/testing-modules/spring-testing/src/test/java/org/baeldung/mockito/MockAnnotationUnitTest.java index fcc646e8ea..1fa7f241e7 100644 --- a/testing-modules/spring-testing/src/test/java/org/baeldung/mockito/MockAnnotationUnitTest.java +++ b/testing-modules/spring-testing/src/test/java/org/baeldung/mockito/MockAnnotationUnitTest.java @@ -25,7 +25,7 @@ public class MockAnnotationUnitTest { } @Test - public void givenCountMethodOfLocalMockVariableMocked_WhenCountInvoked_ThenMockedValueReturned() { + public void givenCountMethodMocked_WhenCountInvoked_ThenMockedValueReturned() { UserRepository localMockRepository = Mockito.mock(UserRepository.class); Mockito.when(localMockRepository.count()).thenReturn(111L); From 5aa543699b8bc676b43c7fabe57b6dea1db6434c Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 28 Jul 2019 21:26:41 +0530 Subject: [PATCH 05/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/jackson-mapping-dynamic-object article --- .../dynamicobject/{ProductJsonAnySetter.java => Product.java} | 2 +- .../dynamicobject/DynamicObjectDeserializationUnitTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/{ProductJsonAnySetter.java => Product.java} (95%) diff --git a/jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/ProductJsonAnySetter.java b/jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/Product.java similarity index 95% rename from jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/ProductJsonAnySetter.java rename to jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/Product.java index 13c21e37af..9c997886e5 100644 --- a/jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/ProductJsonAnySetter.java +++ b/jackson/src/main/java/com/baeldung/jackson/deserialization/dynamicobject/Product.java @@ -5,7 +5,7 @@ import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnySetter; -public class ProductJsonAnySetter { +public class Product { private String name; private String category; diff --git a/jackson/src/test/java/com/baeldung/jackson/deserialization/dynamicobject/DynamicObjectDeserializationUnitTest.java b/jackson/src/test/java/com/baeldung/jackson/deserialization/dynamicobject/DynamicObjectDeserializationUnitTest.java index d49677c1a2..c9536bc35a 100644 --- a/jackson/src/test/java/com/baeldung/jackson/deserialization/dynamicobject/DynamicObjectDeserializationUnitTest.java +++ b/jackson/src/test/java/com/baeldung/jackson/deserialization/dynamicobject/DynamicObjectDeserializationUnitTest.java @@ -59,7 +59,7 @@ public class DynamicObjectDeserializationUnitTest { String json = readResource("/deserialize-dynamic-object/flat.json"); // when - ProductJsonAnySetter product = objectMapper.readValue(json, ProductJsonAnySetter.class); + Product product = objectMapper.readValue(json, Product.class); // then assertThat(product.getName()).isEqualTo("Pear yPhone 72"); From 1621b33ef1a60b2ead703983865536518b08aa28 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Mon, 29 Jul 2019 00:32:39 +0530 Subject: [PATCH 06/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/spring-http-logging article --- spring-rest/pom.xml | 6 ++++ .../com/baeldung/web/log/app/Application.java | 24 +++++++++++++ .../TaxiFareControllerIntegrationTest.java | 35 +++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 spring-rest/src/test/java/com/baeldung/web/controller/TaxiFareControllerIntegrationTest.java diff --git a/spring-rest/pom.xml b/spring-rest/pom.xml index 670bac9805..46220cac84 100644 --- a/spring-rest/pom.xml +++ b/spring-rest/pom.xml @@ -150,6 +150,11 @@ io.rest-assured rest-assured + + org.apache.httpcomponents + httpclient + ${httpclient.version} + @@ -276,6 +281,7 @@ 2.2.0 3.5.11 3.1.0 + 4.5.2 com.baeldung.sampleapp.config.MainApplication diff --git a/spring-rest/src/main/java/com/baeldung/web/log/app/Application.java b/spring-rest/src/main/java/com/baeldung/web/log/app/Application.java index e9d451b55e..6e2607339c 100644 --- a/spring-rest/src/main/java/com/baeldung/web/log/app/Application.java +++ b/spring-rest/src/main/java/com/baeldung/web/log/app/Application.java @@ -1,9 +1,19 @@ package com.baeldung.web.log.app; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRegistration; + import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +import com.baeldung.web.log.config.CustomeRequestLoggingFilter; + import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @EnableAutoConfiguration @@ -14,4 +24,18 @@ public class Application extends SpringBootServletInitializer { public static void main(final String[] args) { SpringApplication.run(Application.class, args); } + + @Override + public void onStartup(ServletContext container) throws ServletException { + + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + context.setConfigLocation("com.baeldung.web.log"); + container.addListener(new ContextLoaderListener(context)); + + ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(context)); + dispatcher.setLoadOnStartup(1); + dispatcher.addMapping("/"); + + container.addFilter("customRequestLoggingFilter", CustomeRequestLoggingFilter.class).addMappingForServletNames(null, false, "dispatcher"); + } } \ No newline at end of file diff --git a/spring-rest/src/test/java/com/baeldung/web/controller/TaxiFareControllerIntegrationTest.java b/spring-rest/src/test/java/com/baeldung/web/controller/TaxiFareControllerIntegrationTest.java new file mode 100644 index 0000000000..1cc098abf1 --- /dev/null +++ b/spring-rest/src/test/java/com/baeldung/web/controller/TaxiFareControllerIntegrationTest.java @@ -0,0 +1,35 @@ +package com.baeldung.web.controller; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.test.context.junit4.SpringRunner; + +import com.baeldung.web.log.app.Application; +import com.baeldung.web.log.data.TaxiRide; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = { Application.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class TaxiFareControllerIntegrationTest { + + @LocalServerPort + private int port; + + @Test + public void givenRequest_whenFetchTaxiFareRateCard_thanOK() { + + String URL = "http://localhost:" + port + "/spring-rest"; + TestRestTemplate testRestTemplate = new TestRestTemplate(); + TaxiRide taxiRide = new TaxiRide(true, 10l); + String fare = testRestTemplate.postForObject( + URL + "/taxifare/calculate/", + taxiRide, String.class); + + assertThat(fare, equalTo("200")); + } +} \ No newline at end of file From 4492c680a72f75a14a1761af0daebcceaca1f818 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Mon, 29 Jul 2019 00:57:31 +0530 Subject: [PATCH 07/52] [BAEL-16045] - Modified .gitignore, otherwise it is ignoring CustomeRequestLoggingFilter.java file --- .gitignore | 2 +- .../web/log/config/CustomeRequestLoggingFilter.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 spring-rest/src/main/java/com/baeldung/web/log/config/CustomeRequestLoggingFilter.java diff --git a/.gitignore b/.gitignore index 2edea19340..305a51b54c 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ out/ .DS_Store # Maven -log/ +log/* target/ # Gradle diff --git a/spring-rest/src/main/java/com/baeldung/web/log/config/CustomeRequestLoggingFilter.java b/spring-rest/src/main/java/com/baeldung/web/log/config/CustomeRequestLoggingFilter.java new file mode 100644 index 0000000000..3accb0a06e --- /dev/null +++ b/spring-rest/src/main/java/com/baeldung/web/log/config/CustomeRequestLoggingFilter.java @@ -0,0 +1,12 @@ +package com.baeldung.web.log.config; + +import org.springframework.web.filter.CommonsRequestLoggingFilter; + +public class CustomeRequestLoggingFilter extends CommonsRequestLoggingFilter { + + public CustomeRequestLoggingFilter() { + super.setIncludeQueryString(true); + super.setIncludePayload(true); + super.setMaxPayloadLength(10000); + } +} From de257ee78ea86f75fca6d49d6101261dd2cef636 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Thu, 1 Aug 2019 23:37:49 +0530 Subject: [PATCH 08/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/httpclient-ssl article --- .../baeldung/client/RestClientLiveManualTest.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/httpclient-simple/src/test/java/com/baeldung/client/RestClientLiveManualTest.java b/httpclient-simple/src/test/java/com/baeldung/client/RestClientLiveManualTest.java index a485641b34..d133bc376c 100644 --- a/httpclient-simple/src/test/java/com/baeldung/client/RestClientLiveManualTest.java +++ b/httpclient-simple/src/test/java/com/baeldung/client/RestClientLiveManualTest.java @@ -6,9 +6,9 @@ import static org.junit.Assert.assertThat; import java.io.IOException; import java.security.GeneralSecurityException; -import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLPeerUnverifiedException; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; @@ -46,7 +46,7 @@ public class RestClientLiveManualTest { // old httpClient will throw UnsupportedOperationException @Ignore @Test - public final void givenAcceptingAllCertificates_whenHttpsUrlIsConsumed_thenOk_1() throws GeneralSecurityException { + public final void givenAcceptingAllCertificates_whenHttpsUrlIsConsumed_thenOk() throws GeneralSecurityException { final HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); final CloseableHttpClient httpClient = (CloseableHttpClient) requestFactory.getHttpClient(); @@ -92,7 +92,7 @@ public class RestClientLiveManualTest { } @Test - public final void givenAcceptingAllCertificatesUsing4_4_whenHttpsUrlIsConsumedUsingRestTemplate_thenCorrect() throws ClientProtocolException, IOException { + public final void givenAcceptingAllCertificatesUsing4_4_whenUsingRestTemplate_thenCorrect() throws ClientProtocolException, IOException { final CloseableHttpClient httpClient = HttpClients.custom().setSSLHostnameVerifier(new NoopHostnameVerifier()).build(); final HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); requestFactory.setHttpClient(httpClient); @@ -101,4 +101,12 @@ public class RestClientLiveManualTest { assertThat(response.getStatusCode().value(), equalTo(200)); } + @Test(expected = SSLPeerUnverifiedException.class) + public void whenHttpsUrlIsConsumed_thenException() throws ClientProtocolException, IOException { + CloseableHttpClient httpClient = HttpClients.createDefault(); + String urlOverHttps = "https://localhost:8082/httpclient-simple"; + HttpGet getMethod = new HttpGet(urlOverHttps); + HttpResponse response = httpClient.execute(getMethod); + assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); + } } From 4586025196e151505ef69cd8c9b2f93c1ff80ba8 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Thu, 1 Aug 2019 23:45:15 +0530 Subject: [PATCH 09/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/spring-graphql article --- spring-boot/src/main/java/com/baeldung/graphql/Query.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot/src/main/java/com/baeldung/graphql/Query.java b/spring-boot/src/main/java/com/baeldung/graphql/Query.java index 7bb625798c..6988cdd37f 100644 --- a/spring-boot/src/main/java/com/baeldung/graphql/Query.java +++ b/spring-boot/src/main/java/com/baeldung/graphql/Query.java @@ -11,7 +11,7 @@ public class Query implements GraphQLQueryResolver { this.postDao = postDao; } - public List recentPosts(int count, int offset) { + public List getRecentPosts(int count, int offset) { return postDao.getRecentPosts(count, offset); } } From 01c0a5632cb7670f29d689674b087802c4838139 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sat, 3 Aug 2019 23:14:29 +0530 Subject: [PATCH 10/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/mapstruct article --- .../java/com/baeldung/mapper/EmployeeMapperUnitTest.java | 6 +++--- .../SimpleSourceDestinationMapperIntegrationTest.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mapstruct/src/test/java/com/baeldung/mapper/EmployeeMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/mapper/EmployeeMapperUnitTest.java index 330c12eb13..1a48b341b9 100644 --- a/mapstruct/src/test/java/com/baeldung/mapper/EmployeeMapperUnitTest.java +++ b/mapstruct/src/test/java/com/baeldung/mapper/EmployeeMapperUnitTest.java @@ -46,7 +46,7 @@ public class EmployeeMapperUnitTest { } @Test - public void givenEmployeeDTOwithNestedMappingToEmployee_whenMaps_thenCorrect() { + public void givenEmpDTONestedMappingToEmp_whenMaps_thenCorrect() { EmployeeDTO dto = new EmployeeDTO(); dto.setDivision(new DivisionDTO(1, "Division1")); @@ -102,7 +102,7 @@ public class EmployeeMapperUnitTest { } @Test - public void givenEmployeeWithStartDateMappingToEmployeeDTO_whenMaps_thenCorrect() throws ParseException { + public void givenEmpStartDtMappingToEmpDTO_whenMaps_thenCorrect() throws ParseException { Employee entity = new Employee(); entity.setStartDt(new Date()); @@ -112,7 +112,7 @@ public class EmployeeMapperUnitTest { } @Test - public void givenEmployeeDTOWithStartDateMappingToEmployee_whenMaps_thenCorrect() throws ParseException { + public void givenEmpDTOStartDtMappingToEmp_whenMaps_thenCorrect() throws ParseException { EmployeeDTO dto = new EmployeeDTO(); dto.setEmployeeStartDt("01-04-2016 01:00:00"); diff --git a/mapstruct/src/test/java/com/baeldung/mapper/SimpleSourceDestinationMapperIntegrationTest.java b/mapstruct/src/test/java/com/baeldung/mapper/SimpleSourceDestinationMapperIntegrationTest.java index 31d60c0d7d..78527e70e4 100644 --- a/mapstruct/src/test/java/com/baeldung/mapper/SimpleSourceDestinationMapperIntegrationTest.java +++ b/mapstruct/src/test/java/com/baeldung/mapper/SimpleSourceDestinationMapperIntegrationTest.java @@ -18,7 +18,7 @@ public class SimpleSourceDestinationMapperIntegrationTest { SimpleSourceDestinationMapper simpleSourceDestinationMapper; @Test - public void givenSimpleSourceToSimpleDestination_whenMaps_thenCorrect() { + public void givenSourceToDestination_whenMaps_thenCorrect() { SimpleSource simpleSource = new SimpleSource(); simpleSource.setName("SourceName"); simpleSource.setDescription("SourceDescription"); @@ -30,7 +30,7 @@ public class SimpleSourceDestinationMapperIntegrationTest { } @Test - public void givenSimpleDestinationToSourceDestination_whenMaps_thenCorrect() { + public void givenDestinationToSource_whenMaps_thenCorrect() { SimpleDestination destination = new SimpleDestination(); destination.setName("DestinationName"); destination.setDescription("DestinationDescription"); From eea20faf08f24e201f33bc2667dfe0cf17207bc6 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sat, 3 Aug 2019 23:24:53 +0530 Subject: [PATCH 11/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/spring-boot-configure-data-source-programmatic article --- .../datasources/{DataSourceBean.java => DataSourceConfig.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/{DataSourceBean.java => DataSourceConfig.java} (92%) diff --git a/persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/DataSourceBean.java b/persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/DataSourceConfig.java similarity index 92% rename from persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/DataSourceBean.java rename to persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/DataSourceConfig.java index 9ef9b77aed..52792d3a23 100644 --- a/persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/DataSourceBean.java +++ b/persistence-modules/spring-boot-persistence/src/main/java/com/baeldung/springbootdatasourceconfig/application/datasources/DataSourceConfig.java @@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -public class DataSourceBean { +public class DataSourceConfig { @Bean public DataSource getDataSource() { From 68b99216a367f4e71d721653cbb44a93a6503bbf Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sat, 3 Aug 2019 23:31:04 +0530 Subject: [PATCH 12/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/integration-testing-in-spring article --- .../web/controller/GreetControllerIntegrationTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java index bce5ab0a8c..079ea3e5cd 100644 --- a/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java +++ b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java @@ -40,7 +40,7 @@ public class GreetControllerIntegrationTest { } @Test - public void givenWAC_whenServletContext_thenItProvidesGreetController() { + public void givenWac_whenServletContext_thenItProvidesGreetController() { final ServletContext servletContext = wac.getServletContext(); Assert.assertNotNull(servletContext); Assert.assertTrue(servletContext instanceof MockServletContext); @@ -59,7 +59,7 @@ public class GreetControllerIntegrationTest { } @Test - public void givenGreetURIWithPathVariable_whenMockMVC_thenVerifyResponse() throws Exception { + public void givenGreetURIWithPathVariable_whenMockMVC_thenResponseOK() throws Exception { this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithPathVariable/John")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE)) .andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John!!!")); } @@ -71,7 +71,7 @@ public class GreetControllerIntegrationTest { } @Test - public void givenGreetURIWithQueryParameter_whenMockMVC_thenVerifyResponse() throws Exception { + public void givenGreetURIWithQueryParameter_whenMockMVC_thenResponseOK() throws Exception { this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithQueryVariable").param("name", "John Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE)) .andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!")); } @@ -83,7 +83,7 @@ public class GreetControllerIntegrationTest { } @Test - public void givenGreetURIWithPostAndFormData_whenMockMVC_thenVerifyResponse() throws Exception { + public void givenGreetURIWithPostAndFormData_whenMockMVC_thenResponseOK() throws Exception { this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPostAndFormData").param("id", "1").param("name", "John Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!")).andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1)); } From d4f1c3bce5b61e9393577507be810272e2dcaa1c Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 11:11:07 +0530 Subject: [PATCH 13/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/injecting-mocks-in-spring article --- .../test/java/com/baeldung/NameServiceTestConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-mockito/src/test/java/com/baeldung/NameServiceTestConfiguration.java b/spring-mockito/src/test/java/com/baeldung/NameServiceTestConfiguration.java index c50377a22a..2c63ff6203 100644 --- a/spring-mockito/src/test/java/com/baeldung/NameServiceTestConfiguration.java +++ b/spring-mockito/src/test/java/com/baeldung/NameServiceTestConfiguration.java @@ -11,7 +11,7 @@ import org.springframework.context.annotation.Profile; public class NameServiceTestConfiguration { @Bean @Primary - public NameService nameServiceTest() { + public NameService nameService() { return Mockito.mock(NameService.class); } } From 6b2e156d8035cb30136d69654cf3e048e4b2465e Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 11:16:42 +0530 Subject: [PATCH 14/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/rest-api-search-language-spring-data-specifications article --- .../main/java/com/baeldung/web/controller/UserController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-rest-query-language/src/main/java/com/baeldung/web/controller/UserController.java b/spring-rest-query-language/src/main/java/com/baeldung/web/controller/UserController.java index 101231c7ab..54e8618b27 100644 --- a/spring-rest-query-language/src/main/java/com/baeldung/web/controller/UserController.java +++ b/spring-rest-query-language/src/main/java/com/baeldung/web/controller/UserController.java @@ -61,7 +61,7 @@ public class UserController { @RequestMapping(method = RequestMethod.GET, value = "/users") @ResponseBody - public List findAll(@RequestParam(value = "search", required = false) String search) { + public List search(@RequestParam(value = "search", required = false) String search) { List params = new ArrayList(); if (search != null) { Pattern pattern = Pattern.compile("(\\w+?)(:|<|>)(\\w+?),"); From 085bd371ed9f7985ee34dbf56a2115f010e0f3f7 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 11:26:40 +0530 Subject: [PATCH 15/52] [BAEL-16045] - Added bean overriding property in application..properties --- spring-mockito/src/main/resources/application.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-mockito/src/main/resources/application.properties b/spring-mockito/src/main/resources/application.properties index e69de29bb2..709574239b 100644 --- a/spring-mockito/src/main/resources/application.properties +++ b/spring-mockito/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.main.allow-bean-definition-overriding=true \ No newline at end of file From ec59a9cecf461cdb16ea4aee3cc96573bdc445d8 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 11:46:31 +0530 Subject: [PATCH 16/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/java-deep-copy article --- .../java/com/baeldung/deepcopy/DeepCopyUnitTest.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java b/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java index d6b1cd90b9..d60ab155dc 100644 --- a/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java +++ b/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java @@ -25,7 +25,7 @@ public class DeepCopyUnitTest { } @Test - public void whenModifyingOriginalObject_thenConstructorCopyShouldNotChange() { + public void whenModifyingOriginalObject_thenCopyShouldNotChange() { Address address = new Address("Downing St 10", "London", "England"); User pm = new User("Prime", "Minister", address); User deepCopy = new User(pm); @@ -125,4 +125,13 @@ public class DeepCopyUnitTest { end = System.currentTimeMillis(); System.out.println("Cloning with Jackson took " + (end - start) + " milliseconds."); } + + @Test + public void whenModifyingOriginalObject_ThenCopyShouldChange() { + Address address = new Address("Downing St 10", "London", "England"); + User pm = new User("Prime", "Minister", address); + User shallowCopy = new User(pm.getFirstName(), pm.getLastName(), pm.getAddress()); + address.setCountry("Great Britain"); + assertThat(shallowCopy.getAddress().getCountry()).isEqualTo(pm.getAddress().getCountry()); + } } From 887eeaf802e0b8728ec9367ad23495303f9a1f38 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 11:55:52 +0530 Subject: [PATCH 17/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/java-generics article --- .../src/main/java/com/baeldung/generics/Generics.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core-java-modules/core-java-lang-syntax/src/main/java/com/baeldung/generics/Generics.java b/core-java-modules/core-java-lang-syntax/src/main/java/com/baeldung/generics/Generics.java index 1c4082c58b..b8d4aa3263 100644 --- a/core-java-modules/core-java-lang-syntax/src/main/java/com/baeldung/generics/Generics.java +++ b/core-java-modules/core-java-lang-syntax/src/main/java/com/baeldung/generics/Generics.java @@ -35,4 +35,11 @@ public class Generics { return list; } + public List genericMethod(List list) { + return list.stream().collect(Collectors.toList()); + } + + public List withErasure(List list) { + return list.stream().collect(Collectors.toList()); + } } \ No newline at end of file From 28c60f19a84ec028896e5cd63b8f5048c4ead9f1 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 17:16:53 +0530 Subject: [PATCH 18/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/spring-bean-annotations article --- spring-boot-mvc/pom.xml | 12 +++++++ .../annotations/PerformanceAspect.java | 32 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java diff --git a/spring-boot-mvc/pom.xml b/spring-boot-mvc/pom.xml index fee725847f..a414ed7bb2 100644 --- a/spring-boot-mvc/pom.xml +++ b/spring-boot-mvc/pom.xml @@ -89,6 +89,18 @@ provided + + + org.aspectj + aspectjrt + 1.9.1 + + + org.aspectj + aspectjweaver + 1.9.1 + + diff --git a/spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java b/spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java new file mode 100644 index 0000000000..534a2ba333 --- /dev/null +++ b/spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java @@ -0,0 +1,32 @@ +package com.baeldung.annotations; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +@Aspect +@Component +public class PerformanceAspect { + + private static Logger logger = Logger.getLogger(PerformanceAspect.class.getName()); + + @Pointcut("within(@org.springframework.stereotype.Repository *)") + public void repositoryClassMethods() { + } + + @Around("repositoryClassMethods()") + public Object measureMethodExecutionTime(ProceedingJoinPoint pjp) throws Throwable { + long start = System.nanoTime(); + Object retval = pjp.proceed(); + long end = System.nanoTime(); + String methodName = pjp.getSignature().getName(); + logger.info("Execution of " + methodName + " took " + TimeUnit.NANOSECONDS.toMillis(end - start) + " ms"); + return retval; + } + +} From 2d6e5b0156e6e3327b6aaca680ff56747b31fdd6 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Mon, 5 Aug 2019 00:38:32 +0530 Subject: [PATCH 19/52] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/java-pdf-creation article --- .../java/com/baeldung/pdf/PDFSampleMain.java | 77 ++++++++++++++++++ pdf/src/main/resources/Java_logo.png | Bin 0 -> 13960 bytes 2 files changed, 77 insertions(+) create mode 100644 pdf/src/main/java/com/baeldung/pdf/PDFSampleMain.java create mode 100644 pdf/src/main/resources/Java_logo.png diff --git a/pdf/src/main/java/com/baeldung/pdf/PDFSampleMain.java b/pdf/src/main/java/com/baeldung/pdf/PDFSampleMain.java new file mode 100644 index 0000000000..195f49e962 --- /dev/null +++ b/pdf/src/main/java/com/baeldung/pdf/PDFSampleMain.java @@ -0,0 +1,77 @@ +package com.baeldung.pdf; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.stream.Stream; + +import com.itextpdf.text.BadElementException; +import com.itextpdf.text.BaseColor; +import com.itextpdf.text.Document; +import com.itextpdf.text.Element; +import com.itextpdf.text.Image; +import com.itextpdf.text.Phrase; +import com.itextpdf.text.pdf.PdfPCell; +import com.itextpdf.text.pdf.PdfPTable; +import com.itextpdf.text.pdf.PdfWriter; + +public class PDFSampleMain { + + public static void main(String[] args) { + + try { + + Document document = new Document(); + PdfWriter.getInstance(document, new FileOutputStream("iTextTable.pdf")); + + document.open(); + + PdfPTable table = new PdfPTable(3); + addTableHeader(table); + addRows(table); + addCustomRows(table); + + document.add(table); + document.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void addTableHeader(PdfPTable table) { + Stream.of("column header 1", "column header 2", "column header 3") + .forEach(columnTitle -> { + PdfPCell header = new PdfPCell(); + header.setBackgroundColor(BaseColor.LIGHT_GRAY); + header.setBorderWidth(2); + header.setPhrase(new Phrase(columnTitle)); + table.addCell(header); + }); + } + + private static void addRows(PdfPTable table) { + table.addCell("row 1, col 1"); + table.addCell("row 1, col 2"); + table.addCell("row 1, col 3"); + } + + private static void addCustomRows(PdfPTable table) throws URISyntaxException, BadElementException, IOException { + Path path = Paths.get(ClassLoader.getSystemResource("Java_logo.png").toURI()); + Image img = Image.getInstance(path.toAbsolutePath().toString()); + img.scalePercent(10); + + PdfPCell imageCell = new PdfPCell(img); + table.addCell(imageCell); + + PdfPCell horizontalAlignCell = new PdfPCell(new Phrase("row 2, col 2")); + horizontalAlignCell.setHorizontalAlignment(Element.ALIGN_CENTER); + table.addCell(horizontalAlignCell); + + PdfPCell verticalAlignCell = new PdfPCell(new Phrase("row 2, col 3")); + verticalAlignCell.setVerticalAlignment(Element.ALIGN_BOTTOM); + table.addCell(verticalAlignCell); + } +} diff --git a/pdf/src/main/resources/Java_logo.png b/pdf/src/main/resources/Java_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..383327b2036404570dae04d6ed37084384d1d0e3 GIT binary patch literal 13960 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 Vj^4XbD1iRAi@A$ejdeZoe*iJj$MOIG literal 0 HcmV?d00001 From e456cead7d943ef38df058c4b348091e021d09b3 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 10:46:50 +0200 Subject: [PATCH 20/52] changed link from http to https in core-java-concurrency-advanced --- .../core-java-concurrency-advanced/README.md | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index 8e99858693..6222af8a82 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -3,23 +3,24 @@ ## Core Java Concurrency Advanced Examples ### Relevant Articles: -- [Introduction to Thread Pools in Java](http://www.baeldung.com/thread-pool-java-and-guava) -- [Guide to CountDownLatch in Java](http://www.baeldung.com/java-countdown-latch) -- [Guide to java.util.concurrent.Locks](http://www.baeldung.com/java-concurrent-locks) -- [An Introduction to ThreadLocal in Java](http://www.baeldung.com/java-threadlocal) -- [LongAdder and LongAccumulator in Java](http://www.baeldung.com/java-longadder-and-longaccumulator) -- [The Dining Philosophers Problem in Java](http://www.baeldung.com/java-dining-philoshophers) -- [Guide to the Java Phaser](http://www.baeldung.com/java-phaser) -- [An Introduction to Atomic Variables in Java](http://www.baeldung.com/java-atomic-variables) -- [CyclicBarrier in Java](http://www.baeldung.com/java-cyclic-barrier) -- [Guide to the Volatile Keyword in Java](http://www.baeldung.com/java-volatile) -- [Semaphores in Java](http://www.baeldung.com/java-semaphore) -- [Daemon Threads in Java](http://www.baeldung.com/java-daemon-thread) -- [Priority-based Job Scheduling in Java](http://www.baeldung.com/java-priority-job-schedule) +- [Introduction to Thread Pools in Java](https://www.baeldung.com/thread-pool-java-and-guava) +- [Guide to CountDownLatch in Java](https://www.baeldung.com/java-countdown-latch) +- [Guide to java.util.concurrent.Locks](https://www.baeldung.com/java-concurrent-locks) +- [An Introduction to ThreadLocal in Java](https://www.baeldung.com/java-threadlocal) +- [LongAdder and LongAccumulator in Java](https://www.baeldung.com/java-longadder-and-longaccumulator) +- [The Dining Philosophers Problem in Java](https://www.baeldung.com/java-dining-philoshophers) +- [Guide to the Java Phaser](https://www.baeldung.com/java-phaser) +- [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) +- [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) +- [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) + +- [Semaphores in Java](https://www.baeldung.com/java-semaphore) +- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) +- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) -- [Guide to the Fork/Join Framework in Java](http://www.baeldung.com/java-fork-join) -- [Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random) -- [The Thread.join() Method in Java](http://www.baeldung.com/java-thread-join) +- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) +- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) +- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) - [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) From 5be06e3d96197c61127a8b6857c558ef1c67f216 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 10:50:35 +0200 Subject: [PATCH 21/52] added module core-java-concurrency-advanced-2 --- .../.gitignore | 26 +++++++++++++++ .../README.md | 26 +++++++++++++++ .../core-java-concurrency-advanced-2/pom.xml | 33 +++++++++++++++++++ pom.xml | 2 ++ 4 files changed, 87 insertions(+) create mode 100644 core-java-modules/core-java-concurrency-advanced-2/.gitignore create mode 100644 core-java-modules/core-java-concurrency-advanced-2/README.md create mode 100644 core-java-modules/core-java-concurrency-advanced-2/pom.xml diff --git a/core-java-modules/core-java-concurrency-advanced-2/.gitignore b/core-java-modules/core-java-concurrency-advanced-2/.gitignore new file mode 100644 index 0000000000..3de4cc647e --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-2/.gitignore @@ -0,0 +1,26 @@ +*.class + +0.* + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* +.resourceCache + +# Packaged files # +*.jar +*.war +*.ear + +# Files generated by integration tests +*.txt +backup-pom.xml +/bin/ +/temp + +#IntelliJ specific +.idea/ +*.iml \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md new file mode 100644 index 0000000000..6222af8a82 --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -0,0 +1,26 @@ +========= + +## Core Java Concurrency Advanced Examples + +### Relevant Articles: +- [Introduction to Thread Pools in Java](https://www.baeldung.com/thread-pool-java-and-guava) +- [Guide to CountDownLatch in Java](https://www.baeldung.com/java-countdown-latch) +- [Guide to java.util.concurrent.Locks](https://www.baeldung.com/java-concurrent-locks) +- [An Introduction to ThreadLocal in Java](https://www.baeldung.com/java-threadlocal) +- [LongAdder and LongAccumulator in Java](https://www.baeldung.com/java-longadder-and-longaccumulator) +- [The Dining Philosophers Problem in Java](https://www.baeldung.com/java-dining-philoshophers) +- [Guide to the Java Phaser](https://www.baeldung.com/java-phaser) +- [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) +- [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) +- [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) + +- [Semaphores in Java](https://www.baeldung.com/java-semaphore) +- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) +- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) +- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) +- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) +- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) +- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) +- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) +- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) +- [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) diff --git a/core-java-modules/core-java-concurrency-advanced-2/pom.xml b/core-java-modules/core-java-concurrency-advanced-2/pom.xml new file mode 100644 index 0000000000..785c81edd2 --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-2/pom.xml @@ -0,0 +1,33 @@ + + 4.0.0 + com.baeldung + core-java-concurrency-advanced-2 + 0.1.0-SNAPSHOT + core-java-concurrency-advanced-2 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + + + core-java-concurrency-advanced-2 + + + src/main/resources + true + + + + + + + + diff --git a/pom.xml b/pom.xml index 4f40f8261f..3218e06754 100644 --- a/pom.xml +++ b/pom.xml @@ -1034,6 +1034,7 @@ parent-kotlin core-java-modules/core-java-concurrency-advanced + core-java-modules/core-java-concurrency-advanced-2 core-kotlin core-kotlin-2 core-kotlin-io @@ -1584,6 +1585,7 @@ core-java-modules/core-java core-java-modules/core-java-concurrency-advanced + core-java-modules/core-java-concurrency-advanced-2 core-kotlin core-kotlin-2 From 22838726967f800ad9816178e989fa73d7353dd5 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 10:51:31 +0200 Subject: [PATCH 22/52] added module core-java-concurrency-advanced-3 --- .../.gitignore | 26 +++++++++++++++ .../README.md | 26 +++++++++++++++ .../core-java-concurrency-advanced-3/pom.xml | 33 +++++++++++++++++++ pom.xml | 2 ++ 4 files changed, 87 insertions(+) create mode 100644 core-java-modules/core-java-concurrency-advanced-3/.gitignore create mode 100644 core-java-modules/core-java-concurrency-advanced-3/README.md create mode 100644 core-java-modules/core-java-concurrency-advanced-3/pom.xml diff --git a/core-java-modules/core-java-concurrency-advanced-3/.gitignore b/core-java-modules/core-java-concurrency-advanced-3/.gitignore new file mode 100644 index 0000000000..3de4cc647e --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-3/.gitignore @@ -0,0 +1,26 @@ +*.class + +0.* + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* +.resourceCache + +# Packaged files # +*.jar +*.war +*.ear + +# Files generated by integration tests +*.txt +backup-pom.xml +/bin/ +/temp + +#IntelliJ specific +.idea/ +*.iml \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-advanced-3/README.md b/core-java-modules/core-java-concurrency-advanced-3/README.md new file mode 100644 index 0000000000..6222af8a82 --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-3/README.md @@ -0,0 +1,26 @@ +========= + +## Core Java Concurrency Advanced Examples + +### Relevant Articles: +- [Introduction to Thread Pools in Java](https://www.baeldung.com/thread-pool-java-and-guava) +- [Guide to CountDownLatch in Java](https://www.baeldung.com/java-countdown-latch) +- [Guide to java.util.concurrent.Locks](https://www.baeldung.com/java-concurrent-locks) +- [An Introduction to ThreadLocal in Java](https://www.baeldung.com/java-threadlocal) +- [LongAdder and LongAccumulator in Java](https://www.baeldung.com/java-longadder-and-longaccumulator) +- [The Dining Philosophers Problem in Java](https://www.baeldung.com/java-dining-philoshophers) +- [Guide to the Java Phaser](https://www.baeldung.com/java-phaser) +- [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) +- [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) +- [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) + +- [Semaphores in Java](https://www.baeldung.com/java-semaphore) +- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) +- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) +- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) +- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) +- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) +- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) +- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) +- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) +- [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) diff --git a/core-java-modules/core-java-concurrency-advanced-3/pom.xml b/core-java-modules/core-java-concurrency-advanced-3/pom.xml new file mode 100644 index 0000000000..cc7b7b1e70 --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-3/pom.xml @@ -0,0 +1,33 @@ + + 4.0.0 + com.baeldung + core-java-concurrency-advanced-3 + 0.1.0-SNAPSHOT + core-java-concurrency-advanced-3 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + + + core-java-concurrency-advanced-3 + + + src/main/resources + true + + + + + + + + diff --git a/pom.xml b/pom.xml index 3218e06754..cdc42906d3 100644 --- a/pom.xml +++ b/pom.xml @@ -1035,6 +1035,7 @@ core-java-modules/core-java-concurrency-advanced core-java-modules/core-java-concurrency-advanced-2 + core-java-modules/core-java-concurrency-advanced-3 core-kotlin core-kotlin-2 core-kotlin-io @@ -1586,6 +1587,7 @@ core-java-modules/core-java core-java-modules/core-java-concurrency-advanced core-java-modules/core-java-concurrency-advanced-2 + core-java-modules/core-java-concurrency-advanced-3 core-kotlin core-kotlin-2 From ab8bab1948f9521880a82ccea0142b971e62ee89 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:01:59 +0200 Subject: [PATCH 23/52] fixed code for failing tests --- .../cyclicbarrier/CyclicBarrierCompletionMethodExample.java | 6 ++++++ .../concurrent/cyclicbarrier/CyclicBarrierResetExample.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCompletionMethodExample.java b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCompletionMethodExample.java index 7c1299da62..00cf314706 100644 --- a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCompletionMethodExample.java +++ b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCompletionMethodExample.java @@ -4,6 +4,7 @@ import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; public class CyclicBarrierCompletionMethodExample { @@ -35,6 +36,11 @@ public class CyclicBarrierCompletionMethodExample { }); } es.shutdown(); + try { + es.awaitTermination(1, TimeUnit.SECONDS); + } catch (InterruptedException e) { + e.printStackTrace(); + } return updateCount.get(); } diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java index 76b6198bc4..cf497687cc 100644 --- a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java +++ b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java @@ -4,6 +4,7 @@ import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; public class CyclicBarrierResetExample { @@ -36,6 +37,11 @@ public class CyclicBarrierResetExample { }); } es.shutdown(); + try { + es.awaitTermination(1, TimeUnit.SECONDS); + } catch (InterruptedException e) { + e.printStackTrace(); + } return updateCount.get(); } From 432395628b66b996252f86619522a8323037b177 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:09:26 +0200 Subject: [PATCH 24/52] moved semaphore examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- .../README.md | 20 ------------------- .../core-java-concurrency-advanced-2/pom.xml | 13 ++++++++++++ .../semaphores/CounterUsingMutex.java | 0 .../DelayQueueUsingTimedSemaphore.java | 0 .../semaphores/LoginQueueUsingSemaphore.java | 0 .../semaphores/SemaphoresManualTest.java | 0 .../core-java-concurrency-advanced/README.md | 1 - 7 files changed, 13 insertions(+), 21 deletions(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/semaphores/CounterUsingMutex.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/semaphores/DelayQueueUsingTimedSemaphore.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/semaphores/LoginQueueUsingSemaphore.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/semaphores/SemaphoresManualTest.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 6222af8a82..ca108f956e 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -3,24 +3,4 @@ ## Core Java Concurrency Advanced Examples ### Relevant Articles: -- [Introduction to Thread Pools in Java](https://www.baeldung.com/thread-pool-java-and-guava) -- [Guide to CountDownLatch in Java](https://www.baeldung.com/java-countdown-latch) -- [Guide to java.util.concurrent.Locks](https://www.baeldung.com/java-concurrent-locks) -- [An Introduction to ThreadLocal in Java](https://www.baeldung.com/java-threadlocal) -- [LongAdder and LongAccumulator in Java](https://www.baeldung.com/java-longadder-and-longaccumulator) -- [The Dining Philosophers Problem in Java](https://www.baeldung.com/java-dining-philoshophers) -- [Guide to the Java Phaser](https://www.baeldung.com/java-phaser) -- [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) -- [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) -- [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) - - [Semaphores in Java](https://www.baeldung.com/java-semaphore) -- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) -- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) -- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) -- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) -- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) -- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) -- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) -- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) -- [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) diff --git a/core-java-modules/core-java-concurrency-advanced-2/pom.xml b/core-java-modules/core-java-concurrency-advanced-2/pom.xml index 785c81edd2..2ce337bea1 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/pom.xml +++ b/core-java-modules/core-java-concurrency-advanced-2/pom.xml @@ -15,6 +15,18 @@ + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + org.assertj + assertj-core + ${assertj.version} + test + @@ -28,6 +40,7 @@ + 3.6.1 diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/semaphores/CounterUsingMutex.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/semaphores/CounterUsingMutex.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/semaphores/CounterUsingMutex.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/semaphores/CounterUsingMutex.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/semaphores/DelayQueueUsingTimedSemaphore.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/semaphores/DelayQueueUsingTimedSemaphore.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/semaphores/DelayQueueUsingTimedSemaphore.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/semaphores/DelayQueueUsingTimedSemaphore.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/semaphores/LoginQueueUsingSemaphore.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/semaphores/LoginQueueUsingSemaphore.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/semaphores/LoginQueueUsingSemaphore.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/semaphores/LoginQueueUsingSemaphore.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/semaphores/SemaphoresManualTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/semaphores/SemaphoresManualTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/semaphores/SemaphoresManualTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/semaphores/SemaphoresManualTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index 6222af8a82..a2e14376e3 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Semaphores in Java](https://www.baeldung.com/java-semaphore) - [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) - [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) From c98254dbe013f852e08a7f79f8f2c2d4775fdcd4 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:14:11 +0200 Subject: [PATCH 25/52] moved daemon thread examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- .../README.md | 1 + .../baeldung/concurrent/daemon/NewThread.java | 23 +++++++++++++++++++ .../daemon/DaemonThreadUnitTest.java | 0 .../core-java-concurrency-advanced/README.md | 1 - 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index ca108f956e..7dc0660f58 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -4,3 +4,4 @@ ### Relevant Articles: - [Semaphores in Java](https://www.baeldung.com/java-semaphore) +- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) diff --git a/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java new file mode 100644 index 0000000000..370ce99c09 --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java @@ -0,0 +1,23 @@ +package com.baeldung.concurrent.daemon; + +public class NewThread extends Thread { + public void run() { + long startTime = System.currentTimeMillis(); + while (true) { + for (int i = 0; i < 10; i++) { + System.out.println(this.getName() + ": New Thread is running..." + i); + try { + //Wait for one sec so it doesn't print too fast + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + // prevent the Thread to run forever. It will finish it's execution after 2 seconds + if (System.currentTimeMillis() - startTime > 2000) { + Thread.currentThread().interrupt(); + break; + } + } + } +} diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index a2e14376e3..f19b4c8375 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) - [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) From 0bfbfffac16c05ebf9a37ffee3dead86c85465a9 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:18:13 +0200 Subject: [PATCH 26/52] moved priority scheduling examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- core-java-modules/core-java-concurrency-advanced-2/README.md | 1 + .../java/com/baeldung/concurrent/prioritytaskexecution/Job.java | 0 .../baeldung/concurrent/prioritytaskexecution/JobPriority.java | 0 .../concurrent/prioritytaskexecution/PriorityJobScheduler.java | 0 .../prioritytaskexecution/PriorityJobSchedulerUnitTest.java | 0 core-java-modules/core-java-concurrency-advanced/README.md | 1 - 6 files changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/prioritytaskexecution/Job.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/prioritytaskexecution/JobPriority.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobScheduler.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobSchedulerUnitTest.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 7dc0660f58..9db768036a 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -5,3 +5,4 @@ ### Relevant Articles: - [Semaphores in Java](https://www.baeldung.com/java-semaphore) - [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) +- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/prioritytaskexecution/Job.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/prioritytaskexecution/Job.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/prioritytaskexecution/Job.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/prioritytaskexecution/Job.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/prioritytaskexecution/JobPriority.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/prioritytaskexecution/JobPriority.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/prioritytaskexecution/JobPriority.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/prioritytaskexecution/JobPriority.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobScheduler.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobScheduler.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobScheduler.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobScheduler.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobSchedulerUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobSchedulerUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobSchedulerUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/prioritytaskexecution/PriorityJobSchedulerUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index f19b4c8375..ac75ca4933 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) From 735462e6a8be435cdf0f4d233d8011b252b23fdd Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:19:56 +0200 Subject: [PATCH 27/52] moved yield examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- core-java-modules/core-java-concurrency-advanced-2/README.md | 1 + .../src/main/java/com/baeldung/concurrent/yield/ThreadYield.java | 0 core-java-modules/core-java-concurrency-advanced/README.md | 1 - 3 files changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/yield/ThreadYield.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 9db768036a..68a6550264 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -6,3 +6,4 @@ - [Semaphores in Java](https://www.baeldung.com/java-semaphore) - [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) - [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) +- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/yield/ThreadYield.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/yield/ThreadYield.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/yield/ThreadYield.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/yield/ThreadYield.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index ac75ca4933..f5d40b7976 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) - [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) From fd61088fc29a38286d677644fab70f0b78bf0737 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:21:47 +0200 Subject: [PATCH 28/52] moved threaded even and odd number print examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- core-java-modules/core-java-concurrency-advanced-2/README.md | 1 + .../baeldung/concurrent/evenandodd/PrintEvenOddSemaphore.java | 0 .../baeldung/concurrent/evenandodd/PrintEvenOddWaitNotify.java | 0 core-java-modules/core-java-concurrency-advanced/README.md | 1 - 4 files changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddSemaphore.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddWaitNotify.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 68a6550264..81e12c2bd5 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -7,3 +7,4 @@ - [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) - [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) +- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddSemaphore.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddSemaphore.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddSemaphore.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddSemaphore.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddWaitNotify.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddWaitNotify.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddWaitNotify.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/evenandodd/PrintEvenOddWaitNotify.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index f5d40b7976..af956b9b81 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) - [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) - [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) From 582de7b60e560a9f620d93cd3549b12800a75fba Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:33:40 +0200 Subject: [PATCH 29/52] moved cyclicbarrier vs countdownlatch examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- core-java-modules/core-java-concurrency-advanced-2/README.md | 1 + .../concurrent/countdownlatch/CountdownLatchCountExample.java | 0 .../concurrent/countdownlatch/CountdownLatchResetExample.java | 0 .../concurrent/cyclicbarrier/CyclicBarrierCountExample.java | 0 .../concurrent/cyclicbarrier/CyclicBarrierResetExample.java | 0 .../countdownlatch/CountdownLatchCountExampleUnitTest.java | 0 .../countdownlatch/CountdownLatchResetExampleUnitTest.java | 0 .../cyclicbarrier/CyclicBarrierCountExampleUnitTest.java | 0 .../cyclicbarrier/CyclicBarrierResetExampleUnitTest.java | 0 core-java-modules/core-java-concurrency-advanced/README.md | 1 - 10 files changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExample.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExample.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExample.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExampleUnitTest.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExampleUnitTest.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExampleUnitTest.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExampleUnitTest.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 81e12c2bd5..d1618bddc5 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -8,3 +8,4 @@ - [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) +- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExample.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExample.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExample.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExample.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExample.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExample.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExample.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExample.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExample.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExample.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExample.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExample.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExample.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExampleUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExampleUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExampleUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchCountExampleUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExampleUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExampleUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExampleUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchResetExampleUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExampleUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExampleUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExampleUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierCountExampleUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExampleUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExampleUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExampleUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/cyclicbarrier/CyclicBarrierResetExampleUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index af956b9b81..5a3e92299f 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) - [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) - [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) - [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) From 487c0df48213b7f281ad497db5a43a79d8e5ad91 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:37:53 +0200 Subject: [PATCH 30/52] moved fork-join examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- core-java-modules/core-java-concurrency-advanced-2/README.md | 1 + .../main/java/com/baeldung/forkjoin/CustomRecursiveAction.java | 0 .../main/java/com/baeldung/forkjoin/CustomRecursiveTask.java | 0 .../src/main/java/com/baeldung/forkjoin/util/PoolUtil.java | 0 .../com/baeldung/forkjoin}/Java8ForkJoinIntegrationTest.java | 2 +- core-java-modules/core-java-concurrency-advanced/README.md | 1 - 6 files changed, 2 insertions(+), 2 deletions(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java (100%) rename core-java-modules/{core-java-concurrency-advanced/src/test/java/com/baeldung/java8 => core-java-concurrency-advanced-2/src/test/java/com/baeldung/forkjoin}/Java8ForkJoinIntegrationTest.java (98%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index d1618bddc5..b1c8b93a74 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -9,3 +9,4 @@ - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) +- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/forkjoin/Java8ForkJoinIntegrationTest.java similarity index 98% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/forkjoin/Java8ForkJoinIntegrationTest.java index 6778fd782b..c469fe0195 100644 --- a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java +++ b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/forkjoin/Java8ForkJoinIntegrationTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java8; +package com.baeldung.forkjoin; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index 5a3e92299f..48ca49564b 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) - [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) - [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) - [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) From 2940c2bde57a1e703ed6483bec7301850c4783ac Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:43:37 +0200 Subject: [PATCH 31/52] moved thread local random examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- .../core-java-concurrency-advanced-2/README.md | 1 + .../core-java-concurrency-advanced-2/pom.xml | 13 +++++++++++++ .../ThreadLocalRandomBenchMarkRunner.java | 0 .../ThreadLocalRandomBenchMarker.java | 0 .../ThreadLocalRandomIntegrationTest.java | 0 .../core-java-concurrency-advanced/README.md | 1 - .../core-java-concurrency-advanced/pom.xml | 12 ------------ 7 files changed, 14 insertions(+), 13 deletions(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java (100%) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index b1c8b93a74..583c2e7312 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -10,3 +10,4 @@ - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) - [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) +- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) diff --git a/core-java-modules/core-java-concurrency-advanced-2/pom.xml b/core-java-modules/core-java-concurrency-advanced-2/pom.xml index 2ce337bea1..cad492b1ea 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/pom.xml +++ b/core-java-modules/core-java-concurrency-advanced-2/pom.xml @@ -20,6 +20,16 @@ commons-lang3 ${commons-lang3.version} + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-generator-annprocess.version} + org.assertj @@ -40,6 +50,9 @@ + 1.19 + 1.19 + 3.6.1 diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index 48ca49564b..ab85716907 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,6 +14,5 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) - [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) - [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) diff --git a/core-java-modules/core-java-concurrency-advanced/pom.xml b/core-java-modules/core-java-concurrency-advanced/pom.xml index 5d41909ed3..4a9ee30d65 100644 --- a/core-java-modules/core-java-concurrency-advanced/pom.xml +++ b/core-java-modules/core-java-concurrency-advanced/pom.xml @@ -47,16 +47,6 @@ ${avaitility.version} test - - org.openjdk.jmh - jmh-core - ${jmh-core.version} - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh-generator-annprocess.version} - @@ -78,8 +68,6 @@ 3.6.1 1.7.0 - 1.19 - 1.19 From 0e60db5e5a6590ecd181c380536cd5ad85f92e98 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:46:08 +0200 Subject: [PATCH 32/52] moved thread join examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- core-java-modules/core-java-concurrency-advanced-2/README.md | 1 + .../test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java | 0 core-java-modules/core-java-concurrency-advanced/README.md | 1 - 3 files changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/{core-java-concurrency-advanced => core-java-concurrency-advanced-2}/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java (100%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 583c2e7312..328a0579c7 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -11,3 +11,4 @@ - [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) - [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) - [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) +- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index ab85716907..e2b7c85517 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,5 +14,4 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) - [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) From 9d4614981b0d3464fc22e8f464c514666a64e443 Mon Sep 17 00:00:00 2001 From: fejera Date: Sun, 29 Sep 2019 11:50:23 +0200 Subject: [PATCH 33/52] moved parameterized thread examples from core-java-concurrency-advanced to core-java-concurrency-advanced-2 --- .../core-java-concurrency-advanced-2/README.md | 1 + .../baeldung/concurrent/parameters}/AverageCalculator.java | 2 +- .../concurrent/parameters}/ParameterizedThreadExample.java | 2 +- .../parameters/ParameterizedThreadUnitTest.java | 7 +++---- core-java-modules/core-java-concurrency-advanced/README.md | 2 -- 5 files changed, 6 insertions(+), 8 deletions(-) rename core-java-modules/{core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter => core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters}/AverageCalculator.java (90%) rename core-java-modules/{core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter => core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters}/ParameterizedThreadExample.java (95%) rename core-java-modules/{core-java-concurrency-advanced/src/test/java/com/baeldung => core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent}/parameters/ParameterizedThreadUnitTest.java (93%) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 328a0579c7..8db1b89468 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -12,3 +12,4 @@ - [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) - [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) - [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) +- [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter/AverageCalculator.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters/AverageCalculator.java similarity index 90% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter/AverageCalculator.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters/AverageCalculator.java index a548b5d4a7..f0997b30bd 100644 --- a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter/AverageCalculator.java +++ b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters/AverageCalculator.java @@ -1,4 +1,4 @@ -package com.baeldung.concurrent.parameter; +package com.baeldung.concurrent.parameters; import java.util.concurrent.Callable; import java.util.stream.IntStream; diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter/ParameterizedThreadExample.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters/ParameterizedThreadExample.java similarity index 95% rename from core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter/ParameterizedThreadExample.java rename to core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters/ParameterizedThreadExample.java index 73c61f3fb1..177bf14dae 100644 --- a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/concurrent/parameter/ParameterizedThreadExample.java +++ b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/parameters/ParameterizedThreadExample.java @@ -1,4 +1,4 @@ -package com.baeldung.concurrent.parameter; +package com.baeldung.concurrent.parameters; import java.util.concurrent.Callable; import java.util.stream.IntStream; diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/parameters/ParameterizedThreadUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/parameters/ParameterizedThreadUnitTest.java similarity index 93% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/parameters/ParameterizedThreadUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/parameters/ParameterizedThreadUnitTest.java index 21b374e609..4185d77dc3 100644 --- a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/parameters/ParameterizedThreadUnitTest.java +++ b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/parameters/ParameterizedThreadUnitTest.java @@ -1,14 +1,13 @@ -package com.baeldung.parameters; +package com.baeldung.concurrent.parameters; -import com.baeldung.concurrent.parameter.AverageCalculator; -import org.junit.Test; +import static org.junit.Assert.assertEquals; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.stream.IntStream; -import static org.junit.Assert.assertEquals; +import org.junit.Test; public class ParameterizedThreadUnitTest { diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index e2b7c85517..5c4a9889e2 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -13,5 +13,3 @@ - [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) - -- [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) From 3e56a168b195f5ef7aaf363f432e52b5aede8130 Mon Sep 17 00:00:00 2001 From: fejera Date: Mon, 7 Oct 2019 08:33:59 +0200 Subject: [PATCH 34/52] removed links from README in core-java-concurrency-advanced-3 --- .../README.md | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/core-java-modules/core-java-concurrency-advanced-3/README.md b/core-java-modules/core-java-concurrency-advanced-3/README.md index 6222af8a82..857a3e253c 100644 --- a/core-java-modules/core-java-concurrency-advanced-3/README.md +++ b/core-java-modules/core-java-concurrency-advanced-3/README.md @@ -3,24 +3,4 @@ ## Core Java Concurrency Advanced Examples ### Relevant Articles: -- [Introduction to Thread Pools in Java](https://www.baeldung.com/thread-pool-java-and-guava) -- [Guide to CountDownLatch in Java](https://www.baeldung.com/java-countdown-latch) -- [Guide to java.util.concurrent.Locks](https://www.baeldung.com/java-concurrent-locks) -- [An Introduction to ThreadLocal in Java](https://www.baeldung.com/java-threadlocal) -- [LongAdder and LongAccumulator in Java](https://www.baeldung.com/java-longadder-and-longaccumulator) -- [The Dining Philosophers Problem in Java](https://www.baeldung.com/java-dining-philoshophers) -- [Guide to the Java Phaser](https://www.baeldung.com/java-phaser) -- [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) -- [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) -- [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Semaphores in Java](https://www.baeldung.com/java-semaphore) -- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) -- [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) -- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) -- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads) -- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch) -- [Guide to the Fork/Join Framework in Java](https://www.baeldung.com/java-fork-join) -- [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) -- [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) -- [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) From dad6373190da697d8f571b515249c86454e6b94d Mon Sep 17 00:00:00 2001 From: fejera Date: Mon, 7 Oct 2019 08:36:35 +0200 Subject: [PATCH 35/52] added description to READMEs in core-java-concurrency-advanced* modules --- core-java-modules/core-java-concurrency-advanced-2/README.md | 2 ++ core-java-modules/core-java-concurrency-advanced-3/README.md | 2 ++ core-java-modules/core-java-concurrency-advanced/README.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index 8db1b89468..cdd8f86b60 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -2,6 +2,8 @@ ## Core Java Concurrency Advanced Examples +This module contains articles about advanced topics about multithreading with core Java. + ### Relevant Articles: - [Semaphores in Java](https://www.baeldung.com/java-semaphore) - [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) diff --git a/core-java-modules/core-java-concurrency-advanced-3/README.md b/core-java-modules/core-java-concurrency-advanced-3/README.md index 857a3e253c..37d9099b0f 100644 --- a/core-java-modules/core-java-concurrency-advanced-3/README.md +++ b/core-java-modules/core-java-concurrency-advanced-3/README.md @@ -2,5 +2,7 @@ ## Core Java Concurrency Advanced Examples +This module contains articles about advanced topics about multithreading with core Java. + ### Relevant Articles: diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index 5c4a9889e2..37b11847a6 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -2,6 +2,8 @@ ## Core Java Concurrency Advanced Examples +This module contains articles about advanced topics about multithreading with core Java. + ### Relevant Articles: - [Introduction to Thread Pools in Java](https://www.baeldung.com/thread-pool-java-and-guava) - [Guide to CountDownLatch in Java](https://www.baeldung.com/java-countdown-latch) From 7d7b58b1cb1e96b3be28a0bf223d1dda0c51c5cb Mon Sep 17 00:00:00 2001 From: fejera Date: Mon, 7 Oct 2019 08:40:03 +0200 Subject: [PATCH 36/52] added more and previous links to READMEs in core-java-concurrency-advanced* modules --- core-java-modules/core-java-concurrency-advanced-2/README.md | 2 ++ core-java-modules/core-java-concurrency-advanced-3/README.md | 1 + core-java-modules/core-java-concurrency-advanced/README.md | 2 ++ 3 files changed, 5 insertions(+) diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index cdd8f86b60..988ada9e4a 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -15,3 +15,5 @@ This module contains articles about advanced topics about multithreading with co - [Guide to ThreadLocalRandom in Java](https://www.baeldung.com/java-thread-local-random) - [The Thread.join() Method in Java](https://www.baeldung.com/java-thread-join) - [Passing Parameters to Java Threads](https://www.baeldung.com/java-thread-parameters) + +[[<-- previous]](/core-java-modules/core-java-concurrency-advanced)[[next -->]](/core-java-modules/core-java-concurrency-advanced-3) diff --git a/core-java-modules/core-java-concurrency-advanced-3/README.md b/core-java-modules/core-java-concurrency-advanced-3/README.md index 37d9099b0f..d1622b5fe1 100644 --- a/core-java-modules/core-java-concurrency-advanced-3/README.md +++ b/core-java-modules/core-java-concurrency-advanced-3/README.md @@ -6,3 +6,4 @@ This module contains articles about advanced topics about multithreading with co ### Relevant Articles: +[[<-- previous]](/core-java-modules/core-java-concurrency-advanced-2) diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index 37b11847a6..bc970c823e 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -15,3 +15,5 @@ This module contains articles about advanced topics about multithreading with co - [An Introduction to Atomic Variables in Java](https://www.baeldung.com/java-atomic-variables) - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) + +[[next -->]](/core-java-modules/core-java-concurrency-advanced-2) From cf1a2505ee99c32760a917c492d31dec70da8a79 Mon Sep 17 00:00:00 2001 From: fejera Date: Mon, 7 Oct 2019 08:42:37 +0200 Subject: [PATCH 37/52] removed .gitignore files from core-java-concurrency-advanced* modules --- .../.gitignore | 26 ------------------- .../.gitignore | 26 ------------------- .../core-java-concurrency-advanced/.gitignore | 26 ------------------- 3 files changed, 78 deletions(-) delete mode 100644 core-java-modules/core-java-concurrency-advanced-2/.gitignore delete mode 100644 core-java-modules/core-java-concurrency-advanced-3/.gitignore delete mode 100644 core-java-modules/core-java-concurrency-advanced/.gitignore diff --git a/core-java-modules/core-java-concurrency-advanced-2/.gitignore b/core-java-modules/core-java-concurrency-advanced-2/.gitignore deleted file mode 100644 index 3de4cc647e..0000000000 --- a/core-java-modules/core-java-concurrency-advanced-2/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -*.class - -0.* - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* -.resourceCache - -# Packaged files # -*.jar -*.war -*.ear - -# Files generated by integration tests -*.txt -backup-pom.xml -/bin/ -/temp - -#IntelliJ specific -.idea/ -*.iml \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-advanced-3/.gitignore b/core-java-modules/core-java-concurrency-advanced-3/.gitignore deleted file mode 100644 index 3de4cc647e..0000000000 --- a/core-java-modules/core-java-concurrency-advanced-3/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -*.class - -0.* - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* -.resourceCache - -# Packaged files # -*.jar -*.war -*.ear - -# Files generated by integration tests -*.txt -backup-pom.xml -/bin/ -/temp - -#IntelliJ specific -.idea/ -*.iml \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-advanced/.gitignore b/core-java-modules/core-java-concurrency-advanced/.gitignore deleted file mode 100644 index 3de4cc647e..0000000000 --- a/core-java-modules/core-java-concurrency-advanced/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -*.class - -0.* - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* -.resourceCache - -# Packaged files # -*.jar -*.war -*.ear - -# Files generated by integration tests -*.txt -backup-pom.xml -/bin/ -/temp - -#IntelliJ specific -.idea/ -*.iml \ No newline at end of file From 9490306d8d8ee3bb3c78f1d70bcd804c9fbe9bc0 Mon Sep 17 00:00:00 2001 From: Kyle Doyle Date: Mon, 7 Oct 2019 22:23:44 -0400 Subject: [PATCH 38/52] Bael-624 - Code Review fixes --- pom.xml | 1 + wildfly/pom.xml | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index d15e7f22ff..53b2bb71ba 100644 --- a/pom.xml +++ b/pom.xml @@ -603,6 +603,7 @@ spring-boot-nashorn java-blockchain + wildfly diff --git a/wildfly/pom.xml b/wildfly/pom.xml index bd2c93a633..d7dd1e835b 100644 --- a/wildfly/pom.xml +++ b/wildfly/pom.xml @@ -4,8 +4,9 @@ 4.0.0 org.springframework - gs-spring-boot-wildfly + wildfly 0.1.0 + wildfly war @@ -38,11 +39,11 @@ spring-boot-starter-test test - - javax.servlet - javax.servlet-api - provided - + + javax.servlet + javax.servlet-api + provided + From f6e74736069431da9802b99a3260c40b88ac71d9 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Mon, 2 Sep 2019 07:05:01 +0200 Subject: [PATCH 39/52] [BAEL-3128] Code for Breadth-First Search in Java Article * Added Tree and algorithm tests for trees * Implemented algorithm for trees * Added algorithm for graphs * Bidirectional graph * Minor updates * Readibility changes --- .../BreadthFirstSearchAlgorithm.java | 61 +++++++++++++ .../algorithms/breadthfirstsearch/Node.java | 31 +++++++ .../algorithms/breadthfirstsearch/Tree.java | 34 ++++++++ .../BreadthFirstSearchAlgorithmUnitTest.java | 85 +++++++++++++++++++ 4 files changed, 211 insertions(+) create mode 100644 algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java create mode 100644 algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java create mode 100644 algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Tree.java create mode 100644 algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java diff --git a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java new file mode 100644 index 0000000000..4331b2fc94 --- /dev/null +++ b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java @@ -0,0 +1,61 @@ +package com.baeldung.algorithms.breadthfirstsearch; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.*; + +public class BreadthFirstSearchAlgorithm { + + private static final Logger LOGGER = LoggerFactory.getLogger(BreadthFirstSearchAlgorithm.class); + + public static Optional> search(T value, Tree root) { + Queue> queue = new ArrayDeque<>(); + queue.add(root); + + return searchTreeQueue(value, queue); + } + + private static Optional> searchTreeQueue(T value, Queue> queue) { + Tree currentNode; + while (!queue.isEmpty()) { + currentNode = queue.remove(); + LOGGER.info("Visited node with value: {}", currentNode.getValue()); + + if (currentNode.getValue().equals(value)) { + return Optional.of(currentNode); + } else { + queue.addAll(currentNode.getChildren()); + } + } + + return Optional.empty(); + } + + public static Optional> search(T value, Node start) { + Queue> queue = new ArrayDeque<>(); + queue.add(start); + + return searchNodeQueue(value, queue); + } + + private static Optional> searchNodeQueue(T value, Queue> queue) { + Node currentNode; + Set> alreadyVisited = new HashSet<>(); + + while (!queue.isEmpty()) { + currentNode = queue.remove(); + LOGGER.info("Visited node with value: {}", currentNode.getValue()); + + if (currentNode.getValue().equals(value)) { + return Optional.of(currentNode); + } else { + alreadyVisited.add(currentNode); + queue.addAll(currentNode.getNeighbours()); + queue.removeAll(alreadyVisited); + } + } + + return Optional.empty(); + } +} diff --git a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java new file mode 100644 index 0000000000..bfa879f0b7 --- /dev/null +++ b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java @@ -0,0 +1,31 @@ +package com.baeldung.algorithms.breadthfirstsearch; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +public class Node { + + private T value; + private Set> neighbours; + + public Node(T value) { + this.value = value; + this.neighbours = new HashSet<>(); + } + + public T getValue() { + return value; + } + + public Set> getNeighbours() { + return Collections.unmodifiableSet(neighbours); + } + + public void connect(Node node) { + if (this == node) throw new IllegalArgumentException("Can't connect node to itself"); + this.neighbours.add(node); + node.neighbours.add(this); + } + +} diff --git a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Tree.java b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Tree.java new file mode 100644 index 0000000000..842d2837ff --- /dev/null +++ b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Tree.java @@ -0,0 +1,34 @@ +package com.baeldung.algorithms.breadthfirstsearch; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class Tree { + + private T value; + private List> children; + + private Tree(T value) { + this.value = value; + this.children = new ArrayList<>(); + } + + public static Tree of(T value) { + return new Tree<>(value); + } + + public T getValue() { + return value; + } + + public List> getChildren() { + return Collections.unmodifiableList(children); + } + + public Tree addChild(T value) { + Tree newChild = new Tree<>(value); + children.add(newChild); + return newChild; + } +} diff --git a/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java b/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java new file mode 100644 index 0000000000..188cc32c3e --- /dev/null +++ b/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java @@ -0,0 +1,85 @@ +package com.baeldung.algorithms.breadthfirstsearch; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class BreadthFirstSearchAlgorithmUnitTest { + + private Tree root; + private Tree rootFirstChild; + private Tree depthMostChild; + private Tree rootSecondChild; + + private Node start; + private Node firstNeighbour; + private Node firstNeighbourNeighbour; + private Node secondNeighbour; + + @BeforeEach + void beforeEach() { + initTree(); + initNode(); + } + + private void initTree() { + root = Tree.of(10); + rootFirstChild = root.addChild(2); + depthMostChild = rootFirstChild.addChild(3); + rootSecondChild = root.addChild(4); + } + + private void initNode() { + start = new Node<>(10); + firstNeighbour = new Node<>(2); + start.connect(firstNeighbour); + + firstNeighbourNeighbour = new Node<>(3); + firstNeighbour.connect(firstNeighbourNeighbour); + firstNeighbourNeighbour.connect(start); + + secondNeighbour = new Node<>(4); + start.connect(secondNeighbour); + } + + @Test + void givenTree_whenSearchTen_thenRoot() { + assertThat(BreadthFirstSearchAlgorithm.search(10, root)).isPresent().contains(root); + } + + @Test + void givenTree_whenSearchThree_thenDepthMostValue() { + assertThat(BreadthFirstSearchAlgorithm.search(3, root)).isPresent().contains(depthMostChild); + } + + @Test + void givenTree_whenSearchFour_thenRootSecondChild() { + assertThat(BreadthFirstSearchAlgorithm.search(4, root)).isPresent().contains(rootSecondChild); + } + + @Test + void givenTree_whenSearchFive_thenNotFound() { + assertThat(BreadthFirstSearchAlgorithm.search(5, root)).isEmpty(); + } + + @Test + void givenNode_whenSearchTen_thenStart() { + assertThat(BreadthFirstSearchAlgorithm.search(10, firstNeighbourNeighbour)).isPresent().contains(start); + } + + @Test + void givenNode_whenSearchThree_thenNeighbourNeighbour() { + assertThat(BreadthFirstSearchAlgorithm.search(3, firstNeighbourNeighbour)).isPresent().contains(firstNeighbourNeighbour); + } + + @Test + void givenNode_whenSearchFour_thenSecondNeighbour() { + assertThat(BreadthFirstSearchAlgorithm.search(4, firstNeighbourNeighbour)).isPresent().contains(secondNeighbour); + } + + @Test + void givenNode_whenSearchFive_thenNotFound() { + assertThat(BreadthFirstSearchAlgorithm.search(5, firstNeighbourNeighbour)).isEmpty(); + } +} \ No newline at end of file From 223a767d0149e76c96ab5def32e461aac286daa3 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Wed, 9 Oct 2019 05:15:45 +0200 Subject: [PATCH 40/52] [BAERL-3128] Fixes from editor review --- .../BreadthFirstSearchAlgorithm.java | 11 +-- .../algorithms/breadthfirstsearch/Node.java | 12 +-- .../BreadthFirstSearchAlgorithmUnitTest.java | 93 ++++++++++--------- 3 files changed, 55 insertions(+), 61 deletions(-) diff --git a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java index 4331b2fc94..9d301f9578 100644 --- a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java +++ b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithm.java @@ -13,10 +13,6 @@ public class BreadthFirstSearchAlgorithm { Queue> queue = new ArrayDeque<>(); queue.add(root); - return searchTreeQueue(value, queue); - } - - private static Optional> searchTreeQueue(T value, Queue> queue) { Tree currentNode; while (!queue.isEmpty()) { currentNode = queue.remove(); @@ -36,10 +32,6 @@ public class BreadthFirstSearchAlgorithm { Queue> queue = new ArrayDeque<>(); queue.add(start); - return searchNodeQueue(value, queue); - } - - private static Optional> searchNodeQueue(T value, Queue> queue) { Node currentNode; Set> alreadyVisited = new HashSet<>(); @@ -51,11 +43,12 @@ public class BreadthFirstSearchAlgorithm { return Optional.of(currentNode); } else { alreadyVisited.add(currentNode); - queue.addAll(currentNode.getNeighbours()); + queue.addAll(currentNode.getNeighbors()); queue.removeAll(alreadyVisited); } } return Optional.empty(); } + } diff --git a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java index bfa879f0b7..54a589ae26 100644 --- a/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java +++ b/algorithms-miscellaneous-3/src/main/java/com/baeldung/algorithms/breadthfirstsearch/Node.java @@ -7,25 +7,25 @@ import java.util.Set; public class Node { private T value; - private Set> neighbours; + private Set> neighbors; public Node(T value) { this.value = value; - this.neighbours = new HashSet<>(); + this.neighbors = new HashSet<>(); } public T getValue() { return value; } - public Set> getNeighbours() { - return Collections.unmodifiableSet(neighbours); + public Set> getNeighbors() { + return Collections.unmodifiableSet(neighbors); } public void connect(Node node) { if (this == node) throw new IllegalArgumentException("Can't connect node to itself"); - this.neighbours.add(node); - node.neighbours.add(this); + this.neighbors.add(node); + node.neighbors.add(this); } } diff --git a/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java b/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java index 188cc32c3e..aa22fc5353 100644 --- a/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java +++ b/algorithms-miscellaneous-3/src/test/java/com/baeldung/algorithms/breadthfirstsearch/BreadthFirstSearchAlgorithmUnitTest.java @@ -1,6 +1,5 @@ package com.baeldung.algorithms.breadthfirstsearch; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -13,14 +12,32 @@ class BreadthFirstSearchAlgorithmUnitTest { private Tree rootSecondChild; private Node start; - private Node firstNeighbour; - private Node firstNeighbourNeighbour; - private Node secondNeighbour; + private Node firstNeighbor; + private Node firstNeighborNeighbor; + private Node secondNeighbor; - @BeforeEach - void beforeEach() { + @Test + void givenTree_whenSearchTen_thenRoot() { initTree(); - initNode(); + assertThat(BreadthFirstSearchAlgorithm.search(10, root)).isPresent().contains(root); + } + + @Test + void givenTree_whenSearchThree_thenDepthMostValue() { + initTree(); + assertThat(BreadthFirstSearchAlgorithm.search(3, root)).isPresent().contains(depthMostChild); + } + + @Test + void givenTree_whenSearchFour_thenRootSecondChild() { + initTree(); + assertThat(BreadthFirstSearchAlgorithm.search(4, root)).isPresent().contains(rootSecondChild); + } + + @Test + void givenTree_whenSearchFive_thenNotFound() { + initTree(); + assertThat(BreadthFirstSearchAlgorithm.search(5, root)).isEmpty(); } private void initTree() { @@ -30,56 +47,40 @@ class BreadthFirstSearchAlgorithmUnitTest { rootSecondChild = root.addChild(4); } - private void initNode() { - start = new Node<>(10); - firstNeighbour = new Node<>(2); - start.connect(firstNeighbour); - - firstNeighbourNeighbour = new Node<>(3); - firstNeighbour.connect(firstNeighbourNeighbour); - firstNeighbourNeighbour.connect(start); - - secondNeighbour = new Node<>(4); - start.connect(secondNeighbour); - } - - @Test - void givenTree_whenSearchTen_thenRoot() { - assertThat(BreadthFirstSearchAlgorithm.search(10, root)).isPresent().contains(root); - } - - @Test - void givenTree_whenSearchThree_thenDepthMostValue() { - assertThat(BreadthFirstSearchAlgorithm.search(3, root)).isPresent().contains(depthMostChild); - } - - @Test - void givenTree_whenSearchFour_thenRootSecondChild() { - assertThat(BreadthFirstSearchAlgorithm.search(4, root)).isPresent().contains(rootSecondChild); - } - - @Test - void givenTree_whenSearchFive_thenNotFound() { - assertThat(BreadthFirstSearchAlgorithm.search(5, root)).isEmpty(); - } - @Test void givenNode_whenSearchTen_thenStart() { - assertThat(BreadthFirstSearchAlgorithm.search(10, firstNeighbourNeighbour)).isPresent().contains(start); + initNode(); + assertThat(BreadthFirstSearchAlgorithm.search(10, firstNeighborNeighbor)).isPresent().contains(start); } @Test - void givenNode_whenSearchThree_thenNeighbourNeighbour() { - assertThat(BreadthFirstSearchAlgorithm.search(3, firstNeighbourNeighbour)).isPresent().contains(firstNeighbourNeighbour); + void givenNode_whenSearchThree_thenNeighborNeighbor() { + initNode(); + assertThat(BreadthFirstSearchAlgorithm.search(3, firstNeighborNeighbor)).isPresent().contains(firstNeighborNeighbor); } @Test - void givenNode_whenSearchFour_thenSecondNeighbour() { - assertThat(BreadthFirstSearchAlgorithm.search(4, firstNeighbourNeighbour)).isPresent().contains(secondNeighbour); + void givenNode_whenSearchFour_thenSecondNeighbor() { + initNode(); + assertThat(BreadthFirstSearchAlgorithm.search(4, firstNeighborNeighbor)).isPresent().contains(secondNeighbor); } @Test void givenNode_whenSearchFive_thenNotFound() { - assertThat(BreadthFirstSearchAlgorithm.search(5, firstNeighbourNeighbour)).isEmpty(); + initNode(); + assertThat(BreadthFirstSearchAlgorithm.search(5, firstNeighborNeighbor)).isEmpty(); + } + + private void initNode() { + start = new Node<>(10); + firstNeighbor = new Node<>(2); + start.connect(firstNeighbor); + + firstNeighborNeighbor = new Node<>(3); + firstNeighbor.connect(firstNeighborNeighbor); + firstNeighborNeighbor.connect(start); + + secondNeighbor = new Node<>(4); + start.connect(secondNeighbor); } } \ No newline at end of file From 00c18aa1d05844788b9c509abb23cdf44294ce8a Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Fri, 11 Oct 2019 20:13:15 +0300 Subject: [PATCH 41/52] Update README.md --- libraries/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/README.md b/libraries/README.md index 627c30e75a..79ba8fe55d 100644 --- a/libraries/README.md +++ b/libraries/README.md @@ -40,7 +40,6 @@ Remember, for advanced libraries like [Jackson](/jackson) and [JUnit](/testing-m - [Publish and Receive Messages with Nats Java Client](https://www.baeldung.com/nats-java-client) - [Java Concurrency Utility with JCTools](https://www.baeldung.com/java-concurrency-jc-tools) - [Introduction to JavaPoet](https://www.baeldung.com/java-poet) -- [Convert String to Date in Java](https://www.baeldung.com/java-string-to-date) - [Guide to Resilience4j](https://www.baeldung.com/resilience4j) - [Exactly Once Processing in Kafka](https://www.baeldung.com/kafka-exactly-once) - [Implementing a FTP-Client in Java](https://www.baeldung.com/java-ftp-client) From ee48e6a29da67629cdfc8c7550a4f5b26f3c7ac5 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Fri, 11 Oct 2019 20:13:33 +0300 Subject: [PATCH 42/52] Update README.md --- java-dates/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/java-dates/README.md b/java-dates/README.md index 3a215f9094..2c962ece64 100644 --- a/java-dates/README.md +++ b/java-dates/README.md @@ -30,3 +30,4 @@ - [ZoneOffset in Java](https://www.baeldung.com/java-zone-offset) - [Differences Between ZonedDateTime and OffsetDateTime](https://www.baeldung.com/java-zoneddatetime-offsetdatetime) - [Introduction to Joda-Time](https://www.baeldung.com/joda-time) +- [Convert String to Date in Java](https://www.baeldung.com/java-string-to-date) From 2c8354eb512d7e967a300272c0c4220ec95db481 Mon Sep 17 00:00:00 2001 From: Dhawal Kapil Date: Sat, 12 Oct 2019 19:24:18 +0530 Subject: [PATCH 43/52] BAEL-17684 POM Properties Cleanup -Properties cleanup --- animal-sniffer-mvn-plugin/pom.xml | 1 - apache-avro/pom.xml | 17 ----------------- apache-fop/pom.xml | 1 - apache-geode/pom.xml | 19 ------------------- apache-meecrowave/pom.xml | 8 -------- apache-olingo/olingo2/pom.xml | 1 - apache-pulsar/pom.xml | 4 +--- apache-solrj/pom.xml | 1 - apache-spark/pom.xml | 11 ----------- apache-velocity/pom.xml | 1 - aws-lambda/pom.xml | 2 -- aws/pom.xml | 1 - axon/pom.xml | 1 - azure/pom.xml | 1 - parent-java/pom.xml | 1 - parent-kotlin/pom.xml | 10 +++------- parent-spring-4/pom.xml | 1 - parent-spring-5/pom.xml | 1 - 18 files changed, 4 insertions(+), 78 deletions(-) diff --git a/animal-sniffer-mvn-plugin/pom.xml b/animal-sniffer-mvn-plugin/pom.xml index 55e37e2ec4..fd8f6d3d8c 100644 --- a/animal-sniffer-mvn-plugin/pom.xml +++ b/animal-sniffer-mvn-plugin/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung animal-sniffer-mvn-plugin 1.0-SNAPSHOT animal-sniffer-mvn-plugin diff --git a/apache-avro/pom.xml b/apache-avro/pom.xml index e6fb4d24ff..6baae9c541 100644 --- a/apache-avro/pom.xml +++ b/apache-avro/pom.xml @@ -14,12 +14,6 @@ - - junit - junit - ${junit.version} - test - org.slf4j slf4j-simple @@ -46,15 +40,6 @@ - - org.apache.maven.plugins - maven-compiler-plugin - ${compiler-plugin.version} - - ${java.version} - ${java.version} - - org.apache.avro avro-maven-plugin @@ -79,8 +64,6 @@ - UTF-8 - 3.5 1.8.2 1.7.25 diff --git a/apache-fop/pom.xml b/apache-fop/pom.xml index 879eb4f111..150756d51d 100644 --- a/apache-fop/pom.xml +++ b/apache-fop/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung apache-fop 0.1-SNAPSHOT apache-fop diff --git a/apache-geode/pom.xml b/apache-geode/pom.xml index 15c7e04d29..57195a5991 100644 --- a/apache-geode/pom.xml +++ b/apache-geode/pom.xml @@ -17,27 +17,8 @@ org.apache.geode geode-core - ${geode.core} - - - junit - junit - ${junit.version} - - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${java.version} - ${java.version} - - - - 1.6.0 diff --git a/apache-meecrowave/pom.xml b/apache-meecrowave/pom.xml index 4eb1094f94..51c6514992 100644 --- a/apache-meecrowave/pom.xml +++ b/apache-meecrowave/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung apache-meecrowave 0.0.1 apache-meecrowave @@ -38,13 +37,6 @@ ${meecrowave-junit.version} test - - - junit - junit - ${junit.version} - test - diff --git a/apache-olingo/olingo2/pom.xml b/apache-olingo/olingo2/pom.xml index 727e6ca484..95b123efbc 100644 --- a/apache-olingo/olingo2/pom.xml +++ b/apache-olingo/olingo2/pom.xml @@ -5,7 +5,6 @@ 4.0.0 org.baeldung.examples.olingo2 olingo2 - 0.0.1-SNAPSHOT olingo2 Sample Olingo 2 Project diff --git a/apache-pulsar/pom.xml b/apache-pulsar/pom.xml index 8a0882dae1..fdd9ae1e95 100644 --- a/apache-pulsar/pom.xml +++ b/apache-pulsar/pom.xml @@ -24,8 +24,6 @@ - 1.8 - 1.8 - 2.1.1-incubating + 2.1.1-incubating diff --git a/apache-solrj/pom.xml b/apache-solrj/pom.xml index 1227fdca46..b19ceb1e48 100644 --- a/apache-solrj/pom.xml +++ b/apache-solrj/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung apache-solrj 0.0.1-SNAPSHOT apache-solrj diff --git a/apache-spark/pom.xml b/apache-spark/pom.xml index 3df81e5aee..41fd51d9fd 100644 --- a/apache-spark/pom.xml +++ b/apache-spark/pom.xml @@ -2,7 +2,6 @@ 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 - com.baeldung apache-spark 1.0-SNAPSHOT apache-spark @@ -59,15 +58,6 @@ - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${java.version} - ${java.version} - - maven-assembly-plugin @@ -95,7 +85,6 @@ 2.3.0 2.3.0 1.5.2 - 3.2 diff --git a/apache-velocity/pom.xml b/apache-velocity/pom.xml index 24ab0b861d..b370b11cc1 100644 --- a/apache-velocity/pom.xml +++ b/apache-velocity/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung 0.1-SNAPSHOT apache-velocity apache-velocity diff --git a/aws-lambda/pom.xml b/aws-lambda/pom.xml index c799718e61..1f3c31f87c 100644 --- a/aws-lambda/pom.xml +++ b/aws-lambda/pom.xml @@ -2,7 +2,6 @@ 4.0.0 - com.baeldung aws-lambda 0.1.0-SNAPSHOT aws-lambda @@ -88,7 +87,6 @@ 1.1.1 - 20180130 2.5 1.3.0 1.2.0 diff --git a/aws/pom.xml b/aws/pom.xml index 75d5aac1eb..45a30f96ba 100644 --- a/aws/pom.xml +++ b/aws/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung aws 0.1.0-SNAPSHOT aws diff --git a/axon/pom.xml b/axon/pom.xml index 3d30cceb83..21e21f0ef2 100644 --- a/axon/pom.xml +++ b/axon/pom.xml @@ -30,7 +30,6 @@ org.springframework.boot spring-boot-autoconfigure - ${spring-boot.version} compile diff --git a/azure/pom.xml b/azure/pom.xml index 270b3e4829..3d9c296748 100644 --- a/azure/pom.xml +++ b/azure/pom.xml @@ -2,7 +2,6 @@ 4.0.0 - com.baeldung azure 0.1 azure diff --git a/parent-java/pom.xml b/parent-java/pom.xml index 09e2596d0a..fd3028680d 100644 --- a/parent-java/pom.xml +++ b/parent-java/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung parent-java 0.0.1-SNAPSHOT parent-java diff --git a/parent-kotlin/pom.xml b/parent-kotlin/pom.xml index d993fad3c6..bda5fb70e7 100644 --- a/parent-kotlin/pom.xml +++ b/parent-kotlin/pom.xml @@ -56,18 +56,15 @@ org.jetbrains.kotlin kotlin-stdlib-jdk8 - ${kotlin.version} - + org.jetbrains.kotlin kotlin-stdlib - ${kotlin.version} - + org.jetbrains.kotlin kotlin-reflect - ${kotlin.version} - + org.jetbrains.kotlinx @@ -93,7 +90,6 @@ org.jetbrains.kotlin kotlin-test-junit - ${kotlin.version} test diff --git a/parent-spring-4/pom.xml b/parent-spring-4/pom.xml index 390934ca7b..b98d962580 100644 --- a/parent-spring-4/pom.xml +++ b/parent-spring-4/pom.xml @@ -1,7 +1,6 @@ 4.0.0 - com.baeldung parent-spring-4 0.0.1-SNAPSHOT parent-spring-4 diff --git a/parent-spring-5/pom.xml b/parent-spring-5/pom.xml index e43e129c7f..f126006bcb 100644 --- a/parent-spring-5/pom.xml +++ b/parent-spring-5/pom.xml @@ -2,7 +2,6 @@ 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 - com.baeldung parent-spring-5 0.0.1-SNAPSHOT parent-spring-5 From 35905797360b30583f069ce3eb38bfc94a69e48c Mon Sep 17 00:00:00 2001 From: Dhawal Kapil Date: Sat, 12 Oct 2019 19:28:32 +0530 Subject: [PATCH 44/52] BAEL-17684 POM Properties Cleanup -Properties cleanup --- apache-geode/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/apache-geode/pom.xml b/apache-geode/pom.xml index 57195a5991..195dfadd20 100644 --- a/apache-geode/pom.xml +++ b/apache-geode/pom.xml @@ -17,6 +17,7 @@ org.apache.geode geode-core + ${geode.core} From bcb8a6c112d3bffba3ee599148cf890453ce2324 Mon Sep 17 00:00:00 2001 From: Ali Dehghani Date: Sat, 12 Oct 2019 22:43:57 +0330 Subject: [PATCH 45/52] Applied the requested changes. --- core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt b/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt index 1384cd9937..3a8a4b9857 100644 --- a/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt +++ b/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt @@ -1,6 +1,6 @@ package com.baeldung.builder -class FoodOrder( +class FoodOrder private constructor( val bread: String?, val condiments: String?, val meat: String?, From a97793396f92b1353534a3ef52f8a9aafcf25f71 Mon Sep 17 00:00:00 2001 From: catalin-burcea Date: Sat, 12 Oct 2019 22:15:42 +0300 Subject: [PATCH 46/52] Move articles out of java-strings part1 --- .../core-java-string-conversions-2/README.md | 9 + .../core-java-string-conversions-2/pom.xml | 47 +++ .../stringconversions}/UseLocalDateTime.java | 2 +- .../CharArrayToStringConversionUnitTest.java | 2 +- .../StringConversionUnitTest.java | 4 +- .../ByteArrayToStringUnitTest.java | 2 +- .../StringToByteArrayUnitTest.java | 2 +- .../core-java-string-conversions/README.md | 17 ++ .../core-java-string-conversions/pom.xml | 67 +++++ .../stringtoenum}/PizzaStatusEnum.java | 2 +- .../titlecase}/TitleCaseConverter.java | 11 +- .../chartostring}/CharToStringUnitTest.java | 2 +- .../DateToStringFormatterUnitTest.java | 8 +- .../FileToBase64StringConversionUnitTest.java | 8 +- .../StringToDoubleConversionUnitTest.java | 2 +- .../stringtoenum/StringToEnumUnitTest.java | 4 +- .../StringToIntOrIntegerUnitTest.java | 2 +- .../ConvertStringToListUnitTest.java | 269 +++++++++--------- .../StringToCharStreamUnitTest.java | 2 +- .../TitleCaseConverterUnitTest.java | 2 +- .../src/test/resources/test_image.jpg | Bin java-strings-2/README.md | 2 - java-strings-3/README.md | 5 +- java-strings-ops/README.md | 6 +- .../com/baeldung/java/conversion/README.md | 2 - java-strings/README.md | 7 +- pom.xml | 4 + 27 files changed, 309 insertions(+), 181 deletions(-) create mode 100644 core-java-modules/core-java-string-conversions-2/README.md create mode 100644 core-java-modules/core-java-string-conversions-2/pom.xml rename {java-strings-ops/src/main/java/com/baeldung/datetime => core-java-modules/core-java-string-conversions-2/src/main/java/com/baeldung/stringconversions}/UseLocalDateTime.java (84%) rename {java-strings-3/src/test/java/com/baeldung/string/charArrayToString => core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/chararraytostring}/CharArrayToStringConversionUnitTest.java (97%) rename {java-strings-ops/src/test/java/com/baeldung/java/conversion => core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringconversions}/StringConversionUnitTest.java (97%) rename {java-strings-ops/src/test/java/com/baeldung/string/conversion => core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray}/ByteArrayToStringUnitTest.java (98%) rename {java-strings-ops/src/test/java/com/baeldung/string/conversion => core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray}/StringToByteArrayUnitTest.java (99%) create mode 100644 core-java-modules/core-java-string-conversions/README.md create mode 100644 core-java-modules/core-java-string-conversions/pom.xml rename {java-strings/src/main/java/com/baeldung/enums => core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/stringtoenum}/PizzaStatusEnum.java (95%) rename {java-strings/src/main/java/com/baeldung/string => core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/titlecase}/TitleCaseConverter.java (98%) rename {java-strings-ops/src/test/java/com/baeldung => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/chartostring}/CharToStringUnitTest.java (97%) rename {java-strings-2/src/test/java/com/baeldung/string/formatter => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/datetostring}/DateToStringFormatterUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/fileToBase64StringConversion => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/filetobase64conversion}/FileToBase64StringConversionUnitTest.java (96%) rename {java-strings-3/src/test/java/com/baeldung/string/todouble => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtodouble}/StringToDoubleConversionUnitTest.java (97%) rename java-strings/src/test/java/com/baeldung/enums/PizzaUnitTest.java => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoenum/StringToEnumUnitTest.java (92%) rename {java-strings/src/test/java/com/baeldung => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoint}/StringToIntOrIntegerUnitTest.java (97%) rename {java-strings-2/src/test/java/com/baeldung => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtolist}/ConvertStringToListUnitTest.java (96%) rename {java-strings/src/test/java/com/baeldung/string => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtostream}/StringToCharStreamUnitTest.java (98%) rename {java-strings/src/test/java/com/baeldung/string => core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/titlecase}/TitleCaseConverterUnitTest.java (99%) rename {java-strings-2 => core-java-modules/core-java-string-conversions}/src/test/resources/test_image.jpg (100%) delete mode 100644 java-strings-ops/src/test/java/com/baeldung/java/conversion/README.md diff --git a/core-java-modules/core-java-string-conversions-2/README.md b/core-java-modules/core-java-string-conversions-2/README.md new file mode 100644 index 0000000000..b4da1b8bad --- /dev/null +++ b/core-java-modules/core-java-string-conversions-2/README.md @@ -0,0 +1,9 @@ +## Java String Conversions + +This module contains articles about string conversions from/to another type. + +### Relevant Articles: +- [Java String Conversions](https://www.baeldung.com/java-string-conversions) +- [Convert String to Byte Array and Reverse in Java](https://www.baeldung.com/java-string-to-byte-array) +- [Convert Char Array to String](https://www.baeldung.com/java-char-array-to-string) +- More articles: [[<-- prev]](/core-java-string-conversions) diff --git a/core-java-modules/core-java-string-conversions-2/pom.xml b/core-java-modules/core-java-string-conversions-2/pom.xml new file mode 100644 index 0000000000..396d836e6b --- /dev/null +++ b/core-java-modules/core-java-string-conversions-2/pom.xml @@ -0,0 +1,47 @@ + + 4.0.0 + core-java-string-conversions-2 + 0.1.0-SNAPSHOT + jar + core-java-string-conversions-2 + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + com.google.guava + guava + ${guava.version} + + + junit + junit + ${junit.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + + core-java-string-conversions-2 + + + src/main/resources + true + + + + + + diff --git a/java-strings-ops/src/main/java/com/baeldung/datetime/UseLocalDateTime.java b/core-java-modules/core-java-string-conversions-2/src/main/java/com/baeldung/stringconversions/UseLocalDateTime.java similarity index 84% rename from java-strings-ops/src/main/java/com/baeldung/datetime/UseLocalDateTime.java rename to core-java-modules/core-java-string-conversions-2/src/main/java/com/baeldung/stringconversions/UseLocalDateTime.java index 7f39ac2f91..7b43c3b588 100644 --- a/java-strings-ops/src/main/java/com/baeldung/datetime/UseLocalDateTime.java +++ b/core-java-modules/core-java-string-conversions-2/src/main/java/com/baeldung/stringconversions/UseLocalDateTime.java @@ -1,4 +1,4 @@ -package com.baeldung.datetime; +package com.baeldung.stringconversions; import java.time.LocalDateTime; diff --git a/java-strings-3/src/test/java/com/baeldung/string/charArrayToString/CharArrayToStringConversionUnitTest.java b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/chararraytostring/CharArrayToStringConversionUnitTest.java similarity index 97% rename from java-strings-3/src/test/java/com/baeldung/string/charArrayToString/CharArrayToStringConversionUnitTest.java rename to core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/chararraytostring/CharArrayToStringConversionUnitTest.java index 1030185c3e..dc68632f0b 100644 --- a/java-strings-3/src/test/java/com/baeldung/string/charArrayToString/CharArrayToStringConversionUnitTest.java +++ b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/chararraytostring/CharArrayToStringConversionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.charArrayToString; +package com.baeldung.chararraytostring; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; diff --git a/java-strings-ops/src/test/java/com/baeldung/java/conversion/StringConversionUnitTest.java b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringconversions/StringConversionUnitTest.java similarity index 97% rename from java-strings-ops/src/test/java/com/baeldung/java/conversion/StringConversionUnitTest.java rename to core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringconversions/StringConversionUnitTest.java index fbbbb21ccd..d896b92b5c 100644 --- a/java-strings-ops/src/test/java/com/baeldung/java/conversion/StringConversionUnitTest.java +++ b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringconversions/StringConversionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.conversion; +package com.baeldung.stringconversions; import static org.junit.Assert.assertEquals; @@ -13,8 +13,6 @@ import java.util.GregorianCalendar; import org.junit.Test; -import com.baeldung.datetime.UseLocalDateTime; - public class StringConversionUnitTest { @Test diff --git a/java-strings-ops/src/test/java/com/baeldung/string/conversion/ByteArrayToStringUnitTest.java b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray/ByteArrayToStringUnitTest.java similarity index 98% rename from java-strings-ops/src/test/java/com/baeldung/string/conversion/ByteArrayToStringUnitTest.java rename to core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray/ByteArrayToStringUnitTest.java index a9f8a04c8d..e5efffd8f7 100644 --- a/java-strings-ops/src/test/java/com/baeldung/string/conversion/ByteArrayToStringUnitTest.java +++ b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray/ByteArrayToStringUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.conversion; +package com.baeldung.stringtobytearray; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/java-strings-ops/src/test/java/com/baeldung/string/conversion/StringToByteArrayUnitTest.java b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray/StringToByteArrayUnitTest.java similarity index 99% rename from java-strings-ops/src/test/java/com/baeldung/string/conversion/StringToByteArrayUnitTest.java rename to core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray/StringToByteArrayUnitTest.java index 5377b4b28d..961c99bbde 100644 --- a/java-strings-ops/src/test/java/com/baeldung/string/conversion/StringToByteArrayUnitTest.java +++ b/core-java-modules/core-java-string-conversions-2/src/test/java/com/baeldung/stringtobytearray/StringToByteArrayUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.conversion; +package com.baeldung.stringtobytearray; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/core-java-modules/core-java-string-conversions/README.md b/core-java-modules/core-java-string-conversions/README.md new file mode 100644 index 0000000000..251851e8ac --- /dev/null +++ b/core-java-modules/core-java-string-conversions/README.md @@ -0,0 +1,17 @@ +## Java String Conversions + +This module contains articles about string conversions from/to another type. + +### Relevant Articles: +- [Converting String to Stream of chars](https://www.baeldung.com/java-string-to-stream) +- [Converting Strings to Enums in Java](https://www.baeldung.com/java-string-to-enum) +- [Convert a String to Title Case](https://www.baeldung.com/java-string-title-case) +- [Convert java.util.Date to String](https://www.baeldung.com/java-util-date-to-string) +- [Converting a Stack Trace to a String in Java](https://www.baeldung.com/java-stacktrace-to-string) +- [Image to Base64 String Conversion](https://www.baeldung.com/java-base64-image-string) +- [Convert a Comma Separated String to a List in Java](https://www.baeldung.com/java-string-with-separator-to-list) +- [Converting Java String to Double](https://www.baeldung.com/java-string-to-double) +- [Convert Char to String in Java](https://www.baeldung.com/java-convert-char-to-string) +- [Convert String to int or Integer in Java](https://www.baeldung.com/java-convert-string-to-int-or-integer) +- More articles: [[next -->]](/core-java-string-conversions-2) +"Counting Words in a String \ No newline at end of file diff --git a/core-java-modules/core-java-string-conversions/pom.xml b/core-java-modules/core-java-string-conversions/pom.xml new file mode 100644 index 0000000000..9c968b7f1c --- /dev/null +++ b/core-java-modules/core-java-string-conversions/pom.xml @@ -0,0 +1,67 @@ + + 4.0.0 + core-java-string-conversions + 0.1.0-SNAPSHOT + jar + core-java-string-conversions + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + com.ibm.icu + icu4j + ${icu4j.version} + + + commons-io + commons-io + ${commons-io.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + com.google.guava + guava + ${guava.version} + + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + + core-java-string-conversions + + + src/main/resources + true + + + + + + 61.1 + 3.6.1 + + + diff --git a/java-strings/src/main/java/com/baeldung/enums/PizzaStatusEnum.java b/core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/stringtoenum/PizzaStatusEnum.java similarity index 95% rename from java-strings/src/main/java/com/baeldung/enums/PizzaStatusEnum.java rename to core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/stringtoenum/PizzaStatusEnum.java index a84829c38d..02646ef997 100644 --- a/java-strings/src/main/java/com/baeldung/enums/PizzaStatusEnum.java +++ b/core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/stringtoenum/PizzaStatusEnum.java @@ -1,4 +1,4 @@ -package com.baeldung.enums; +package com.baeldung.stringtoenum; public enum PizzaStatusEnum { ORDERED(5) { diff --git a/java-strings/src/main/java/com/baeldung/string/TitleCaseConverter.java b/core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/titlecase/TitleCaseConverter.java similarity index 98% rename from java-strings/src/main/java/com/baeldung/string/TitleCaseConverter.java rename to core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/titlecase/TitleCaseConverter.java index 81043f6dac..1c35e1a2d6 100644 --- a/java-strings/src/main/java/com/baeldung/string/TitleCaseConverter.java +++ b/core-java-modules/core-java-string-conversions/src/main/java/com/baeldung/titlecase/TitleCaseConverter.java @@ -1,12 +1,11 @@ -package com.baeldung.string; - -import java.util.Arrays; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.text.WordUtils; +package com.baeldung.titlecase; import com.ibm.icu.lang.UCharacter; import com.ibm.icu.text.BreakIterator; +import org.apache.commons.lang3.text.WordUtils; + +import java.util.Arrays; +import java.util.stream.Collectors; public class TitleCaseConverter { diff --git a/java-strings-ops/src/test/java/com/baeldung/CharToStringUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/chartostring/CharToStringUnitTest.java similarity index 97% rename from java-strings-ops/src/test/java/com/baeldung/CharToStringUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/chartostring/CharToStringUnitTest.java index 78742e356d..db7c8a16ec 100644 --- a/java-strings-ops/src/test/java/com/baeldung/CharToStringUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/chartostring/CharToStringUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.chartostring; import org.junit.Test; diff --git a/java-strings-2/src/test/java/com/baeldung/string/formatter/DateToStringFormatterUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/datetostring/DateToStringFormatterUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/string/formatter/DateToStringFormatterUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/datetostring/DateToStringFormatterUnitTest.java index d760510c73..221900fb0e 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/formatter/DateToStringFormatterUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/datetostring/DateToStringFormatterUnitTest.java @@ -1,6 +1,7 @@ -package com.baeldung.string.formatter; +package com.baeldung.datetostring; -import static org.junit.Assert.assertEquals; +import org.junit.BeforeClass; +import org.junit.Test; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -13,8 +14,7 @@ import java.util.Date; import java.util.Locale; import java.util.TimeZone; -import org.junit.BeforeClass; -import org.junit.Test; +import static org.junit.Assert.assertEquals; public class DateToStringFormatterUnitTest { diff --git a/java-strings-2/src/test/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversionUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/filetobase64conversion/FileToBase64StringConversionUnitTest.java similarity index 96% rename from java-strings-2/src/test/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversionUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/filetobase64conversion/FileToBase64StringConversionUnitTest.java index eef21a98c9..9b165069d6 100644 --- a/java-strings-2/src/test/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversionUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/filetobase64conversion/FileToBase64StringConversionUnitTest.java @@ -1,13 +1,13 @@ -package com.baeldung.fileToBase64StringConversion; +package com.baeldung.filetobase64conversion; -import static org.junit.Assert.assertTrue; +import org.apache.commons.io.FileUtils; +import org.junit.Test; import java.io.File; import java.io.IOException; import java.util.Base64; -import org.apache.commons.io.FileUtils; -import org.junit.Test; +import static org.junit.Assert.assertTrue; public class FileToBase64StringConversionUnitTest { diff --git a/java-strings-3/src/test/java/com/baeldung/string/todouble/StringToDoubleConversionUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtodouble/StringToDoubleConversionUnitTest.java similarity index 97% rename from java-strings-3/src/test/java/com/baeldung/string/todouble/StringToDoubleConversionUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtodouble/StringToDoubleConversionUnitTest.java index 2c87af53f8..e29b55d52a 100644 --- a/java-strings-3/src/test/java/com/baeldung/string/todouble/StringToDoubleConversionUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtodouble/StringToDoubleConversionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.todouble; +package com.baeldung.stringtodouble; import static org.junit.Assert.assertEquals; diff --git a/java-strings/src/test/java/com/baeldung/enums/PizzaUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoenum/StringToEnumUnitTest.java similarity index 92% rename from java-strings/src/test/java/com/baeldung/enums/PizzaUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoenum/StringToEnumUnitTest.java index 3e52a89bad..f6b3bf2aa6 100644 --- a/java-strings/src/test/java/com/baeldung/enums/PizzaUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoenum/StringToEnumUnitTest.java @@ -1,10 +1,10 @@ -package com.baeldung.enums; +package com.baeldung.stringtoenum; import static junit.framework.TestCase.assertTrue; import org.junit.Test; -public class PizzaUnitTest { +public class StringToEnumUnitTest { @Test public void whenConvertedIntoEnum_thenGetsConvertedCorrectly() { diff --git a/java-strings/src/test/java/com/baeldung/StringToIntOrIntegerUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoint/StringToIntOrIntegerUnitTest.java similarity index 97% rename from java-strings/src/test/java/com/baeldung/StringToIntOrIntegerUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoint/StringToIntOrIntegerUnitTest.java index a7ad0bf114..106f1fc974 100644 --- a/java-strings/src/test/java/com/baeldung/StringToIntOrIntegerUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtoint/StringToIntOrIntegerUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.stringtoint; import static org.assertj.core.api.Assertions.assertThat; diff --git a/java-strings-2/src/test/java/com/baeldung/ConvertStringToListUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtolist/ConvertStringToListUnitTest.java similarity index 96% rename from java-strings-2/src/test/java/com/baeldung/ConvertStringToListUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtolist/ConvertStringToListUnitTest.java index 47357a99cc..b9e0cede31 100644 --- a/java-strings-2/src/test/java/com/baeldung/ConvertStringToListUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtolist/ConvertStringToListUnitTest.java @@ -1,135 +1,134 @@ -package com.baeldung; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import org.apache.commons.lang3.StringUtils; -import org.junit.Test; - -import com.google.common.base.Function; -import com.google.common.base.Splitter; -import com.google.common.collect.Lists; - -public class ConvertStringToListUnitTest { - - private final String countries = "Russia,Germany,England,France,Italy"; - private final String ranks = "1,2,3,4,5, 6,7"; - private final String emptyStrings = ",,,,,"; - private final List expectedCountriesList = Arrays.asList("Russia", "Germany", "England", "France", "Italy"); - private final List expectedRanksList = Arrays.asList(1, 2, 3, 4, 5, 6, 7); - private final List expectedEmptyStringsList = Arrays.asList("", "", "", "", "", ""); - - @Test - public void givenString_thenGetListOfStringByJava() { - List convertedCountriesList = Arrays.asList(countries.split(",", -1)); - - assertEquals(expectedCountriesList, convertedCountriesList); - } - - @Test - public void givenString_thenGetListOfStringByApache() { - List convertedCountriesList = Arrays.asList(StringUtils.splitPreserveAllTokens(countries, ",")); - - assertEquals(expectedCountriesList, convertedCountriesList); - } - - @Test - public void givenString_thenGetListOfStringByGuava() { - List convertedCountriesList = Splitter.on(",") - .trimResults() - .splitToList(countries); - - assertEquals(expectedCountriesList, convertedCountriesList); - } - - @Test - public void givenString_thenGetListOfStringByJava8() { - List convertedCountriesList = Stream.of(countries.split(",", -1)) - .collect(Collectors.toList()); - - assertEquals(expectedCountriesList, convertedCountriesList); - } - - @Test - public void givenString_thenGetListOfIntegerByJava() { - String[] convertedRankArray = ranks.split(","); - List convertedRankList = new ArrayList(); - for (String number : convertedRankArray) { - convertedRankList.add(Integer.parseInt(number.trim())); - } - - assertEquals(expectedRanksList, convertedRankList); - } - - @Test - public void givenString_thenGetListOfIntegerByGuava() { - List convertedRankList = Lists.transform(Splitter.on(",") - .trimResults() - .splitToList(ranks), new Function() { - @Override - public Integer apply(String input) { - return Integer.parseInt(input.trim()); - } - }); - - assertEquals(expectedRanksList, convertedRankList); - } - - @Test - public void givenString_thenGetListOfIntegerByJava8() { - List convertedRankList = Stream.of(ranks.split(",")) - .map(String::trim) - .map(Integer::parseInt) - .collect(Collectors.toList()); - - assertEquals(expectedRanksList, convertedRankList); - } - - @Test - public void givenString_thenGetListOfIntegerByApache() { - String[] convertedRankArray = StringUtils.split(ranks, ","); - List convertedRankList = new ArrayList(); - for (String number : convertedRankArray) { - convertedRankList.add(Integer.parseInt(number.trim())); - } - - assertEquals(expectedRanksList, convertedRankList); - } - - @Test - public void givenEmptyStrings_thenGetListOfStringByJava() { - List convertedEmptyStringsList = Arrays.asList(emptyStrings.split(",", -1)); - - assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); - } - - @Test - public void givenEmptyStrings_thenGetListOfStringByApache() { - List convertedEmptyStringsList = Arrays.asList(StringUtils.splitPreserveAllTokens(emptyStrings, ",")); - - assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); - } - - @Test - public void givenEmptyStrings_thenGetListOfStringByGuava() { - List convertedEmptyStringsList = Splitter.on(",") - .trimResults() - .splitToList(emptyStrings); - - assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); - } - - @Test - public void givenEmptyStrings_thenGetListOfStringByJava8() { - List convertedEmptyStringsList = Stream.of(emptyStrings.split(",", -1)) - .collect(Collectors.toList()); - - assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); - } - -} +package com.baeldung.stringtolist; + +import com.google.common.base.Function; +import com.google.common.base.Splitter; +import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.junit.Assert.assertEquals; + +public class ConvertStringToListUnitTest { + + private final String countries = "Russia,Germany,England,France,Italy"; + private final String ranks = "1,2,3,4,5, 6,7"; + private final String emptyStrings = ",,,,,"; + private final List expectedCountriesList = Arrays.asList("Russia", "Germany", "England", "France", "Italy"); + private final List expectedRanksList = Arrays.asList(1, 2, 3, 4, 5, 6, 7); + private final List expectedEmptyStringsList = Arrays.asList("", "", "", "", "", ""); + + @Test + public void givenString_thenGetListOfStringByJava() { + List convertedCountriesList = Arrays.asList(countries.split(",", -1)); + + assertEquals(expectedCountriesList, convertedCountriesList); + } + + @Test + public void givenString_thenGetListOfStringByApache() { + List convertedCountriesList = Arrays.asList(StringUtils.splitPreserveAllTokens(countries, ",")); + + assertEquals(expectedCountriesList, convertedCountriesList); + } + + @Test + public void givenString_thenGetListOfStringByGuava() { + List convertedCountriesList = Splitter.on(",") + .trimResults() + .splitToList(countries); + + assertEquals(expectedCountriesList, convertedCountriesList); + } + + @Test + public void givenString_thenGetListOfStringByJava8() { + List convertedCountriesList = Stream.of(countries.split(",", -1)) + .collect(Collectors.toList()); + + assertEquals(expectedCountriesList, convertedCountriesList); + } + + @Test + public void givenString_thenGetListOfIntegerByJava() { + String[] convertedRankArray = ranks.split(","); + List convertedRankList = new ArrayList(); + for (String number : convertedRankArray) { + convertedRankList.add(Integer.parseInt(number.trim())); + } + + assertEquals(expectedRanksList, convertedRankList); + } + + @Test + public void givenString_thenGetListOfIntegerByGuava() { + List convertedRankList = Lists.transform(Splitter.on(",") + .trimResults() + .splitToList(ranks), new Function() { + @Override + public Integer apply(String input) { + return Integer.parseInt(input.trim()); + } + }); + + assertEquals(expectedRanksList, convertedRankList); + } + + @Test + public void givenString_thenGetListOfIntegerByJava8() { + List convertedRankList = Stream.of(ranks.split(",")) + .map(String::trim) + .map(Integer::parseInt) + .collect(Collectors.toList()); + + assertEquals(expectedRanksList, convertedRankList); + } + + @Test + public void givenString_thenGetListOfIntegerByApache() { + String[] convertedRankArray = StringUtils.split(ranks, ","); + List convertedRankList = new ArrayList(); + for (String number : convertedRankArray) { + convertedRankList.add(Integer.parseInt(number.trim())); + } + + assertEquals(expectedRanksList, convertedRankList); + } + + @Test + public void givenEmptyStrings_thenGetListOfStringByJava() { + List convertedEmptyStringsList = Arrays.asList(emptyStrings.split(",", -1)); + + assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); + } + + @Test + public void givenEmptyStrings_thenGetListOfStringByApache() { + List convertedEmptyStringsList = Arrays.asList(StringUtils.splitPreserveAllTokens(emptyStrings, ",")); + + assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); + } + + @Test + public void givenEmptyStrings_thenGetListOfStringByGuava() { + List convertedEmptyStringsList = Splitter.on(",") + .trimResults() + .splitToList(emptyStrings); + + assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); + } + + @Test + public void givenEmptyStrings_thenGetListOfStringByJava8() { + List convertedEmptyStringsList = Stream.of(emptyStrings.split(",", -1)) + .collect(Collectors.toList()); + + assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); + } + +} diff --git a/java-strings/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtostream/StringToCharStreamUnitTest.java similarity index 98% rename from java-strings/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtostream/StringToCharStreamUnitTest.java index 1b02e5d291..cd5727dcf8 100644 --- a/java-strings/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/stringtostream/StringToCharStreamUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.stringtostream; import org.junit.Test; diff --git a/java-strings/src/test/java/com/baeldung/string/TitleCaseConverterUnitTest.java b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/titlecase/TitleCaseConverterUnitTest.java similarity index 99% rename from java-strings/src/test/java/com/baeldung/string/TitleCaseConverterUnitTest.java rename to core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/titlecase/TitleCaseConverterUnitTest.java index 2272565cd3..73694d2c1c 100644 --- a/java-strings/src/test/java/com/baeldung/string/TitleCaseConverterUnitTest.java +++ b/core-java-modules/core-java-string-conversions/src/test/java/com/baeldung/titlecase/TitleCaseConverterUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.titlecase; import org.junit.Assert; import org.junit.Test; diff --git a/java-strings-2/src/test/resources/test_image.jpg b/core-java-modules/core-java-string-conversions/src/test/resources/test_image.jpg similarity index 100% rename from java-strings-2/src/test/resources/test_image.jpg rename to core-java-modules/core-java-string-conversions/src/test/resources/test_image.jpg diff --git a/java-strings-2/README.md b/java-strings-2/README.md index 82f33997c5..9865019f74 100644 --- a/java-strings-2/README.md +++ b/java-strings-2/README.md @@ -8,14 +8,12 @@ This module contains articles about strings in Java. - [Check If a String Contains a Substring](https://www.baeldung.com/java-string-contains-substring) - [Removing Stopwords from a String in Java](https://www.baeldung.com/java-string-remove-stopwords) - [Java – Generate Random String](https://www.baeldung.com/java-random-string) -- [Image to Base64 String Conversion](https://www.baeldung.com/java-base64-image-string) - [Java Base64 Encoding and Decoding](https://www.baeldung.com/java-base64-encode-and-decode) - [Generate a Secure Random Password in Java](https://www.baeldung.com/java-generate-secure-password) - [Removing Repeated Characters from a String](https://www.baeldung.com/java-remove-repeated-char) - [Join Array of Primitives with Separator in Java](https://www.baeldung.com/java-join-primitive-array) - [Pad a String with Zeros or Spaces in Java](https://www.baeldung.com/java-pad-string) - [Remove Emojis from a Java String](https://www.baeldung.com/java-string-remove-emojis) -- [Convert a Comma Separated String to a List in Java](https://www.baeldung.com/java-string-with-separator-to-list) - [Guide to java.util.Formatter](https://www.baeldung.com/java-string-formatter) - [Remove Leading and Trailing Characters from a String](https://www.baeldung.com/java-remove-trailing-characters) - [Concatenating Strings In Java](https://www.baeldung.com/java-strings-concatenation) diff --git a/java-strings-3/README.md b/java-strings-3/README.md index f0aaddefcb..6276dfc621 100644 --- a/java-strings-3/README.md +++ b/java-strings-3/README.md @@ -3,6 +3,7 @@ This module contains articles about strings in Java. ### Relevant Articles: - -- [Converting Java String to Double](https://www.baeldung.com/java-string-to-double) +- [Java String equalsIgnoreCase()](https://www.baeldung.com/java-string-equalsignorecase) +- [Finding the Difference Between Two Strings](https://www.baeldung.com/java-difference-between-two-strings) +- [Counting Words in a String](https://www.baeldung.com/java-word-counting) - More articles: [[<-- prev>]](/java-strings-2) diff --git a/java-strings-ops/README.md b/java-strings-ops/README.md index 31c5f48022..3b00cd11ed 100644 --- a/java-strings-ops/README.md +++ b/java-strings-ops/README.md @@ -3,10 +3,7 @@ This module contains articles about operations on strings in Java. ### Relevant Articles: -- [Convert char to String in Java](https://www.baeldung.com/java-convert-char-to-string) -- [Convert String to int or Integer in Java](https://www.baeldung.com/java-convert-string-to-int-or-integer) -- [Java String Conversions](https://www.baeldung.com/java-string-conversions) -- [Check if a String is a Palindrome](https://www.baeldung.com/java-palindrome) +- [Check If a String Is a Palindrome](https://www.baeldung.com/java-palindrome) - [Comparing Strings in Java](https://www.baeldung.com/java-compare-strings) - [Check If a String Is Numeric in Java](https://www.baeldung.com/java-check-string-number) - [Get Substring from String in Java](https://www.baeldung.com/java-substring) @@ -16,7 +13,6 @@ This module contains articles about operations on strings in Java. - [Guide to Java String Pool](https://www.baeldung.com/java-string-pool) - [Split a String in Java](https://www.baeldung.com/java-split-string) - [Common String Operations in Java](https://www.baeldung.com/java-string-operations) -- [Convert String to Byte Array and Reverse in Java](https://www.baeldung.com/java-string-to-byte-array) - [Java toString() Method](https://www.baeldung.com/java-tostring) - [CharSequence vs. String in Java](https://www.baeldung.com/java-char-sequence-string) - [StringBuilder and StringBuffer in Java](https://www.baeldung.com/java-string-builder-string-buffer) diff --git a/java-strings-ops/src/test/java/com/baeldung/java/conversion/README.md b/java-strings-ops/src/test/java/com/baeldung/java/conversion/README.md deleted file mode 100644 index 7c81180249..0000000000 --- a/java-strings-ops/src/test/java/com/baeldung/java/conversion/README.md +++ /dev/null @@ -1,2 +0,0 @@ -Relevant Articles: -- [Java String Conversions](http://www.baeldung.com/java-string-conversions) diff --git a/java-strings/README.md b/java-strings/README.md index 1faa11f606..3146b54fa8 100644 --- a/java-strings/README.md +++ b/java-strings/README.md @@ -4,21 +4,16 @@ This module contains articles about strings in Java. ### Relevant Articles: - [String Operations with Java Streams](https://www.baeldung.com/java-stream-operations-on-strings) -- [Converting String to Stream of chars](https://www.baeldung.com/java-string-to-stream) - [Java 8 StringJoiner](https://www.baeldung.com/java-string-joiner) -- [Converting Strings to Enums in Java](https://www.baeldung.com/java-string-to-enum) - [Quick Guide to the Java StringTokenizer](https://www.baeldung.com/java-stringtokenizer) - [Use char[] Array Over a String for Manipulating Passwords in Java?](https://www.baeldung.com/java-storing-passwords) -- [Convert a String to Title Case](https://www.baeldung.com/java-string-title-case) - [Compact Strings in Java 9](https://www.baeldung.com/java-9-compact-string) - [Java Check a String for Lowercase/Uppercase Letter, Special Character and Digit](https://www.baeldung.com/java-lowercase-uppercase-special-character-digit-regex) -- [Convert java.util.Date to String](https://www.baeldung.com/java-util-date-to-string) -- [Converting a Stack Trace to a String in Java](https://www.baeldung.com/java-stacktrace-to-string) - [Sorting a String Alphabetically in Java](https://www.baeldung.com/java-sort-string-alphabetically) - [String Not Empty Test Assertions in Java](https://www.baeldung.com/java-assert-string-not-empty) - [String Performance Hints](https://www.baeldung.com/java-string-performance) - [Using indexOf to Find All Occurrences of a Word in a String](https://www.baeldung.com/java-indexOf-find-string-occurrences) - [Adding a Newline Character to a String in Java](https://www.baeldung.com/java-string-newline) -- [Remove or Replace part of a String in Java](https://www.baeldung.com/java-remove-replace-string-part) +- [Remove or Replace Part of a String in Java](https://www.baeldung.com/java-remove-replace-string-part) - [Replace a Character at a Specific Index in a String in Java](https://www.baeldung.com/java-replace-character-at-index) - More articles: [[next -->]](/java-strings-2) diff --git a/pom.xml b/pom.xml index 03674dc58f..fe8f4aa55b 100644 --- a/pom.xml +++ b/pom.xml @@ -428,6 +428,8 @@ core-java-modules/core-java-perf core-java-modules/core-java-reflection core-java-modules/core-java-sun + core-java-modules/core-java-string-conversions + core-java-modules/core-java-string-conversions-2 core-java-modules/core-java core-java-modules/core-java-jvm core-scala @@ -1181,6 +1183,8 @@ core-java-modules/core-java-networking core-java-modules/core-java-perf core-java-modules/core-java-sun + core-java-modules/core-java-string-conversions + core-java-modules/core-java-string-conversions-2 core-scala couchbase custom-pmd From 885df8d48d3f42e08ffc21b8d7215f320c424c1d Mon Sep 17 00:00:00 2001 From: Loredana Date: Sat, 12 Oct 2019 22:28:00 +0300 Subject: [PATCH 47/52] add github links to articles --- algorithms-miscellaneous-3/README.md | 4 +++- algorithms-sorting/README.md | 4 ++++ apache-shiro/README.md | 4 +++- apache-spark/README.md | 2 ++ core-groovy-2/README.md | 3 ++- .../core-java-collections-array-list/README.md | 4 +++- core-java-modules/core-java-exceptions/README.md | 2 ++ core-java-modules/core-java-io-2/README.md | 6 ++++++ core-java-modules/core-java-io/README.md | 1 + core-java-modules/core-java-jndi/README.md | 4 ++++ core-java-modules/core-java-jvm/README.md | 2 ++ core-java-modules/core-java-lang-2/README.md | 3 ++- core-java-modules/core-java-lang-oop-2/README.md | 3 ++- core-java-modules/core-java-lang-operators/README.md | 2 ++ core-java-modules/core-java-nio/README.md | 1 + core-java-modules/core-java-security/README.md | 2 ++ 16 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 core-java-modules/core-java-io-2/README.md create mode 100644 core-java-modules/core-java-jndi/README.md diff --git a/algorithms-miscellaneous-3/README.md b/algorithms-miscellaneous-3/README.md index 9748595a34..a1456c6b20 100644 --- a/algorithms-miscellaneous-3/README.md +++ b/algorithms-miscellaneous-3/README.md @@ -14,4 +14,6 @@ This module contains articles about algorithms. Some classes of algorithms, e.g. - [A Guide to the Folding Technique in Java](https://www.baeldung.com/folding-hashing-technique) - [Creating a Triangle with for Loops in Java](https://www.baeldung.com/java-print-triangle) - [Efficient Word Frequency Calculator in Java](https://www.baeldung.com/java-word-frequency) -- More articles: [[<-- prev]](/algorithms-miscellaneous-2) [[next -->]](/algorithms-miscellaneous-4) \ No newline at end of file +- [Interpolation Search in Java](https://www.baeldung.com/java-interpolation-search) +- [The K-Means Clustering Algorithm in Java](https://www.baeldung.com/java-k-means-clustering-algorithm) +- More articles: [[<-- prev]](/algorithms-miscellaneous-2) [[next -->]](/algorithms-miscellaneous-4) diff --git a/algorithms-sorting/README.md b/algorithms-sorting/README.md index f19705f113..4fd9d5e0c6 100644 --- a/algorithms-sorting/README.md +++ b/algorithms-sorting/README.md @@ -12,3 +12,7 @@ This module contains articles about sorting algorithms. - [Shell Sort in Java](https://www.baeldung.com/java-shell-sort) - [Counting Sort in Java](https://www.baeldung.com/java-counting-sort) - [Sorting Strings by Contained Numbers in Java](https://www.baeldung.com/java-sort-strings-contained-numbers) +- [How an In-Place Sorting Algorithm Works](https://www.baeldung.com/java-in-place-sorting) +- [Selection Sort in Java](https://www.baeldung.com/java-selection-sort) +- [Sorting Strings by Contained Numbers in Java](https://www.baeldung.com/java-sort-strings-contained-numbers) +- [Radix Sort in Java](https://www.baeldung.com/java-radix-sort) diff --git a/apache-shiro/README.md b/apache-shiro/README.md index 553eeecc69..ed63c569da 100644 --- a/apache-shiro/README.md +++ b/apache-shiro/README.md @@ -4,4 +4,6 @@ This module contains articles about Apache Shiro ### Relevant articles: -- [Introduction to Apache Shiro](https://www.baeldung.com/apache-shiro) \ No newline at end of file +- [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) + diff --git a/apache-spark/README.md b/apache-spark/README.md index 360a18f095..52313d66bf 100644 --- a/apache-spark/README.md +++ b/apache-spark/README.md @@ -6,3 +6,5 @@ This module contains articles about Apache Spark - [Introduction to Apache Spark](https://www.baeldung.com/apache-spark) - [Building a Data Pipeline with Kafka, Spark Streaming and Cassandra](https://www.baeldung.com/kafka-spark-data-pipeline) +- [Machine Learning with Spark MLlib](https://www.baeldung.com/spark-mlib-machine-learning) + diff --git a/core-groovy-2/README.md b/core-groovy-2/README.md index 6359592da6..f1984f18f4 100644 --- a/core-groovy-2/README.md +++ b/core-groovy-2/README.md @@ -11,4 +11,5 @@ This module contains articles about core Groovy concepts - [Integrating Groovy into Java Applications](https://www.baeldung.com/groovy-java-applications) - [Concatenate Strings with Groovy](https://www.baeldung.com/groovy-concatenate-strings) - [Metaprogramming in Groovy](https://www.baeldung.com/groovy-metaprogramming) -- [[<-- Prev]](/core-groovy) \ No newline at end of file +- [A Quick Guide to Working with Web Services in Groovy](https://www.baeldung.com/groovy-web-services) +- [[<-- Prev]](/core-groovy) diff --git a/core-java-modules/core-java-collections-array-list/README.md b/core-java-modules/core-java-collections-array-list/README.md index 4423a77c78..302ea82130 100644 --- a/core-java-modules/core-java-collections-array-list/README.md +++ b/core-java-modules/core-java-collections-array-list/README.md @@ -7,4 +7,6 @@ This module contains articles about the Java ArrayList collection - [Guide to the Java ArrayList](http://www.baeldung.com/java-arraylist) - [Add Multiple Items to an Java ArrayList](http://www.baeldung.com/java-add-items-array-list) - [ClassCastException: Arrays$ArrayList cannot be cast to ArrayList](https://www.baeldung.com/java-classcastexception-arrays-arraylist) -- [Multi Dimensional ArrayList in Java](https://www.baeldung.com/java-multi-dimensional-arraylist) \ No newline at end of file +- [Multi Dimensional ArrayList in Java](https://www.baeldung.com/java-multi-dimensional-arraylist) +- [Removing an Element From an ArrayList](https://www.baeldung.com/java-arraylist-remove-element) + diff --git a/core-java-modules/core-java-exceptions/README.md b/core-java-modules/core-java-exceptions/README.md index 0120b970c3..ba327b06f2 100644 --- a/core-java-modules/core-java-exceptions/README.md +++ b/core-java-modules/core-java-exceptions/README.md @@ -11,3 +11,5 @@ This module contains articles about core java exceptions - [Difference Between Throw and Throws in Java](https://www.baeldung.com/java-throw-throws) - [“Sneaky Throws” in Java](https://www.baeldung.com/java-sneaky-throws) - [The StackOverflowError in Java](https://www.baeldung.com/java-stack-overflow-error) +- [Checked and Unchecked Exceptions in Java](https://www.baeldung.com/java-checked-unchecked-exceptions) + diff --git a/core-java-modules/core-java-io-2/README.md b/core-java-modules/core-java-io-2/README.md new file mode 100644 index 0000000000..2299320f32 --- /dev/null +++ b/core-java-modules/core-java-io-2/README.md @@ -0,0 +1,6 @@ + +### Relevant Articles: + +- [Create a File in a Specific Directory in Java](https://www.baeldung.com/java-create-file-in-directory) +- [A Guide to the Java FileReader Class](https://www.baeldung.com/java-filereader) + diff --git a/core-java-modules/core-java-io/README.md b/core-java-modules/core-java-io/README.md index 023d7d64b5..34b2f371e1 100644 --- a/core-java-modules/core-java-io/README.md +++ b/core-java-modules/core-java-io/README.md @@ -41,4 +41,5 @@ This module contains articles about core Java input and output (IO) - [List Files in a Directory in Java](https://www.baeldung.com/java-list-directory-files) - [Java InputStream to Byte Array and ByteBuffer](https://www.baeldung.com/convert-input-stream-to-array-of-bytes) - [Introduction to the Java NIO Selector](https://www.baeldung.com/java-nio-selector) +- [How to Avoid the Java FileNotFoundException When Loading Resources](https://www.baeldung.com/java-classpath-resource-cannot-be-opened) - [[More -->]](/core-java-modules/core-java-io-2) diff --git a/core-java-modules/core-java-jndi/README.md b/core-java-modules/core-java-jndi/README.md new file mode 100644 index 0000000000..d9fb324c9a --- /dev/null +++ b/core-java-modules/core-java-jndi/README.md @@ -0,0 +1,4 @@ + +### Relevant Articles: + +- [Java Naming and Directory Interface Overview](https://www.baeldung.com/jndi) diff --git a/core-java-modules/core-java-jvm/README.md b/core-java-modules/core-java-jvm/README.md index 82067ad952..a1a57c83c5 100644 --- a/core-java-modules/core-java-jvm/README.md +++ b/core-java-modules/core-java-jvm/README.md @@ -4,3 +4,5 @@ ### Relevant Articles: - [Method Inlining in the JVM](https://www.baeldung.com/jvm-method-inlining) +- [A Guide to System.exit()](https://www.baeldung.com/java-system-exit) +- [Guide to System.gc()](https://www.baeldung.com/java-system-gc) diff --git a/core-java-modules/core-java-lang-2/README.md b/core-java-modules/core-java-lang-2/README.md index 9904e59035..ee57ec6198 100644 --- a/core-java-modules/core-java-lang-2/README.md +++ b/core-java-modules/core-java-lang-2/README.md @@ -4,4 +4,5 @@ This module contains articles about core features in the Java language ### Relevant Articles: - [Java Primitives versus Objects](https://www.baeldung.com/java-primitives-vs-objects) -- [[<-- Prev]](/core-java-modules/core-java-lang) \ No newline at end of file +- [Command-Line Arguments in Java](https://www.baeldung.com/java-command-line-arguments) +- [[<-- Prev]](/core-java-modules/core-java-lang) diff --git a/core-java-modules/core-java-lang-oop-2/README.md b/core-java-modules/core-java-lang-oop-2/README.md index e2c30bbb40..f387e8d4a2 100644 --- a/core-java-modules/core-java-lang-oop-2/README.md +++ b/core-java-modules/core-java-lang-oop-2/README.md @@ -14,4 +14,5 @@ This module contains articles about Object-oriented programming (OOP) in Java - [A Guide to Constructors in Java](https://www.baeldung.com/java-constructors) - [Composition, Aggregation, and Association in Java](https://www.baeldung.com/java-composition-aggregation-association) - [Static and Default Methods in Interfaces in Java](https://www.baeldung.com/java-static-default-methods) -- [[<-- Prev]](/core-java-modules/core-java-lang-oop)[[More -->]](/core-java-modules/core-java-lang-oop-3) \ No newline at end of file +- [Java Copy Constructor](https://www.baeldung.com/java-copy-constructor) +- [[<-- Prev]](/core-java-modules/core-java-lang-oop)[[More -->]](/core-java-modules/core-java-lang-oop-3) diff --git a/core-java-modules/core-java-lang-operators/README.md b/core-java-modules/core-java-lang-operators/README.md index f9fa49ee0d..c4f5049d61 100644 --- a/core-java-modules/core-java-lang-operators/README.md +++ b/core-java-modules/core-java-lang-operators/README.md @@ -5,3 +5,5 @@ - [Java instanceof Operator](https://www.baeldung.com/java-instanceof) - [A Guide to Increment and Decrement Unary Operators in Java](https://www.baeldung.com/java-unary-operators) - [Java Compound Operators](https://www.baeldung.com/java-compound-operators) +- [The XOR Operator in Java](https://www.baeldung.com/java-xor-operator) + diff --git a/core-java-modules/core-java-nio/README.md b/core-java-modules/core-java-nio/README.md index efa58671b5..727bd2546c 100644 --- a/core-java-modules/core-java-nio/README.md +++ b/core-java-modules/core-java-nio/README.md @@ -5,3 +5,4 @@ This module contains articles about core Java non-blocking input and output (IO) ## Relevant Articles: - [Determine File Creation Date in Java](https://www.baeldung.com/java-file-creation-date) +- [Find the Number of Lines in a File Using Jav](https://www.baeldung.com/java-file-number-of-lines) diff --git a/core-java-modules/core-java-security/README.md b/core-java-modules/core-java-security/README.md index 48fd071396..7386d04e8e 100644 --- a/core-java-modules/core-java-security/README.md +++ b/core-java-modules/core-java-security/README.md @@ -14,3 +14,5 @@ This module contains articles about core Java Security - [Enabling TLS v1.2 in Java 7](https://www.baeldung.com/java-7-tls-v12) - [The Java SecureRandom Class](https://www.baeldung.com/java-secure-random) - [An Introduction to Java SASL](https://www.baeldung.com/java-sasl) +- [A Guide to Java GSS API](https://www.baeldung.com/java-gss) + From 2f9e9d90c766770eef5898729d757332b9e09da5 Mon Sep 17 00:00:00 2001 From: Martin van Wingerden Date: Sat, 12 Oct 2019 22:57:11 +0200 Subject: [PATCH 48/52] BAEL-2350 - DataJpaTest Configuration not found (#7996) * BAEL-2350 - DataJpaTest Configuration not found Add a simple example to show how the correct (package) structure is for using @DataJpaTest * Removed link as requested --- pom.xml | 2 + spring-boot-configuration/README.md | 5 ++ .../data-jpa-application/pom.xml | 12 ++++ .../baeldung/data/jpa/ApplicationFound.java | 7 +++ .../jpa/application/ApplicationNotFound.java | 7 +++ .../baeldung/data/jpa/DataJpaUnitTest.java | 23 +++++++ .../data-jpa-library/pom.xml | 12 ++++ .../data/jpa/libarary/model/Example.java | 13 ++++ .../baeldung/data/jpa/TestApplication.java | 7 +++ .../data/jpa/libarary/DataJpaUnitTest.java | 24 ++++++++ spring-boot-configuration/pom.xml | 61 +++++++++++++++++++ spring-boot-exceptions/README.md | 4 -- 12 files changed, 173 insertions(+), 4 deletions(-) create mode 100644 spring-boot-configuration/README.md create mode 100644 spring-boot-configuration/data-jpa-application/pom.xml create mode 100644 spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java create mode 100644 spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java create mode 100644 spring-boot-configuration/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java create mode 100644 spring-boot-configuration/data-jpa-library/pom.xml create mode 100644 spring-boot-configuration/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java create mode 100644 spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java create mode 100644 spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java create mode 100644 spring-boot-configuration/pom.xml delete mode 100644 spring-boot-exceptions/README.md diff --git a/pom.xml b/pom.xml index 02f4e720c0..196870800c 100644 --- a/pom.xml +++ b/pom.xml @@ -594,6 +594,7 @@ tensorflow-java spf4j + spring-boot-configuration spring-boot-flowable spring-boot-mvc-2 spring-boot-performance @@ -681,6 +682,7 @@ spring-boot-bootstrap spring-boot-camel + spring-boot-configuration spring-boot-client spring-boot-crud diff --git a/spring-boot-configuration/README.md b/spring-boot-configuration/README.md new file mode 100644 index 0000000000..c449538a9d --- /dev/null +++ b/spring-boot-configuration/README.md @@ -0,0 +1,5 @@ +# Spring Boot Configuration + +This module contains articles about Spring Boot Configuration. + +### Relevant Articles: diff --git a/spring-boot-configuration/data-jpa-application/pom.xml b/spring-boot-configuration/data-jpa-application/pom.xml new file mode 100644 index 0000000000..b1bf6fda43 --- /dev/null +++ b/spring-boot-configuration/data-jpa-application/pom.xml @@ -0,0 +1,12 @@ + + 4.0.0 + data-jpa-application + 0.0.1-SNAPSHOT + + + com.baeldung.spring-boot-configuration + spring-boot-configuration + 0.0.1-SNAPSHOT + + \ No newline at end of file diff --git a/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java b/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java new file mode 100644 index 0000000000..50efb42a19 --- /dev/null +++ b/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/ApplicationFound.java @@ -0,0 +1,7 @@ +package com.baeldung.data.jpa; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ApplicationFound { +} diff --git a/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java b/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java new file mode 100644 index 0000000000..8e7362f626 --- /dev/null +++ b/spring-boot-configuration/data-jpa-application/src/main/java/com/baeldung/data/jpa/application/ApplicationNotFound.java @@ -0,0 +1,7 @@ +package com.baeldung.data.jpa.application; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ApplicationNotFound { +} diff --git a/spring-boot-configuration/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java b/spring-boot-configuration/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java new file mode 100644 index 0000000000..ac7ff8561b --- /dev/null +++ b/spring-boot-configuration/data-jpa-application/src/test/java/com/baeldung/data/jpa/DataJpaUnitTest.java @@ -0,0 +1,23 @@ +package com.baeldung.data.jpa; + +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@DataJpaTest +public class DataJpaUnitTest { + + @Autowired + private TestEntityManager entityManager; + + @Test + public void givenACorrectSetup_thenAnEntityManagerWillBeAvailable() { + assertNotNull(entityManager); + } +} diff --git a/spring-boot-configuration/data-jpa-library/pom.xml b/spring-boot-configuration/data-jpa-library/pom.xml new file mode 100644 index 0000000000..1534e7ed23 --- /dev/null +++ b/spring-boot-configuration/data-jpa-library/pom.xml @@ -0,0 +1,12 @@ + + 4.0.0 + data-jpa-library + 0.0.1-SNAPSHOT + + + com.baeldung.spring-boot-configuration + spring-boot-configuration + 0.0.1-SNAPSHOT + + \ No newline at end of file diff --git a/spring-boot-configuration/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java b/spring-boot-configuration/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java new file mode 100644 index 0000000000..d5c41d303e --- /dev/null +++ b/spring-boot-configuration/data-jpa-library/src/main/java/com/baeldung/data/jpa/libarary/model/Example.java @@ -0,0 +1,13 @@ +package com.baeldung.data.jpa.libarary.model; + +public class Example { + private String example; + + public String getExample() { + return example; + } + + public void setExample(String example) { + this.example = example; + } +} diff --git a/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java b/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java new file mode 100644 index 0000000000..83f60b388b --- /dev/null +++ b/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/TestApplication.java @@ -0,0 +1,7 @@ +package com.baeldung.data.jpa; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class TestApplication { +} diff --git a/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java b/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java new file mode 100644 index 0000000000..31f12a6093 --- /dev/null +++ b/spring-boot-configuration/data-jpa-library/src/test/java/com/baeldung/data/jpa/libarary/DataJpaUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.data.jpa.libarary; + +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@DataJpaTest +public class DataJpaUnitTest { + + @Autowired + private TestEntityManager entityManager; + + @Test + public void givenACorrectSetup_thenAnEntityManagerWillBeAvailable() { + assertNotNull(entityManager); + } + +} diff --git a/spring-boot-configuration/pom.xml b/spring-boot-configuration/pom.xml new file mode 100644 index 0000000000..e4473c3f2d --- /dev/null +++ b/spring-boot-configuration/pom.xml @@ -0,0 +1,61 @@ + + 4.0.0 + com.baeldung.spring-boot-configuration + spring-boot-configuration + 0.0.1-SNAPSHOT + pom + + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../parent-boot-2/pom.xml + + + + data-jpa-library + data-jpa-application + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + org.springframework.boot + spring-boot-starter-data-jpa + ${spring-boot.version} + + + + org.springframework.boot + spring-boot-starter-test + ${spring-boot.version} + test + + + + com.h2database + h2 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/spring-boot-exceptions/README.md b/spring-boot-exceptions/README.md deleted file mode 100644 index bbc272aec4..0000000000 --- a/spring-boot-exceptions/README.md +++ /dev/null @@ -1,4 +0,0 @@ - -### Relevant Articles: - -- [Rendering Exceptions in JSON with Spring](https://www.baeldung.com/spring-exceptions-json) From 3e119f26d23def16e34b2299d11382d1c4864cc3 Mon Sep 17 00:00:00 2001 From: Jonathan Cook Date: Sun, 13 Oct 2019 23:40:45 +0200 Subject: [PATCH 49/52] Update README.md --- spring-5-reactive-client/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-5-reactive-client/README.md b/spring-5-reactive-client/README.md index 90d12cad1c..1724db9e66 100644 --- a/spring-5-reactive-client/README.md +++ b/spring-5-reactive-client/README.md @@ -6,4 +6,5 @@ This module contains articles about reactive Spring 5 WebClient The "REST With Spring" Classes: http://bit.ly/restwithspring ### Relevant Articles +- [Simultaneous Spring WebClient Calls](https://www.baeldung.com/spring-webclient-simultaneous-calls) From fe0f0a1511bde1af224daeb52d5969163074f19c Mon Sep 17 00:00:00 2001 From: catalin-burcea Date: Mon, 14 Oct 2019 17:20:59 +0300 Subject: [PATCH 50/52] minor readme update --- core-java-modules/core-java-string-conversions/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core-java-modules/core-java-string-conversions/README.md b/core-java-modules/core-java-string-conversions/README.md index 251851e8ac..849660e482 100644 --- a/core-java-modules/core-java-string-conversions/README.md +++ b/core-java-modules/core-java-string-conversions/README.md @@ -13,5 +13,4 @@ This module contains articles about string conversions from/to another type. - [Converting Java String to Double](https://www.baeldung.com/java-string-to-double) - [Convert Char to String in Java](https://www.baeldung.com/java-convert-char-to-string) - [Convert String to int or Integer in Java](https://www.baeldung.com/java-convert-string-to-int-or-integer) -- More articles: [[next -->]](/core-java-string-conversions-2) -"Counting Words in a String \ No newline at end of file +- More articles: [[next -->]](/core-java-string-conversions-2) \ No newline at end of file From 0286635f399c720ddb840dcda4222a0a720c08a8 Mon Sep 17 00:00:00 2001 From: Amy DeGregorio Date: Mon, 14 Oct 2019 12:06:25 -0400 Subject: [PATCH 51/52] BAEL-3013 (#8020) --- .../thymeleaf/pathvariables/Detail.java | 28 +++++++++ .../thymeleaf/pathvariables/Item.java | 39 ++++++++++++ .../PathVariablesController.java | 62 +++++++++++++++++++ .../templates/pathvariables/index.html | 22 +++++++ .../templates/pathvariables/view.html | 19 ++++++ 5 files changed, 170 insertions(+) create mode 100644 spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Detail.java create mode 100644 spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Item.java create mode 100644 spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/PathVariablesController.java create mode 100644 spring-thymeleaf-2/src/main/resources/templates/pathvariables/index.html create mode 100644 spring-thymeleaf-2/src/main/resources/templates/pathvariables/view.html diff --git a/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Detail.java b/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Detail.java new file mode 100644 index 0000000000..e9a95f133c --- /dev/null +++ b/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Detail.java @@ -0,0 +1,28 @@ +package com.baeldung.thymeleaf.pathvariables; + +public class Detail { + private int id; + private String description; + + public Detail(int id, String description) { + super(); + this.id = id; + this.description = description; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Item.java b/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Item.java new file mode 100644 index 0000000000..173c107846 --- /dev/null +++ b/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/Item.java @@ -0,0 +1,39 @@ +package com.baeldung.thymeleaf.pathvariables; + +import java.util.List; + +public class Item { + private int id; + private String name; + private List details; + + public Item(int id, String name) { + super(); + this.id = id; + this.name = name; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } +} diff --git a/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/PathVariablesController.java b/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/PathVariablesController.java new file mode 100644 index 0000000000..fde8bf1533 --- /dev/null +++ b/spring-thymeleaf-2/src/main/java/com/baeldung/thymeleaf/pathvariables/PathVariablesController.java @@ -0,0 +1,62 @@ +package com.baeldung.thymeleaf.pathvariables; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@Controller +public class PathVariablesController { + private List items = new ArrayList(); + + public PathVariablesController() { + Item item1 = new Item(1, "First Item"); + List item1Details = new ArrayList<>(); + item1Details.add(new Detail(1, "Green")); + item1Details.add(new Detail(2, "Large")); + item1.setDetails(item1Details); + items.add(item1); + + Item item2 = new Item(2, "Second Item"); + List item2Details = new ArrayList<>(); + item2Details.add(new Detail(1, "Red")); + item2Details.add(new Detail(2, "Medium")); + item2.setDetails(item2Details); + items.add(item2); + } + + @GetMapping("/pathvars") + public String start(Model model) { + model.addAttribute("items", items); + return "pathvariables/index"; + } + + @GetMapping("/pathvars/single/{id}") + public String singlePathVariable(@PathVariable("id") int id, Model model) { + if (id == 1) { + model.addAttribute("item", new Item(1, "First Item")); + } else { + model.addAttribute("item", new Item(2, "Second Item")); + } + + return "pathvariables/view"; + } + + @GetMapping("/pathvars/item/{itemId}/detail/{detailId}") + public String multiplePathVariable(@PathVariable("itemId") int itemId, @PathVariable("detailId") int detailId, Model model) { + for (Item item : items) { + if (item.getId() == itemId) { + model.addAttribute("item", item); + for (Detail detail : item.getDetails()) { + if (detail.getId() == detailId) { + model.addAttribute("detail", detail); + } + } + } + } + return "pathvariables/view"; + } +} diff --git a/spring-thymeleaf-2/src/main/resources/templates/pathvariables/index.html b/spring-thymeleaf-2/src/main/resources/templates/pathvariables/index.html new file mode 100644 index 0000000000..a3e34dcba1 --- /dev/null +++ b/spring-thymeleaf-2/src/main/resources/templates/pathvariables/index.html @@ -0,0 +1,22 @@ + + + + +PathVariables in Thymeleaf + + +

Items

+
+ + + + +
+ + \ No newline at end of file diff --git a/spring-thymeleaf-2/src/main/resources/templates/pathvariables/view.html b/spring-thymeleaf-2/src/main/resources/templates/pathvariables/view.html new file mode 100644 index 0000000000..f635c1113c --- /dev/null +++ b/spring-thymeleaf-2/src/main/resources/templates/pathvariables/view.html @@ -0,0 +1,19 @@ + + + + +Pathvariables in Thymeleaf + + +

View Item

+
+ + +
+

Detail

+
+ + +
+ + \ No newline at end of file From c779578ceea8234d82bb5f786095246bd290dc30 Mon Sep 17 00:00:00 2001 From: Jonathan Cook Date: Mon, 14 Oct 2019 20:07:49 +0200 Subject: [PATCH 52/52] Update README.md --- javaxval/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javaxval/README.md b/javaxval/README.md index 64903d7463..c2c392b276 100644 --- a/javaxval/README.md +++ b/javaxval/README.md @@ -9,4 +9,4 @@ This module contains articles about Bean Validation. - [Difference Between @NotNull, @NotEmpty, and @NotBlank Constraints in Bean Validation](https://www.baeldung.com/java-bean-validation-not-null-empty-blank) - [Javax BigDecimal Validation](https://www.baeldung.com/javax-bigdecimal-validation) - [Grouping Javax Validation Constraints](https://www.baeldung.com/javax-validation-groups) -- [Javax Validations for Enums](https://www.baeldung.com/javax-validations-for-enums/) +- [Javax Validations for Enums](https://www.baeldung.com/javax-validations-enums)