From 53f4ec5f8792785bd6b25ce7e7bfbb9da2380d53 Mon Sep 17 00:00:00 2001 From: Seun Matt Date: Tue, 13 Jun 2017 11:58:53 +0100 Subject: [PATCH 1/4] added updated example codes (#2062) --- .../baeldung/string/StringToCharStream.java | 47 ++++++++++++------- .../string/StringToCharStreamUnitTest.java | 14 +++++- 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/core-java/src/main/java/com/baeldung/string/StringToCharStream.java b/core-java/src/main/java/com/baeldung/string/StringToCharStream.java index 4dc0455192..cbe4deb9a0 100644 --- a/core-java/src/main/java/com/baeldung/string/StringToCharStream.java +++ b/core-java/src/main/java/com/baeldung/string/StringToCharStream.java @@ -12,29 +12,40 @@ public class StringToCharStream { public StringToCharStream() { - //let's use the Stream API to manipulate a string - //this will count the occurrence of each character in the test string + //let's use the Stream API to manipulate a string + //this will count the occurrence of each character in the test string - System.out.println("Counting Occurrence of Letter"); - String testString = "Noww"; + String testString = "tests"; - //we don't want to use foreach, so . . . + //first get an IntStream + IntStream intStream = testString.chars(); + IntStream intStream1 = testString.codePoints(); - Map map = new HashMap<>(); + //now let's map them + Stream characterStream = intStream.mapToObj(c -> (char) c); + Stream characterStream1 = intStream1.mapToObj(c -> (char) c); - testString.codePoints() - .mapToObj(c -> (char) c) - .filter(c -> Character.isLetter(c)) - .forEach(c -> { - if(map.containsKey(c)) { - map.put(c, map.get(c) + 1); - } else { - map.put(c, 1); - } - }); + System.out.println("Counting Occurrence of Letter"); + testString = "Noww"; + + //we don't want to use foreach, so . . . + + Map map = new HashMap<>(); + + testString.codePoints() + .mapToObj(c -> (char) c) + .filter(c -> Character.isLetter(c)) + .forEach(c -> { + if(map.containsKey(c)) { + map.put(c, map.get(c) + 1); + } else { + map.put(c, 1); + } + }); + + //printing out the result here + System.out.println(map.toString()); - //printing out the result here - System.out.println(map.toString()); } diff --git a/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java b/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java index 0c265d0b1f..9332ae814c 100644 --- a/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java +++ b/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java @@ -5,7 +5,9 @@ import org.junit.Test; import java.util.stream.IntStream; import java.util.stream.Stream; +import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; /** @@ -17,12 +19,13 @@ public class StringToCharStreamUnitTest { @Test public void givenTestString_whenChars_thenReturnIntStream() { - assertTrue(testString.chars() instanceof IntStream); + + assertThat(testString.chars(), instanceOf(IntStream.class)); } @Test public void givenTestString_whenCodePoints_thenReturnIntStream() { - assertTrue(testString.codePoints() instanceof IntStream); + assertThat(testString.codePoints(), instanceOf(IntStream.class)); } @Test @@ -33,4 +36,11 @@ public class StringToCharStreamUnitTest { assertNotNull("IntStream returned by codePoints() did not map to Stream", characterStream1); } + @Test + public void givenIntStream_whenMapToObj_thenReturnStringStream(){ + Stream stringStream + = testString.codePoints().mapToObj(c -> String.valueOf((char) c)); + assertNotNull(stringStream); + } + } From fe11e8f7d43e3e32a6f2e64fc5d4158588968c30 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Tue, 13 Jun 2017 16:54:45 +0200 Subject: [PATCH 2/4] Idiomatic refactor (#2063) * StringToCharStream * Spring integration tests * Spring integration tests --- .../baeldung/string/StringToCharStream.java | 37 ++++--------------- .../string/StringToCharStreamUnitTest.java | 9 ++--- spring-vertx/pom.xml | 22 ++++++++--- ...VertxSpringApplicationIntegrationTest.java | 3 +- 4 files changed, 29 insertions(+), 42 deletions(-) diff --git a/core-java/src/main/java/com/baeldung/string/StringToCharStream.java b/core-java/src/main/java/com/baeldung/string/StringToCharStream.java index cbe4deb9a0..883807da5d 100644 --- a/core-java/src/main/java/com/baeldung/string/StringToCharStream.java +++ b/core-java/src/main/java/com/baeldung/string/StringToCharStream.java @@ -1,57 +1,34 @@ package com.baeldung.string; -import java.util.HashMap; import java.util.Map; +import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; -/** - * Created by smatt on 26/05/2017. - */ public class StringToCharStream { - public StringToCharStream() { - - //let's use the Stream API to manipulate a string - //this will count the occurrence of each character in the test string - + private StringToCharStream() { String testString = "tests"; - //first get an IntStream IntStream intStream = testString.chars(); IntStream intStream1 = testString.codePoints(); - //now let's map them Stream characterStream = intStream.mapToObj(c -> (char) c); Stream characterStream1 = intStream1.mapToObj(c -> (char) c); System.out.println("Counting Occurrence of Letter"); - testString = "Noww"; - //we don't want to use foreach, so . . . - - Map map = new HashMap<>(); - - testString.codePoints() - .mapToObj(c -> (char) c) - .filter(c -> Character.isLetter(c)) - .forEach(c -> { - if(map.containsKey(c)) { - map.put(c, map.get(c) + 1); - } else { - map.put(c, 1); - } - }); + Map map = "Noww".codePoints() + .mapToObj(c -> (char) c) + .filter(Character::isLetter) + .collect(Collectors.toMap(c -> c, c -> 1, Integer::sum)); //printing out the result here System.out.println(map.toString()); } - - public static void main(String [] args) { + public static void main(String[] args) { new StringToCharStream(); } - - } diff --git a/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java b/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java index 9332ae814c..52e38ff898 100644 --- a/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java +++ b/core-java/src/test/java/com/baeldung/string/StringToCharStreamUnitTest.java @@ -10,12 +10,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -/** - * Created by smatt on 09/06/2017. - */ public class StringToCharStreamUnitTest { - String testString = "Tests"; + private String testString = "Tests"; @Test public void givenTestString_whenChars_thenReturnIntStream() { @@ -37,9 +34,9 @@ public class StringToCharStreamUnitTest { } @Test - public void givenIntStream_whenMapToObj_thenReturnStringStream(){ + public void givenIntStream_whenMapToObj_thenReturnStringStream() { Stream stringStream - = testString.codePoints().mapToObj(c -> String.valueOf((char) c)); + = testString.codePoints().mapToObj(c -> String.valueOf((char) c)); assertNotNull(stringStream); } diff --git a/spring-vertx/pom.xml b/spring-vertx/pom.xml index 4ff744247b..9fbfda5d62 100644 --- a/spring-vertx/pom.xml +++ b/spring-vertx/pom.xml @@ -41,11 +41,6 @@ - - io.vertx - vertx-core - ${vertx.version} - io.vertx vertx-web @@ -70,6 +65,23 @@ org.springframework.boot spring-boot-maven-plugin + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + 3 + true + + **/*IntegrationTest.java + **/*LongRunningUnitTest.java + **/*ManualTest.java + **/JdbcTest.java + **/*LiveTest.java + + true + + diff --git a/spring-vertx/src/test/java/com/baeldung/vertxspring/VertxSpringApplicationIntegrationTest.java b/spring-vertx/src/test/java/com/baeldung/vertxspring/VertxSpringApplicationIntegrationTest.java index 1d4c8e16f0..bfb902e5d4 100644 --- a/spring-vertx/src/test/java/com/baeldung/vertxspring/VertxSpringApplicationIntegrationTest.java +++ b/spring-vertx/src/test/java/com/baeldung/vertxspring/VertxSpringApplicationIntegrationTest.java @@ -16,8 +16,9 @@ public class VertxSpringApplicationIntegrationTest { private TestRestTemplate restTemplate = new TestRestTemplate(); @Test - public void givenUrl_whenReceivedArticles_thenSuccess() { + public void givenUrl_whenReceivedArticles_thenSuccess() throws InterruptedException { ResponseEntity responseEntity = restTemplate.getForEntity("http://localhost:8080/api/baeldung/articles", String.class); + assertEquals(200, responseEntity.getStatusCodeValue()); } From 74aa2c9ec90382733a350fda589ff591e03b1357 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Tue, 13 Jun 2017 16:55:17 +0200 Subject: [PATCH 3/4] WebsocketConfigRefactor (#2055) * Vertx-integration test * Vertx-integration test * Refactor WebSocketConfig --- .../java/com/baeldung/spring/web/config/WebSocketConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebSocketConfig.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebSocketConfig.java index 5f3eb1312d..93ec13da58 100644 --- a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebSocketConfig.java +++ b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebSocketConfig.java @@ -18,6 +18,7 @@ public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(final StompEndpointRegistry registry) { + registry.addEndpoint("/chat"); registry.addEndpoint("/chat").withSockJS(); } From 69b4a05eb8ce4f948a23ebeb857f1e2e6d9afc91 Mon Sep 17 00:00:00 2001 From: ramansahasi Date: Tue, 13 Jun 2017 20:43:16 +0530 Subject: [PATCH 4/4] BAEL-859 (updated) How to display/list all Spring-managed beans? (#2064) * Separating displayAllBeans logic from main method * Removing as 'Person' bean is no longer used * Removing as 'Person' bean is no longer used * Removing as 'Person' bean is no longer used * Added FooService and FooController * Changed test cases as per new configuration * Template to handle front-end view * Fixed spacing issue * Fixed spaces * Fixed spacing issue --- .../baeldung/displayallbeans/Application.java | 4 ++++ .../displayallbeans/SpringConfig.java | 19 ---------------- .../controller/FooController.java | 22 +++++++++++++++++++ .../controller/PersonController.java | 19 ---------------- .../displayallbeans/model/Person.java | 13 ----------- .../displayallbeans/service/FooService.java | 18 +++++++++++++++ .../resources/templates/displayallbeans.html | 10 +++++++++ .../DisplayBeanIntegrationTest.java | 13 +++++------ 8 files changed, 60 insertions(+), 58 deletions(-) delete mode 100644 spring-boot/src/main/java/com/baeldung/displayallbeans/SpringConfig.java create mode 100644 spring-boot/src/main/java/com/baeldung/displayallbeans/controller/FooController.java delete mode 100644 spring-boot/src/main/java/com/baeldung/displayallbeans/controller/PersonController.java delete mode 100644 spring-boot/src/main/java/com/baeldung/displayallbeans/model/Person.java create mode 100644 spring-boot/src/main/java/com/baeldung/displayallbeans/service/FooService.java create mode 100644 spring-boot/src/main/resources/templates/displayallbeans.html diff --git a/spring-boot/src/main/java/com/baeldung/displayallbeans/Application.java b/spring-boot/src/main/java/com/baeldung/displayallbeans/Application.java index fcce2725e5..cd015e6554 100644 --- a/spring-boot/src/main/java/com/baeldung/displayallbeans/Application.java +++ b/spring-boot/src/main/java/com/baeldung/displayallbeans/Application.java @@ -11,6 +11,10 @@ public class Application { public static void main(String[] args) { applicationContext = SpringApplication.run(Application.class, args); + displayAllBeans(); + } + + public static void displayAllBeans() { String[] allBeanNames = applicationContext.getBeanDefinitionNames(); for(String beanName : allBeanNames) { System.out.println(beanName); diff --git a/spring-boot/src/main/java/com/baeldung/displayallbeans/SpringConfig.java b/spring-boot/src/main/java/com/baeldung/displayallbeans/SpringConfig.java deleted file mode 100644 index 1d4a97f843..0000000000 --- a/spring-boot/src/main/java/com/baeldung/displayallbeans/SpringConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.displayallbeans; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; - -import com.baeldung.displayallbeans.model.Person; - -@Configuration -@ComponentScan(basePackages = "com.baeldung.displayallbeans") -public class SpringConfig { - @Bean - public Person person() { - Person person = new Person(); - person.setName("Jon Doe"); - return person; - } -} \ No newline at end of file diff --git a/spring-boot/src/main/java/com/baeldung/displayallbeans/controller/FooController.java b/spring-boot/src/main/java/com/baeldung/displayallbeans/controller/FooController.java new file mode 100644 index 0000000000..9f483b18d1 --- /dev/null +++ b/spring-boot/src/main/java/com/baeldung/displayallbeans/controller/FooController.java @@ -0,0 +1,22 @@ +package com.baeldung.displayallbeans.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.baeldung.displayallbeans.service.FooService; + +@Controller +public class FooController { + @Autowired + private FooService fooService; + + @RequestMapping(value="/displayallbeans") + public String getHeaderAndBody (Map model){ + model.put("header", fooService.getHeader()); + model.put("message", fooService.getBody()); + return "displayallbeans"; + } +} diff --git a/spring-boot/src/main/java/com/baeldung/displayallbeans/controller/PersonController.java b/spring-boot/src/main/java/com/baeldung/displayallbeans/controller/PersonController.java deleted file mode 100644 index 93fc278b1c..0000000000 --- a/spring-boot/src/main/java/com/baeldung/displayallbeans/controller/PersonController.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.displayallbeans.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import com.baeldung.displayallbeans.model.Person; - -@Controller -public class PersonController { - @Autowired - Person person; - - @RequestMapping("/getPerson") - public @ResponseBody Person getPerson() { - return person; - } -} \ No newline at end of file diff --git a/spring-boot/src/main/java/com/baeldung/displayallbeans/model/Person.java b/spring-boot/src/main/java/com/baeldung/displayallbeans/model/Person.java deleted file mode 100644 index dde471aedb..0000000000 --- a/spring-boot/src/main/java/com/baeldung/displayallbeans/model/Person.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.baeldung.displayallbeans.model; - -public class Person { - String name; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} \ No newline at end of file diff --git a/spring-boot/src/main/java/com/baeldung/displayallbeans/service/FooService.java b/spring-boot/src/main/java/com/baeldung/displayallbeans/service/FooService.java new file mode 100644 index 0000000000..e29f18c94a --- /dev/null +++ b/spring-boot/src/main/java/com/baeldung/displayallbeans/service/FooService.java @@ -0,0 +1,18 @@ +package com.baeldung.displayallbeans.service; + +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + public String getHeader() { + return "Display All Beans"; + } + + public String getBody() { + return "This is a sample application that displays all beans " + + "in Spring IoC container using ListableBeanFactory interface " + + "and Spring Boot Actuators."; + } + +} diff --git a/spring-boot/src/main/resources/templates/displayallbeans.html b/spring-boot/src/main/resources/templates/displayallbeans.html new file mode 100644 index 0000000000..5fc78a7fca --- /dev/null +++ b/spring-boot/src/main/resources/templates/displayallbeans.html @@ -0,0 +1,10 @@ + + + + Baeldung + + +

+

+ + diff --git a/spring-boot/src/test/java/com/baeldung/displayallbeans/DisplayBeanIntegrationTest.java b/spring-boot/src/test/java/com/baeldung/displayallbeans/DisplayBeanIntegrationTest.java index 84d5669aef..530b8e9cb3 100644 --- a/spring-boot/src/test/java/com/baeldung/displayallbeans/DisplayBeanIntegrationTest.java +++ b/spring-boot/src/test/java/com/baeldung/displayallbeans/DisplayBeanIntegrationTest.java @@ -44,9 +44,8 @@ public class DisplayBeanIntegrationTest { @Test public void givenRestTemplate_whenAccessServerUrl_thenHttpStatusOK() throws Exception { - @SuppressWarnings("rawtypes") - ResponseEntity entity = this.testRestTemplate.getForEntity( - "http://localhost:" + this.port + "/getPerson", Map.class); + ResponseEntity entity = this.testRestTemplate.getForEntity( + "http://localhost:" + this.port + "/displayallbeans", String.class); then(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @@ -69,8 +68,8 @@ public class DisplayBeanIntegrationTest { List> allBeans = (List) ((Map) entity.getBody().get(0)).get("beans"); List beanNamesList = allBeans.stream().map(x -> (String) x.get("bean")).collect(Collectors.toList()); - assertThat( beanNamesList, hasItem("personController")); - assertThat( beanNamesList, hasItem("person")); + assertThat( beanNamesList, hasItem("fooController")); + assertThat( beanNamesList, hasItem("fooService")); } @Test @@ -78,7 +77,7 @@ public class DisplayBeanIntegrationTest { String[] beanNames = context.getBeanDefinitionNames(); List beanNamesList = Arrays.asList(beanNames); - assertTrue(beanNamesList.contains("personController")); - assertTrue(beanNamesList.contains("person")); + assertTrue(beanNamesList.contains("fooController")); + assertTrue(beanNamesList.contains("fooService")); } }