From f979a4075d829af95eec40aaafcfc39e9eac243c Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Wed, 26 Apr 2017 12:57:16 +0200 Subject: [PATCH 1/7] BAEL-856 code for long adder and accumulator (#1723) * BAEL-856 code for long adder and accumulator * BAEL-856 rearange packages * BAEL-856 Formatting --- .../accumulator/LongAccumulatorTest.java | 41 ++++++++++++ .../concurrent/adder/LongAdderTest.java | 65 +++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java create mode 100644 core-java/src/test/java/com/baeldung/concurrent/adder/LongAdderTest.java diff --git a/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java b/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java new file mode 100644 index 0000000000..46e107b607 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java @@ -0,0 +1,41 @@ +package com.baeldung.concurrent.accumulator; + +import org.junit.Test; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.LongAccumulator; +import java.util.function.LongBinaryOperator; +import java.util.stream.IntStream; + +import static junit.framework.TestCase.assertEquals; + +public class LongAccumulatorTest { + + @Test + public void givenLongAccumulator_whenApplyActionOnItFromMultipleThrads_thenShouldProduceProperResult() throws InterruptedException { + //given + ExecutorService executorService = Executors.newFixedThreadPool(8); + LongBinaryOperator higherValueFinder = (currentValue, previousValue) -> currentValue > previousValue ? currentValue : previousValue; + LongAccumulator accumulator = new LongAccumulator(higherValueFinder, 0L); + + int numberOfThreads = 4; + int numberOfIncrements = 100; + + //when + Runnable accumulateAction = () -> IntStream + .rangeClosed(0, numberOfIncrements) + .forEach(accumulator::accumulate); + + for (int i = 0; i < numberOfThreads; i++) { + executorService.execute(accumulateAction); + } + + //then + executorService.awaitTermination(500, TimeUnit.MILLISECONDS); + executorService.shutdown(); + + assertEquals(accumulator.get(), 100); + } +} diff --git a/core-java/src/test/java/com/baeldung/concurrent/adder/LongAdderTest.java b/core-java/src/test/java/com/baeldung/concurrent/adder/LongAdderTest.java new file mode 100644 index 0000000000..854db5d9b9 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/concurrent/adder/LongAdderTest.java @@ -0,0 +1,65 @@ +package com.baeldung.concurrent.adder; + +import org.junit.Test; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.LongAdder; +import java.util.stream.IntStream; + +import static junit.framework.TestCase.assertEquals; + +public class LongAdderTest { + @Test + public void givenMultipleThread_whenTheyWriteToSharedLongAdder_thenShouldCalculateSumForThem() throws InterruptedException { + //given + LongAdder counter = new LongAdder(); + ExecutorService executorService = Executors.newFixedThreadPool(8); + + int numberOfThreads = 4; + int numberOfIncrements = 100; + + //when + Runnable incrementAction = () -> IntStream + .range(0, numberOfIncrements) + .forEach((i) -> counter.increment()); + + for (int i = 0; i < numberOfThreads; i++) { + executorService.execute(incrementAction); + } + + //then + executorService.awaitTermination(500, TimeUnit.MILLISECONDS); + executorService.shutdown(); + + assertEquals(counter.sum(), numberOfIncrements * numberOfThreads); + assertEquals(counter.sum(), numberOfIncrements * numberOfThreads); + } + + @Test + public void givenMultipleThread_whenTheyWriteToSharedLongAdder_thenShouldCalculateSumForThemAndResetAdderAfterward() throws InterruptedException { + //given + LongAdder counter = new LongAdder(); + ExecutorService executorService = Executors.newFixedThreadPool(8); + + int numberOfThreads = 4; + int numberOfIncrements = 100; + + //when + Runnable incrementAction = () -> IntStream + .range(0, numberOfIncrements) + .forEach((i) -> counter.increment()); + + for (int i = 0; i < numberOfThreads; i++) { + executorService.execute(incrementAction); + } + + //then + executorService.awaitTermination(500, TimeUnit.MILLISECONDS); + executorService.shutdown(); + + assertEquals(counter.sumThenReset(), numberOfIncrements * numberOfThreads); + assertEquals(counter.sum(), 0); + } +} From 17ff6e50f4fc115d3a8be30b4a2ff09b972c0233 Mon Sep 17 00:00:00 2001 From: KevinGilmore Date: Wed, 26 Apr 2017 07:57:20 -0500 Subject: [PATCH 2/7] BAEL-742 Create README for Stripe API article (#1731) * 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 --- stripe/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 stripe/README.md diff --git a/stripe/README.md b/stripe/README.md new file mode 100644 index 0000000000..8a44ff9d33 --- /dev/null +++ b/stripe/README.md @@ -0,0 +1,8 @@ +### Stripe API for Java Sample Project + +This is Spring Boot project that displays a checkout form and charges a credit card using the Stripe API for Java. + +### Relevant articles + +- [Introduction to the Stripe API for Java](http://www.baeldung.com/java-stripe-api) + From 722ce8fba4c46880d4fee51b5611f58ec613dbb2 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Wed, 26 Apr 2017 18:11:15 +0200 Subject: [PATCH 3/7] Merge aspectj -> spring-aop (#1737) --- aspectj/README.md | 3 - aspectj/pom.xml | 138 ------------------ pom.xml | 1 - spring-aop/README.md | 2 + .../java/org}/baeldung/aspectj/Account.java | 2 +- .../org}/baeldung/aspectj/AccountAspect.aj | 2 +- .../java/org}/baeldung/aspectj/Secured.java | 2 +- .../org}/baeldung/aspectj/SecuredMethod.java | 2 +- .../baeldung/aspectj/SecuredMethodAspect.java | 2 +- .../performancemonitor/AopConfiguration.java | 8 +- .../MyPerformanceMonitorInterceptor.java | 6 +- .../performancemonitor/PerfomanceApp.java | 2 +- .../baeldung/performancemonitor/Person.java | 2 +- .../performancemonitor/PersonService.java | 2 +- .../src/main/resources/META-INF/aop.xml | 2 +- .../src/main/resources/logback.xml | 0 .../org/baeldung/aspectj}/AccountTest.java | 7 +- .../baeldung/aspectj}/SecuredMethodTest.java | 4 +- .../main/java/org/baeldung/Application.java | 3 +- .../SpringBootApplicationIntegrationTest.java | 10 +- 20 files changed, 30 insertions(+), 170 deletions(-) delete mode 100644 aspectj/README.md delete mode 100644 aspectj/pom.xml rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/aspectj/Account.java (88%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/aspectj/AccountAspect.aj (96%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/aspectj/Secured.java (90%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/aspectj/SecuredMethod.java (94%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/aspectj/SecuredMethodAspect.java (96%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/performancemonitor/AopConfiguration.java (98%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java (96%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/performancemonitor/PerfomanceApp.java (93%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/performancemonitor/Person.java (95%) rename {aspectj/src/main/java/com => spring-aop/src/main/java/org}/baeldung/performancemonitor/PersonService.java (89%) rename {aspectj => spring-aop}/src/main/resources/META-INF/aop.xml (73%) rename {aspectj => spring-aop}/src/main/resources/logback.xml (100%) rename {aspectj/src/test/java/com/baeldung/aspectj/test => spring-aop/src/test/java/org/baeldung/aspectj}/AccountTest.java (79%) rename {aspectj/src/test/java/com/baeldung/aspectj/test => spring-aop/src/test/java/org/baeldung/aspectj}/SecuredMethodTest.java (75%) diff --git a/aspectj/README.md b/aspectj/README.md deleted file mode 100644 index 71724e76b6..0000000000 --- a/aspectj/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant Articles: -- [Intro to AspectJ](http://www.baeldung.com/aspectj) -- [Spring Performance Logging](http://www.baeldung.com/spring-performance-logging) diff --git a/aspectj/pom.xml b/aspectj/pom.xml deleted file mode 100644 index 2ef2ae9df7..0000000000 --- a/aspectj/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ - - 4.0.0 - com.baeldung - aspectj - 0.0.1-SNAPSHOT - aspectj - - - - org.aspectj - aspectjrt - ${aspectj.version} - - - - org.aspectj - aspectjweaver - ${aspectj.version} - - - - - org.slf4j - slf4j-api - ${org.slf4j.version} - - - - ch.qos.logback - logback-classic - ${logback.version} - - - - ch.qos.logback - logback-core - ${logback.version} - - - - - junit - junit - ${junit.version} - - - - org.springframework - spring-context - 4.3.4.RELEASE - - - org.springframework - spring-beans - 4.3.4.RELEASE - - - org.springframework - spring-core - 4.3.4.RELEASE - - - cglib - cglib - 3.2.4 - - - org.springframework - spring-aop - 4.3.4.RELEASE - - - - - aspectj - - - src/main/resources - true - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${source.version} - ${source.version} - - - - - - org.codehaus.mojo - aspectj-maven-plugin - 1.7 - - ${source.version} - ${source.version} - ${source.version} - true - true - ignore - ${project.build.sourceEncoding} - - - - - - - compile - test-compile - - - - - - - - - - - 1.8 - UTF-8 - 1.8.9 - 1.7.21 - 1.1.7 - 3.6.0 - 4.12 - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index e3dc78eece..956013c467 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,6 @@ apache-fop apache-poi apache-thrift - aspectj assertj autovalue axon diff --git a/spring-aop/README.md b/spring-aop/README.md index 28295faf23..03d5d8f429 100644 --- a/spring-aop/README.md +++ b/spring-aop/README.md @@ -1,3 +1,5 @@ ### Relevant articles - [Implementing a Custom Spring AOP Annotation](http://www.baeldung.com/spring-aop-annotation) +- [Intro to AspectJ](http://www.baeldung.com/aspectj) +- [Spring Performance Logging](http://www.baeldung.com/spring-performance-logging) \ No newline at end of file diff --git a/aspectj/src/main/java/com/baeldung/aspectj/Account.java b/spring-aop/src/main/java/org/baeldung/aspectj/Account.java similarity index 88% rename from aspectj/src/main/java/com/baeldung/aspectj/Account.java rename to spring-aop/src/main/java/org/baeldung/aspectj/Account.java index bc9ca375aa..2c551116f4 100644 --- a/aspectj/src/main/java/com/baeldung/aspectj/Account.java +++ b/spring-aop/src/main/java/org/baeldung/aspectj/Account.java @@ -1,4 +1,4 @@ -package com.baeldung.aspectj; +package org.baeldung.aspectj; public class Account { int balance = 20; diff --git a/aspectj/src/main/java/com/baeldung/aspectj/AccountAspect.aj b/spring-aop/src/main/java/org/baeldung/aspectj/AccountAspect.aj similarity index 96% rename from aspectj/src/main/java/com/baeldung/aspectj/AccountAspect.aj rename to spring-aop/src/main/java/org/baeldung/aspectj/AccountAspect.aj index 8423c1da97..f08d7dc281 100644 --- a/aspectj/src/main/java/com/baeldung/aspectj/AccountAspect.aj +++ b/spring-aop/src/main/java/org/baeldung/aspectj/AccountAspect.aj @@ -1,4 +1,4 @@ -package com.baeldung.aspectj; +package org.baeldung.aspectj; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aspectj/src/main/java/com/baeldung/aspectj/Secured.java b/spring-aop/src/main/java/org/baeldung/aspectj/Secured.java similarity index 90% rename from aspectj/src/main/java/com/baeldung/aspectj/Secured.java rename to spring-aop/src/main/java/org/baeldung/aspectj/Secured.java index 923f208c2f..08711d5db1 100644 --- a/aspectj/src/main/java/com/baeldung/aspectj/Secured.java +++ b/spring-aop/src/main/java/org/baeldung/aspectj/Secured.java @@ -1,4 +1,4 @@ -package com.baeldung.aspectj; +package org.baeldung.aspectj; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/aspectj/src/main/java/com/baeldung/aspectj/SecuredMethod.java b/spring-aop/src/main/java/org/baeldung/aspectj/SecuredMethod.java similarity index 94% rename from aspectj/src/main/java/com/baeldung/aspectj/SecuredMethod.java rename to spring-aop/src/main/java/org/baeldung/aspectj/SecuredMethod.java index aa4b733a00..d1f7d43738 100644 --- a/aspectj/src/main/java/com/baeldung/aspectj/SecuredMethod.java +++ b/spring-aop/src/main/java/org/baeldung/aspectj/SecuredMethod.java @@ -1,4 +1,4 @@ -package com.baeldung.aspectj; +package org.baeldung.aspectj; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aspectj/src/main/java/com/baeldung/aspectj/SecuredMethodAspect.java b/spring-aop/src/main/java/org/baeldung/aspectj/SecuredMethodAspect.java similarity index 96% rename from aspectj/src/main/java/com/baeldung/aspectj/SecuredMethodAspect.java rename to spring-aop/src/main/java/org/baeldung/aspectj/SecuredMethodAspect.java index 9ea45ec43b..b474f266ab 100644 --- a/aspectj/src/main/java/com/baeldung/aspectj/SecuredMethodAspect.java +++ b/spring-aop/src/main/java/org/baeldung/aspectj/SecuredMethodAspect.java @@ -1,4 +1,4 @@ -package com.baeldung.aspectj; +package org.baeldung.aspectj; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java b/spring-aop/src/main/java/org/baeldung/performancemonitor/AopConfiguration.java similarity index 98% rename from aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java rename to spring-aop/src/main/java/org/baeldung/performancemonitor/AopConfiguration.java index 5e2ef90c0f..a5f36fb716 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/AopConfiguration.java +++ b/spring-aop/src/main/java/org/baeldung/performancemonitor/AopConfiguration.java @@ -1,7 +1,4 @@ -package com.baeldung.performancemonitor; - -import java.time.LocalDate; -import java.time.Month; +package org.baeldung.performancemonitor; import org.aspectj.lang.annotation.Pointcut; import org.springframework.aop.Advisor; @@ -12,6 +9,9 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; +import java.time.LocalDate; +import java.time.Month; + @Configuration @EnableAspectJAutoProxy public class AopConfiguration { diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java b/spring-aop/src/main/java/org/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java similarity index 96% rename from aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java rename to spring-aop/src/main/java/org/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java index e995e52182..d098d9466c 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java +++ b/spring-aop/src/main/java/org/baeldung/performancemonitor/MyPerformanceMonitorInterceptor.java @@ -1,11 +1,11 @@ -package com.baeldung.performancemonitor; - -import java.util.Date; +package org.baeldung.performancemonitor; import org.aopalliance.intercept.MethodInvocation; import org.apache.commons.logging.Log; import org.springframework.aop.interceptor.AbstractMonitoringInterceptor; +import java.util.Date; + public class MyPerformanceMonitorInterceptor extends AbstractMonitoringInterceptor { public MyPerformanceMonitorInterceptor() { diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java b/spring-aop/src/main/java/org/baeldung/performancemonitor/PerfomanceApp.java similarity index 93% rename from aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java rename to spring-aop/src/main/java/org/baeldung/performancemonitor/PerfomanceApp.java index 00268c978e..d0fb3a5393 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/PerfomanceApp.java +++ b/spring-aop/src/main/java/org/baeldung/performancemonitor/PerfomanceApp.java @@ -1,4 +1,4 @@ -package com.baeldung.performancemonitor; +package org.baeldung.performancemonitor; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/Person.java b/spring-aop/src/main/java/org/baeldung/performancemonitor/Person.java similarity index 95% rename from aspectj/src/main/java/com/baeldung/performancemonitor/Person.java rename to spring-aop/src/main/java/org/baeldung/performancemonitor/Person.java index f16f28fdef..abd2465764 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/Person.java +++ b/spring-aop/src/main/java/org/baeldung/performancemonitor/Person.java @@ -1,4 +1,4 @@ -package com.baeldung.performancemonitor; +package org.baeldung.performancemonitor; import java.time.LocalDate; diff --git a/aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java b/spring-aop/src/main/java/org/baeldung/performancemonitor/PersonService.java similarity index 89% rename from aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java rename to spring-aop/src/main/java/org/baeldung/performancemonitor/PersonService.java index f5bfdddc12..5b98aaf436 100644 --- a/aspectj/src/main/java/com/baeldung/performancemonitor/PersonService.java +++ b/spring-aop/src/main/java/org/baeldung/performancemonitor/PersonService.java @@ -1,4 +1,4 @@ -package com.baeldung.performancemonitor; +package org.baeldung.performancemonitor; import java.time.LocalDate; import java.time.Period; diff --git a/aspectj/src/main/resources/META-INF/aop.xml b/spring-aop/src/main/resources/META-INF/aop.xml similarity index 73% rename from aspectj/src/main/resources/META-INF/aop.xml rename to spring-aop/src/main/resources/META-INF/aop.xml index f930cde942..e5bddcc30c 100644 --- a/aspectj/src/main/resources/META-INF/aop.xml +++ b/spring-aop/src/main/resources/META-INF/aop.xml @@ -1,6 +1,6 @@ - + diff --git a/aspectj/src/main/resources/logback.xml b/spring-aop/src/main/resources/logback.xml similarity index 100% rename from aspectj/src/main/resources/logback.xml rename to spring-aop/src/main/resources/logback.xml diff --git a/aspectj/src/test/java/com/baeldung/aspectj/test/AccountTest.java b/spring-aop/src/test/java/org/baeldung/aspectj/AccountTest.java similarity index 79% rename from aspectj/src/test/java/com/baeldung/aspectj/test/AccountTest.java rename to spring-aop/src/test/java/org/baeldung/aspectj/AccountTest.java index d90793f681..f118dad034 100644 --- a/aspectj/src/test/java/com/baeldung/aspectj/test/AccountTest.java +++ b/spring-aop/src/test/java/org/baeldung/aspectj/AccountTest.java @@ -1,11 +1,10 @@ -package com.baeldung.aspectj.test; - -import static org.junit.Assert.*; +package org.baeldung.aspectj; import org.junit.Before; import org.junit.Test; -import com.baeldung.aspectj.Account; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class AccountTest { private Account account; diff --git a/aspectj/src/test/java/com/baeldung/aspectj/test/SecuredMethodTest.java b/spring-aop/src/test/java/org/baeldung/aspectj/SecuredMethodTest.java similarity index 75% rename from aspectj/src/test/java/com/baeldung/aspectj/test/SecuredMethodTest.java rename to spring-aop/src/test/java/org/baeldung/aspectj/SecuredMethodTest.java index 924bb279fd..7ecb2a3ee3 100644 --- a/aspectj/src/test/java/com/baeldung/aspectj/test/SecuredMethodTest.java +++ b/spring-aop/src/test/java/org/baeldung/aspectj/SecuredMethodTest.java @@ -1,9 +1,7 @@ -package com.baeldung.aspectj.test; +package org.baeldung.aspectj; import org.junit.Test; -import com.baeldung.aspectj.SecuredMethod; - public class SecuredMethodTest { @Test public void testMethod() throws Exception { diff --git a/spring-boot/src/main/java/org/baeldung/Application.java b/spring-boot/src/main/java/org/baeldung/Application.java index c47bb90830..8b49f4d6ab 100644 --- a/spring-boot/src/main/java/org/baeldung/Application.java +++ b/spring-boot/src/main/java/org/baeldung/Application.java @@ -1,11 +1,12 @@ package org.baeldung; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import com.baeldung.autoconfiguration.MySQLAutoconfiguration; -@org.springframework.boot.autoconfigure.SpringBootApplication(exclude=MySQLAutoconfiguration.class) +@SpringBootApplication(exclude=MySQLAutoconfiguration.class) public class Application { private static ApplicationContext applicationContext; diff --git a/spring-boot/src/test/java/org/baeldung/SpringBootApplicationIntegrationTest.java b/spring-boot/src/test/java/org/baeldung/SpringBootApplicationIntegrationTest.java index 4ce0678bdd..c5cca3c5fb 100644 --- a/spring-boot/src/test/java/org/baeldung/SpringBootApplicationIntegrationTest.java +++ b/spring-boot/src/test/java/org/baeldung/SpringBootApplicationIntegrationTest.java @@ -1,9 +1,5 @@ package org.baeldung; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasSize; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; - import org.baeldung.domain.Modes; import org.junit.Before; import org.junit.Test; @@ -21,12 +17,18 @@ import org.springframework.web.context.WebApplicationContext; import java.nio.charset.Charset; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasSize; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; + @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) @WebAppConfiguration public class SpringBootApplicationIntegrationTest { + @Autowired private WebApplicationContext webApplicationContext; + private MockMvc mockMvc; @Before From 0af476db5228e7de46f1b9d7ae01e33c1efcc558 Mon Sep 17 00:00:00 2001 From: Yasin Date: Wed, 26 Apr 2017 23:47:03 +0530 Subject: [PATCH 4/7] BAEL-88 Integration tests fixed. (#1739) * BAEL-88 Testing in Spring Boot * BAEL-88 Integration tests fixed. --- .../src/main/java/org/baeldung/config/H2JpaConfig.java | 4 ++-- .../test/java/org/baeldung/config/H2TestProfileJPAConfig.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-boot/src/main/java/org/baeldung/config/H2JpaConfig.java b/spring-boot/src/main/java/org/baeldung/config/H2JpaConfig.java index ace7bb5a6d..62791bf180 100644 --- a/spring-boot/src/main/java/org/baeldung/config/H2JpaConfig.java +++ b/spring-boot/src/main/java/org/baeldung/config/H2JpaConfig.java @@ -18,7 +18,7 @@ import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration -@EnableJpaRepositories(basePackages = { "org.baeldung.repository", "org.baeldung.boot.repository" }) +@EnableJpaRepositories(basePackages = { "org.baeldung.repository", "org.baeldung.boot.repository", "org.baeldung.boot.boottest" }) @PropertySource("classpath:persistence-generic-entity.properties") @EnableTransactionManagement public class H2JpaConfig { @@ -41,7 +41,7 @@ public class H2JpaConfig { public LocalContainerEntityManagerFactoryBean entityManagerFactory() { final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); - em.setPackagesToScan(new String[] { "org.baeldung.domain", "org.baeldung.boot.model" }); + em.setPackagesToScan(new String[] { "org.baeldung.domain", "org.baeldung.boot.model", "org.baeldung.boot.boottest" }); em.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); em.setJpaProperties(additionalProperties()); return em; diff --git a/spring-boot/src/test/java/org/baeldung/config/H2TestProfileJPAConfig.java b/spring-boot/src/test/java/org/baeldung/config/H2TestProfileJPAConfig.java index 1d696f4a5d..eff383b440 100644 --- a/spring-boot/src/test/java/org/baeldung/config/H2TestProfileJPAConfig.java +++ b/spring-boot/src/test/java/org/baeldung/config/H2TestProfileJPAConfig.java @@ -18,7 +18,7 @@ import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration -@EnableJpaRepositories(basePackages = { "org.baeldung.repository", "org.baeldung.boot.repository" }) +@EnableJpaRepositories(basePackages = { "org.baeldung.repository", "org.baeldung.boot.repository", "org.baeldung.boot.boottest" }) @EnableTransactionManagement public class H2TestProfileJPAConfig { @@ -41,7 +41,7 @@ public class H2TestProfileJPAConfig { public LocalContainerEntityManagerFactoryBean entityManagerFactory() { final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); - em.setPackagesToScan(new String[] { "org.baeldung.domain", "org.baeldung.boot.model" }); + em.setPackagesToScan(new String[] { "org.baeldung.domain", "org.baeldung.boot.model", "org.baeldung.boot.boottest" }); em.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); em.setJpaProperties(additionalProperties()); return em; From e29b8394e0f4f170c13a31b07cfc25991b3ee079 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Wed, 26 Apr 2017 20:31:31 +0200 Subject: [PATCH 5/7] Merge assertj -> testing (#1738) --- assertj/README.md | 3 - assertj/pom.xml | 61 ------------------- pom.xml | 1 - testing/README.md | 3 + testing/pom.xml | 58 +++++++++++++++--- .../com/baeldung/testing/assertj}/Dog.java | 2 +- .../com/baeldung/testing/assertj}/Person.java | 2 +- .../testing/assertj}/AssertJCoreTest.java | 4 +- .../testing/assertj}/AssertJGuavaTest.java | 2 +- .../testing/assertj}/AssertJJava8Test.java | 2 +- 10 files changed, 57 insertions(+), 81 deletions(-) delete mode 100644 assertj/README.md delete mode 100644 assertj/pom.xml rename {assertj/src/main/java/com/baeldung/assertj/introduction/domain => testing/src/main/java/com/baeldung/testing/assertj}/Dog.java (85%) rename {assertj/src/main/java/com/baeldung/assertj/introduction/domain => testing/src/main/java/com/baeldung/testing/assertj}/Person.java (85%) rename {assertj/src/test/java/com/baeldung/assertj/introduction => testing/src/test/java/com/baeldung/testing/assertj}/AssertJCoreTest.java (95%) rename {assertj/src/test/java/com/baeldung/assertj/introduction => testing/src/test/java/com/baeldung/testing/assertj}/AssertJGuavaTest.java (98%) rename {assertj/src/test/java/com/baeldung/assertj/introduction => testing/src/test/java/com/baeldung/testing/assertj}/AssertJJava8Test.java (98%) diff --git a/assertj/README.md b/assertj/README.md deleted file mode 100644 index 86eff05057..0000000000 --- a/assertj/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant Articles: -- [AssertJ’s Java 8 Features](http://www.baeldung.com/assertJ-java-8-features) -- [AssertJ for Guava](http://www.baeldung.com/assertJ-for-guava) diff --git a/assertj/pom.xml b/assertj/pom.xml deleted file mode 100644 index 032f33c89d..0000000000 --- a/assertj/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - 4.0.0 - - com.baeldung - assertj - 1.0.0-SNAPSHOT - - - - - com.google.guava - guava - ${guava.version} - - - org.assertj - assertj-guava - 3.0.0 - - - - junit - junit - ${junit.version} - test - - - org.assertj - assertj-core - ${assertj-core.version} - test - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - 1.8 - 1.8 - - - - - - - 19.0 - 3.1.0 - 4.12 - 3.6.1 - - 3.6.0 - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 956013c467..57041f2340 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,6 @@ apache-fop apache-poi apache-thrift - assertj autovalue axon diff --git a/testing/README.md b/testing/README.md index 121472ae13..0960ce5957 100644 --- a/testing/README.md +++ b/testing/README.md @@ -5,4 +5,7 @@ ### Relevant Articles: - [Introduction to Mutation Testing Using the PITest Library](http://www.baeldung.com/java-mutation-testing-with-pitest) - [Intro to JaCoCo](http://www.baeldung.com/jacoco) +- [AssertJ’s Java 8 Features](http://www.baeldung.com/assertJ-java-8-features) +- [AssertJ for Guava](http://www.baeldung.com/assertJ-for-guava) +- [Introduction to AssertJ](http://www.baeldung.com/introduction-to-assertj) diff --git a/testing/pom.xml b/testing/pom.xml index 1bdc5c87f0..3b336d0904 100644 --- a/testing/pom.xml +++ b/testing/pom.xml @@ -1,17 +1,37 @@ + 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 - mutation-testing + testing 0.1-SNAPSHOT - mutation-testing - - - 1.1.10 - 4.12 - 0.7.7.201606060606 - + testing + + + com.google.guava + guava + ${guava.version} + + + org.assertj + assertj-guava + 3.0.0 + + + + junit + junit + ${junit.version} + test + + + org.assertj + assertj-core + ${assertj-core.version} + test + + + org.pitest pitest-parent @@ -78,6 +98,26 @@ + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + + + + + 1.1.10 + 4.12 + 0.7.7.201606060606 + 19.0 + 3.1.0 + 4.12 + 3.6.1 + 3.6.0 + diff --git a/assertj/src/main/java/com/baeldung/assertj/introduction/domain/Dog.java b/testing/src/main/java/com/baeldung/testing/assertj/Dog.java similarity index 85% rename from assertj/src/main/java/com/baeldung/assertj/introduction/domain/Dog.java rename to testing/src/main/java/com/baeldung/testing/assertj/Dog.java index 623f71214c..7a1c158500 100644 --- a/assertj/src/main/java/com/baeldung/assertj/introduction/domain/Dog.java +++ b/testing/src/main/java/com/baeldung/testing/assertj/Dog.java @@ -1,4 +1,4 @@ -package com.baeldung.assertj.introduction.domain; +package com.baeldung.testing.assertj; public class Dog { private String name; diff --git a/assertj/src/main/java/com/baeldung/assertj/introduction/domain/Person.java b/testing/src/main/java/com/baeldung/testing/assertj/Person.java similarity index 85% rename from assertj/src/main/java/com/baeldung/assertj/introduction/domain/Person.java rename to testing/src/main/java/com/baeldung/testing/assertj/Person.java index 90ef787ebe..43e9ff8884 100644 --- a/assertj/src/main/java/com/baeldung/assertj/introduction/domain/Person.java +++ b/testing/src/main/java/com/baeldung/testing/assertj/Person.java @@ -1,4 +1,4 @@ -package com.baeldung.assertj.introduction.domain; +package com.baeldung.testing.assertj; public class Person { private String name; diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java b/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreTest.java similarity index 95% rename from assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java rename to testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreTest.java index 10bb011903..2e95355df5 100644 --- a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java +++ b/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreTest.java @@ -1,7 +1,5 @@ -package com.baeldung.assertj.introduction; +package com.baeldung.testing.assertj; -import com.baeldung.assertj.introduction.domain.Dog; -import com.baeldung.assertj.introduction.domain.Person; import org.assertj.core.util.Maps; import org.junit.Ignore; import org.junit.Test; diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java b/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaTest.java similarity index 98% rename from assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java rename to testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaTest.java index 84aaf46dd1..d226c3fce9 100644 --- a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java +++ b/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaTest.java @@ -1,4 +1,4 @@ -package com.baeldung.assertj.introduction; +package com.baeldung.testing.assertj; import com.google.common.base.Optional; import com.google.common.collect.ArrayListMultimap; diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java b/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8Test.java similarity index 98% rename from assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java rename to testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8Test.java index f89defaed1..a671a49da1 100644 --- a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java +++ b/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8Test.java @@ -1,4 +1,4 @@ -package com.baeldung.assertj.introduction; +package com.baeldung.testing.assertj; import org.junit.Test; From bf02497b7c31e2660babbea5a2d5fe306abab2cd Mon Sep 17 00:00:00 2001 From: Jesus Boadas Date: Wed, 26 Apr 2017 15:30:04 -0400 Subject: [PATCH 6/7] Guide to JDO (#1736) * Guide to JDO * Guide to JDO * Guide to JDO * Guide To JDO --- .../java/com/baeldung/jdo/GuideToJDO.java | 78 ++++++++++++++++--- .../java/com/baeldung/jdo/GuideToJDOTest.java | 29 +++++-- 2 files changed, 93 insertions(+), 14 deletions(-) diff --git a/core-java/src/main/java/com/baeldung/jdo/GuideToJDO.java b/core-java/src/main/java/com/baeldung/jdo/GuideToJDO.java index e17004c149..fb7bd184ee 100644 --- a/core-java/src/main/java/com/baeldung/jdo/GuideToJDO.java +++ b/core-java/src/main/java/com/baeldung/jdo/GuideToJDO.java @@ -1,33 +1,55 @@ package com.baeldung.jdo; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; -import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import javax.jdo.PersistenceManagerFactory; import javax.jdo.Query; import javax.jdo.Transaction; +import org.datanucleus.api.jdo.JDOPersistenceManagerFactory; +import org.datanucleus.metadata.PersistenceUnitMetaData; + public class GuideToJDO { private static final Logger LOGGER = Logger.getLogger(GuideToJDO.class.getName()); private Random rnd = new Random(); + private PersistenceUnitMetaData pumd; public static void main(String[] args) { new GuideToJDO(); } public GuideToJDO() { + CreateProperties(); CreateProducts(); ListProducts(); + UpdateProducts(); + ListProducts(); + DeleteProducts(); + ListProducts(); } + public void CreateProperties(){ + + pumd = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null); + pumd.addClassName("com.baeldung.jdo.Product"); + pumd.setExcludeUnlistedClasses(); + pumd.addProperty("javax.jdo.option.ConnectionDriverName", "org.h2.Driver"); + pumd.addProperty("javax.jdo.option.ConnectionURL", "jdbc:h2:mem:mypersistence"); + pumd.addProperty("javax.jdo.option.ConnectionUserName", "sa"); + pumd.addProperty("javax.jdo.option.ConnectionPassword", ""); + pumd.addProperty("datanucleus.autoCreateSchema", "true"); + + } + public void CreateProducts() { - PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial"); + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { @@ -51,26 +73,64 @@ public class GuideToJDO { } pm.close(); } - } - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") + public void UpdateProducts(){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + Query query = pm.newQuery(Product.class, "name == \"Phone\""); + Collection result = (Collection) query.execute(); + Product product = (Product) result.iterator().next(); + product.setName("Android Phone"); + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + pm.close(); + } + } + + @SuppressWarnings("rawtypes") + public void DeleteProducts(){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + Query query = pm.newQuery(Product.class, "name == \"Android Phone\""); + Collection result = (Collection) query.execute(); + Product product = (Product) result.iterator().next(); + pm.deletePersistent(product); + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + pm.close(); + } + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) public void ListProducts() { - PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial"); + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { tx.begin(); - @SuppressWarnings("rawtypes") - Query q = pm.newQuery("SELECT FROM " + Product.class.getName() + " WHERE price < 1"); + Query q = pm.newQuery("SELECT FROM " + Product.class.getName() + " WHERE price > 10"); List products = (List) q.execute(); Iterator iter = products.iterator(); while (iter.hasNext()) { Product p = iter.next(); LOGGER.log(Level.WARNING, "Product name: {0} - Price: {1}", new Object[] { p.name, p.price }); } - + LOGGER.log(Level.INFO, "--------------------------------------------------------------"); tx.commit(); } finally { if (tx.isActive()) { @@ -80,4 +140,4 @@ public class GuideToJDO { pm.close(); } } -} +} \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/jdo/GuideToJDOTest.java b/core-java/src/test/java/com/baeldung/jdo/GuideToJDOTest.java index 6ab7481118..b8a8d2adb3 100644 --- a/core-java/src/test/java/com/baeldung/jdo/GuideToJDOTest.java +++ b/core-java/src/test/java/com/baeldung/jdo/GuideToJDOTest.java @@ -6,18 +6,28 @@ import static org.junit.Assert.fail; import java.util.Iterator; import java.util.List; -import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import javax.jdo.PersistenceManagerFactory; import javax.jdo.Query; import javax.jdo.Transaction; +import org.datanucleus.api.jdo.JDOPersistenceManagerFactory; +import org.datanucleus.metadata.PersistenceUnitMetaData; import org.junit.Test; public class GuideToJDOTest { @Test public void givenProduct_WhenNewThenPerformTransaction() { - PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial"); + PersistenceUnitMetaData pumd = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null); + pumd.addClassName("com.baeldung.jdo.Product"); + pumd.setExcludeUnlistedClasses(); + pumd.addProperty("javax.jdo.option.ConnectionDriverName", "org.h2.Driver"); + pumd.addProperty("javax.jdo.option.ConnectionURL", "jdbc:h2:mem:mypersistence"); + pumd.addProperty("javax.jdo.option.ConnectionUserName", "sa"); + pumd.addProperty("javax.jdo.option.ConnectionPassword", ""); + pumd.addProperty("datanucleus.autoCreateSchema", "true"); + + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { @@ -43,7 +53,16 @@ public class GuideToJDOTest { @Test public void givenProduct_WhenQueryThenExist() { - PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial"); + PersistenceUnitMetaData pumd = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null); + pumd.addClassName("com.baeldung.jdo.Product"); + pumd.setExcludeUnlistedClasses(); + pumd.addProperty("javax.jdo.option.ConnectionDriverName", "org.h2.Driver"); + pumd.addProperty("javax.jdo.option.ConnectionURL", "jdbc:h2:mem:mypersistence"); + pumd.addProperty("javax.jdo.option.ConnectionUserName", "sa"); + pumd.addProperty("javax.jdo.option.ConnectionPassword", ""); + pumd.addProperty("datanucleus.autoCreateSchema", "true"); + + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { @@ -66,7 +85,7 @@ public class GuideToJDOTest { pmf.close(); - PersistenceManagerFactory pmf2 = JDOHelper.getPersistenceManagerFactory("Tutorial"); + PersistenceManagerFactory pmf2 = new JDOPersistenceManagerFactory(pumd, null); PersistenceManager pm2 = pmf2.getPersistenceManager(); Transaction tx2 = pm2.currentTransaction(); try { @@ -93,4 +112,4 @@ public class GuideToJDOTest { } -} +} \ No newline at end of file From e6a0ab3cb9cf84c7cb3c046a5f8e936ade275820 Mon Sep 17 00:00:00 2001 From: KevinGilmore Date: Wed, 26 Apr 2017 16:01:35 -0500 Subject: [PATCH 7/7] BAEL-86: Corrected URL in README.md (#1740) * 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 --- spring-dispatcher-servlet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-dispatcher-servlet/README.md b/spring-dispatcher-servlet/README.md index 56bb353487..a93993679f 100644 --- a/spring-dispatcher-servlet/README.md +++ b/spring-dispatcher-servlet/README.md @@ -1,3 +1,3 @@ ## Relevant articles: -- [Spring DispatcherServlet](http://www.baeldung.com/spring-dispatcher-servlet) +- [An Intro to the Spring DispatcherServlet](http://www.baeldung.com/spring-dispatcherservlet)