From cb57a8d0c62a7bdc804e039330ceea6ac4b26f7e Mon Sep 17 00:00:00 2001 From: lor6 Date: Mon, 8 May 2017 15:46:14 +0300 Subject: [PATCH 1/4] small fix (#1809) --- .../com/baeldung/dynamicvalidation/DynamicValidationApp.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/DynamicValidationApp.java b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/DynamicValidationApp.java index 361a7b1c03..acdd836c8c 100644 --- a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/DynamicValidationApp.java +++ b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/DynamicValidationApp.java @@ -5,7 +5,9 @@ import javax.annotation.security.RolesAllowed; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication +import com.baeldung.autoconfiguration.MySQLAutoconfiguration; + +@SpringBootApplication(exclude = MySQLAutoconfiguration.class) public class DynamicValidationApp { @RolesAllowed("*") public static void main(String[] args) { From f8d14b711a73dc38d4049283e03b5cf19d2c7199 Mon Sep 17 00:00:00 2001 From: KevinGilmore Date: Mon, 8 May 2017 09:26:11 -0500 Subject: [PATCH 2/4] BAEL-870 README (#1810) * Add files via upload * Update pom.xml * Update RunGuice.java * Update Communication.java * Update CommunicationMode.java * Update DefaultCommunicator.java * Update EmailCommunicationMode.java * Update IMCommunicationMode.java * Update SMSCommunicationMode.java * Update MessageLogger.java * Update MessageSentLoggable.java * Update AOPModule.java * Update BasicModule.java * Update CommunicationModel.java * Update Communicator.java * Update BasicModule.java * Update RunGuice.java * Update MessageLogger.java * Update Communicator.java * Update pom.xml * BAEL-278: Updated README.md * BAEL-554: Add and update README.md files * Update pom.xml * Update pom.xml * Update pom.xml * BAEL-345: fixed assertion * BAEL-109: Updated README.md * BAEL-345: Added README.md * Reinstating reactor-core module in root-level pom * BAEL-393: Adding guide-intro module to root pom * BAEL-9: Updated README.md * BAEL-157: README.md updated * Changed project name * Update RunGuice.java Removed references to message logging and output * Update Communication.java Removed message logging-related code * BAEL-566: Updated README.md * New project name * BAEL-393: removing guice-intro directory * BAEL-393: renamed module guice-intro to guice in root pom.xml * BAEL-393 and BAEL-541 README.md files * BAEL-731: Updated README.md * BAEL-680: renamed test methods * BAEL-714: Updated README.md * BAEL-737: Updated README.md * BAEL-680 and BAEL-756 README.md updates * BAEL-666: Updated README * BAEL-415: Custom Scope * BAEL-415: Custom Scope - renamed classes to reflect TenantScope * README file updates for BAEL-723, BAEL-763, and BAEL-415 * BAEL-735: README * BAEL-567: README * BAEL-736: README * BAEL-766: Update README * BAEL-555: README update * BAEL-761: README update * BAEL-742: Stripe API for Java README file * BAEL-86: Correction to README file * BAEL-828: Updated README.md * BAEL-830: Updated README * BAEL-870: Switched from TestNG to JUnit due to build errors * BAEL-870: Update README --- core-java/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/core-java/README.md b/core-java/README.md index 56dee29899..ead65ab166 100644 --- a/core-java/README.md +++ b/core-java/README.md @@ -100,3 +100,4 @@ - [Guide to sun.misc.Unsafe](http://www.baeldung.com/java-unsafe) - [HashSet and TreeSet Comparison](http://www.baeldung.com/java-hashset-vs-treeset) - [How to Perform a Simple HTTP Request in Java](http://www.baeldung.com/java-http-request) +- [Call Methods at Runtime Using Java Reflection](http://www.baeldung.com/java-method-reflection) From b5f816ae2d2d1ff71f01b64f6c215a75ff60e3e3 Mon Sep 17 00:00:00 2001 From: pivovarit Date: Mon, 8 May 2017 19:45:28 +0200 Subject: [PATCH 3/4] DoubleBraceTest refactor --- .../baeldung/java/doublebrace/DoubleBraceTest.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core-java/src/test/java/com/baeldung/java/doublebrace/DoubleBraceTest.java b/core-java/src/test/java/com/baeldung/java/doublebrace/DoubleBraceTest.java index 77d94f6544..531aa8970d 100644 --- a/core-java/src/test/java/com/baeldung/java/doublebrace/DoubleBraceTest.java +++ b/core-java/src/test/java/com/baeldung/java/doublebrace/DoubleBraceTest.java @@ -1,18 +1,21 @@ package com.baeldung.java.doublebrace; +import org.junit.Test; + import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.stream.Stream; + +import static java.util.stream.Collectors.collectingAndThen; import static java.util.stream.Collectors.toSet; import static org.junit.Assert.assertTrue; -import org.junit.Test; public class DoubleBraceTest { @Test public void whenInitializeSetWithoutDoubleBraces_containsElements() { - final Set countries = new HashSet(); + final Set countries = new HashSet<>(); countries.add("India"); countries.add("USSR"); countries.add("USA"); @@ -34,7 +37,9 @@ public class DoubleBraceTest { @Test public void whenInitializeUnmodifiableSetWithDoubleBrace_containsElements() { - final Set countries = Collections.unmodifiableSet(Stream.of("India", "USSR", "USA").collect(toSet())); + Set countries = Stream.of("India", "USSR", "USA") + .collect(collectingAndThen(toSet(), Collections::unmodifiableSet)); + assertTrue(countries.contains("India")); } From 13035331e32ac914cf858fd72f6ae06f4519faab Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Tue, 9 May 2017 04:28:12 +0200 Subject: [PATCH 4/4] Bael 883 phaser (#1794) * BAEL-883 Code for the Phaser * BAEL-883 remove comments --- .../concurrent/phaser/LongRunningAction.java | 27 ++++++++++++ .../concurrent/phaser/PhaserTest.java | 41 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 core-java/src/main/java/com/baeldung/concurrent/phaser/LongRunningAction.java create mode 100644 core-java/src/test/java/com/baeldung/concurrent/phaser/PhaserTest.java diff --git a/core-java/src/main/java/com/baeldung/concurrent/phaser/LongRunningAction.java b/core-java/src/main/java/com/baeldung/concurrent/phaser/LongRunningAction.java new file mode 100644 index 0000000000..dd1487b5cb --- /dev/null +++ b/core-java/src/main/java/com/baeldung/concurrent/phaser/LongRunningAction.java @@ -0,0 +1,27 @@ +package com.baeldung.concurrent.phaser; + +import java.util.concurrent.Phaser; + +class LongRunningAction implements Runnable { + private String threadName; + private Phaser ph; + + LongRunningAction(String threadName, Phaser ph) { + this.threadName = threadName; + this.ph = ph; + ph.register(); + } + + @Override + public void run() { + System.out.println("This is phase " + ph.getPhase()); + System.out.println("Thread " + threadName + " before long running action"); + ph.arriveAndAwaitAdvance(); + try { + Thread.sleep(20); + } catch (InterruptedException e) { + e.printStackTrace(); + } + ph.arriveAndDeregister(); + } +} \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/concurrent/phaser/PhaserTest.java b/core-java/src/test/java/com/baeldung/concurrent/phaser/PhaserTest.java new file mode 100644 index 0000000000..7ba1b1ebd9 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/concurrent/phaser/PhaserTest.java @@ -0,0 +1,41 @@ +package com.baeldung.concurrent.phaser; + +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Phaser; + +import static junit.framework.TestCase.assertEquals; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class PhaserTest { + + @Test + public void givenPhaser_whenCoordinateWorksBetweenThreads_thenShouldCoordinateBetweenMultiplePhases() { + //given + ExecutorService executorService = Executors.newCachedThreadPool(); + Phaser ph = new Phaser(1); + assertEquals(0, ph.getPhase()); + + //when + executorService.submit(new LongRunningAction("thread-1", ph)); + executorService.submit(new LongRunningAction("thread-2", ph)); + executorService.submit(new LongRunningAction("thread-3", ph)); + + //then + ph.arriveAndAwaitAdvance(); + assertEquals(1, ph.getPhase()); + + //and + executorService.submit(new LongRunningAction("thread-4", ph)); + executorService.submit(new LongRunningAction("thread-5", ph)); + ph.arriveAndAwaitAdvance(); + assertEquals(2, ph.getPhase()); + + + ph.arriveAndDeregister(); + } +}