From 8f4df6b903866dac1725832d06ee7382fc89d0ce Mon Sep 17 00:00:00 2001 From: orrym Date: Sat, 27 Jan 2018 18:11:07 +0200 Subject: [PATCH 1/7] Add XML, JavaConfig and Autowired examples. --- .../BeanInjectorAutowiredExample.java | 18 ++++++++++++ .../autowiredexample/SimpleAutowiredBean.java | 16 ++++++++++ .../SimpleAutowiredDependency.java | 12 ++++++++ .../javaconfigexample/BeanInjectorConfig.java | 29 +++++++++++++++++++ .../BeanInjectorJavaConfigExample.java | 19 ++++++++++++ .../SimpleBeanConstructorInjection.java | 16 ++++++++++ .../SimpleBeanSetterInjection.java | 16 ++++++++++ .../javaconfigexample/SimpleDependency.java | 9 ++++++ .../BeanInjectorXMLExample.java | 17 +++++++++++ .../SimpleBeanConstructorInjection.java | 16 ++++++++++ .../SimpleBeanSetterInjection.java | 16 ++++++++++ .../xmlconfigexample/SimpleDependency.java | 9 ++++++ .../src/main/resources/bean-injector.xml | 19 ++++++++++++ 13 files changed, 212 insertions(+) create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java create mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java create mode 100644 spring-core/src/main/resources/bean-injector.xml diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java new file mode 100644 index 0000000000..43c0314619 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java @@ -0,0 +1,18 @@ +package com.baeldung.beaninjectiontypes.autowiredexample; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan +public class BeanInjectorAutowiredExample { + + public static void main(String[] args) { + ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanInjectorAutowiredExample.class); + SimpleAutowiredBean simpleBean = (SimpleAutowiredBean) ctx.getBean("simpleAutowiredBean"); + simpleBean.doSomething(); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java new file mode 100644 index 0000000000..1dcd35196b --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java @@ -0,0 +1,16 @@ +package com.baeldung.beaninjectiontypes.autowiredexample; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class SimpleAutowiredBean { + + @Autowired + private SimpleAutowiredDependency simpleAutowiredDependency; + + public void doSomething() { + System.out.println("I'm a Simple Bean. I'm doing something!"); + simpleAutowiredDependency.doSomethingElse(); + } +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java new file mode 100644 index 0000000000..f456bafe4a --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java @@ -0,0 +1,12 @@ +package com.baeldung.beaninjectiontypes.autowiredexample; + +import org.springframework.stereotype.Component; + +@Component +public class SimpleAutowiredDependency { + + public void doSomethingElse() { + System.out.println("I'm a simple autowired dependency! I'm doing something!"); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java new file mode 100644 index 0000000000..14e73187a8 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java @@ -0,0 +1,29 @@ +package com.baeldung.beaninjectiontypes.javaconfigexample; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BeanInjectorConfig { + + @Bean + public SimpleDependency simpleDependency() { + return new SimpleDependency(); + } + + // The following illustrates constructor injection: + + @Bean + public SimpleBeanConstructorInjection simpleBeanConstructorInjection() { + return new SimpleBeanConstructorInjection(simpleDependency()); + } + + // The following illustrates setter injection: + + @Bean + public SimpleBeanSetterInjection simpleBeanSetterInjection() { + SimpleBeanSetterInjection simpleBeanSetterInjection = new SimpleBeanSetterInjection(); + simpleBeanSetterInjection.setSimpleDependency(new SimpleDependency()); + return simpleBeanSetterInjection; + } +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java new file mode 100644 index 0000000000..fd6e00105e --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java @@ -0,0 +1,19 @@ +package com.baeldung.beaninjectiontypes.javaconfigexample; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class BeanInjectorJavaConfigExample { + + public static void main(String[] args) { + ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanInjectorConfig.class); + SimpleBeanConstructorInjection simpleBeanConstructorInjection = (SimpleBeanConstructorInjection) ctx.getBean("simpleBeanConstructorInjection"); + simpleBeanConstructorInjection.doSomething(); + + System.out.println("******************"); + + SimpleBeanSetterInjection simpleBeanSetterInjection = (SimpleBeanSetterInjection) ctx.getBean("simpleBeanSetterInjection"); + simpleBeanSetterInjection.doSomething(); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java new file mode 100644 index 0000000000..03918602c0 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java @@ -0,0 +1,16 @@ +package com.baeldung.beaninjectiontypes.javaconfigexample; + +public class SimpleBeanConstructorInjection { + + private SimpleDependency simpleDependency; + + SimpleBeanConstructorInjection(SimpleDependency simpleDependency) { + this.simpleDependency = simpleDependency; + } + + public void doSomething() { + System.out.println("I'm a Simple Bean. My dependency is wired using constructor injection - I'm doing something!"); + simpleDependency.doSomethingElse(); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java new file mode 100644 index 0000000000..60c3d17997 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java @@ -0,0 +1,16 @@ +package com.baeldung.beaninjectiontypes.javaconfigexample; + +public class SimpleBeanSetterInjection { + + private SimpleDependency simpleDependency; + + public void doSomething() { + System.out.println("I'm a Simple Bean. My dependency is wired using setter injection - I'm doing something!"); + simpleDependency.doSomethingElse(); + } + + public void setSimpleDependency(SimpleDependency simpleDependency) { + this.simpleDependency = simpleDependency; + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java new file mode 100644 index 0000000000..1867518b12 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java @@ -0,0 +1,9 @@ +package com.baeldung.beaninjectiontypes.javaconfigexample; + +public class SimpleDependency { + + public void doSomethingElse() { + System.out.println("I'm a simple dependency! I'm doing something (else)!"); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java new file mode 100644 index 0000000000..a637d0f4a4 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java @@ -0,0 +1,17 @@ +package com.baeldung.beaninjectiontypes.xmlconfigexample; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class BeanInjectorXMLExample { + + public static void main(String[] args) { + ApplicationContext ctx = new ClassPathXmlApplicationContext("bean-injector.xml"); + SimpleBeanConstructorInjection simpleBeanConstructorInjection = (SimpleBeanConstructorInjection) ctx.getBean("simpleBeanConstructorInjection"); + simpleBeanConstructorInjection.doSomething(); + + System.out.println("********************"); + SimpleBeanSetterInjection simpleBeanSetterInjection = (SimpleBeanSetterInjection) ctx.getBean("simpleBeanSetterInjection"); + simpleBeanSetterInjection.doSomething(); + } +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java new file mode 100644 index 0000000000..db6f58d10d --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java @@ -0,0 +1,16 @@ +package com.baeldung.beaninjectiontypes.xmlconfigexample; + +public class SimpleBeanConstructorInjection { + + private SimpleDependency simpleDependency; + + SimpleBeanConstructorInjection(SimpleDependency simpleDependency) { + this.simpleDependency = simpleDependency; + } + + public void doSomething() { + System.out.println("I'm a Simple Bean. My dependency is wired using constructor injection - I'm doing something!"); + simpleDependency.doSomethingElse(); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java new file mode 100644 index 0000000000..7e845c3cd1 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java @@ -0,0 +1,16 @@ +package com.baeldung.beaninjectiontypes.xmlconfigexample; + +public class SimpleBeanSetterInjection { + + private SimpleDependency simpleDependency; + + public void setSimpleDependency(SimpleDependency simpleDependency) { + this.simpleDependency = simpleDependency; + } + + public void doSomething() { + System.out.println("I'm a Simple Bean. My dependency is wired using setter injection - I'm doing something!"); + simpleDependency.doSomethingElse(); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java new file mode 100644 index 0000000000..7b1f2ad35a --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java @@ -0,0 +1,9 @@ +package com.baeldung.beaninjectiontypes.xmlconfigexample; + +public class SimpleDependency { + + public void doSomethingElse() { + System.out.println("I'm a simple dependency! I'm doing something (else)!"); + } + +} diff --git a/spring-core/src/main/resources/bean-injector.xml b/spring-core/src/main/resources/bean-injector.xml new file mode 100644 index 0000000000..cb084a405f --- /dev/null +++ b/spring-core/src/main/resources/bean-injector.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + \ No newline at end of file From 4344479d7a724932efb897b279d040d3f157abb3 Mon Sep 17 00:00:00 2001 From: orrym Date: Sat, 3 Feb 2018 13:06:31 +0200 Subject: [PATCH 2/7] BAEL-1517: Added Java7 style assertions --- .../exceptions/Java7StyleAssertions.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java new file mode 100644 index 0000000000..0dff8d2964 --- /dev/null +++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java @@ -0,0 +1,23 @@ +package com.baeldung.testing.assertj.exceptions; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; +import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown; + +import org.junit.Test; + +public class Java7StyleAssertions { + + @Test + public void whenDividingByZero_thenArithmeticException() { + try { + int numerator = 10; + int denominator = 0; + int quotient = numerator / denominator; + fail("ArithmeticException expected because dividing by zero yields an ArithmeticException."); + failBecauseExceptionWasNotThrown(IndexOutOfBoundsException.class); + } catch (ArithmeticException e) { + assertThat(e).hasMessage("/ by zero"); + } + } +} From 145db059499a055bb1eba4677d6e3215701bb270 Mon Sep 17 00:00:00 2001 From: orrym Date: Sat, 3 Feb 2018 15:45:17 +0200 Subject: [PATCH 3/7] BAEL-1517: Upgrade AssertJ to 3.9.0; add Java 8 style assertion tests --- testing-modules/testing/pom.xml | 2 +- .../exceptions/Java7StyleAssertions.java | 5 ++- .../exceptions/Java8StyleAssertions.java | 42 +++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java diff --git a/testing-modules/testing/pom.xml b/testing-modules/testing/pom.xml index c76045380b..91792a4681 100644 --- a/testing-modules/testing/pom.xml +++ b/testing-modules/testing/pom.xml @@ -173,7 +173,7 @@ 0.7.7.201606060606 21.0 3.1.0 - 3.6.1 + 3.9.0 2.1.0 0.32 1.1.0 diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java index 0dff8d2964..07a5be1118 100644 --- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java +++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java @@ -15,9 +15,10 @@ public class Java7StyleAssertions { int denominator = 0; int quotient = numerator / denominator; fail("ArithmeticException expected because dividing by zero yields an ArithmeticException."); - failBecauseExceptionWasNotThrown(IndexOutOfBoundsException.class); - } catch (ArithmeticException e) { + failBecauseExceptionWasNotThrown(ArithmeticException.class); + } catch (Exception e) { assertThat(e).hasMessage("/ by zero"); + assertThat(e).isInstanceOf(ArithmeticException.class); } } } diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java new file mode 100644 index 0000000000..53f192bb2f --- /dev/null +++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java @@ -0,0 +1,42 @@ +package com.baeldung.testing.assertj.exceptions; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.catchThrowable; + +import org.junit.Test; + +public class Java8StyleAssertions { + + @Test + public void whenDividingByZero_thenArithmeticException() { + assertThatThrownBy(() -> { + int numerator = 10; + int denominator = 0; + int quotient = numerator / denominator; + }).isInstanceOf(ArithmeticException.class) + .hasMessageContaining("/ by zero"); + + assertThatExceptionOfType(ArithmeticException.class).isThrownBy(() -> { + int numerator = 10; + int denominator = 0; + int quotient = numerator / denominator; + }) + .withMessageContaining("/ by zero"); + + // BDD style: + + // when + Throwable thrown = catchThrowable(() -> { + int numerator = 10; + int denominator = 0; + int quotient = numerator / denominator; + }); + + // then + assertThat(thrown).isInstanceOf(ArithmeticException.class) + .hasMessageContaining("/ by zero"); + + } +} From c9006942c2716f542e275b0bbd1c4c60bc37d6bd Mon Sep 17 00:00:00 2001 From: orrym Date: Tue, 6 Feb 2018 19:54:52 +0200 Subject: [PATCH 4/7] Revert "Add XML, JavaConfig and Autowired examples." This reverts commit 8f4df6b903866dac1725832d06ee7382fc89d0ce. --- .../BeanInjectorAutowiredExample.java | 18 ------------ .../autowiredexample/SimpleAutowiredBean.java | 16 ---------- .../SimpleAutowiredDependency.java | 12 -------- .../javaconfigexample/BeanInjectorConfig.java | 29 ------------------- .../BeanInjectorJavaConfigExample.java | 19 ------------ .../SimpleBeanConstructorInjection.java | 16 ---------- .../SimpleBeanSetterInjection.java | 16 ---------- .../javaconfigexample/SimpleDependency.java | 9 ------ .../BeanInjectorXMLExample.java | 17 ----------- .../SimpleBeanConstructorInjection.java | 16 ---------- .../SimpleBeanSetterInjection.java | 16 ---------- .../xmlconfigexample/SimpleDependency.java | 9 ------ .../src/main/resources/bean-injector.xml | 19 ------------ 13 files changed, 212 deletions(-) delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java delete mode 100644 spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java delete mode 100644 spring-core/src/main/resources/bean-injector.xml diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java deleted file mode 100644 index 43c0314619..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/BeanInjectorAutowiredExample.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.baeldung.beaninjectiontypes.autowiredexample; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan -public class BeanInjectorAutowiredExample { - - public static void main(String[] args) { - ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanInjectorAutowiredExample.class); - SimpleAutowiredBean simpleBean = (SimpleAutowiredBean) ctx.getBean("simpleAutowiredBean"); - simpleBean.doSomething(); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java deleted file mode 100644 index 1dcd35196b..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredBean.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.beaninjectiontypes.autowiredexample; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class SimpleAutowiredBean { - - @Autowired - private SimpleAutowiredDependency simpleAutowiredDependency; - - public void doSomething() { - System.out.println("I'm a Simple Bean. I'm doing something!"); - simpleAutowiredDependency.doSomethingElse(); - } -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java deleted file mode 100644 index f456bafe4a..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/autowiredexample/SimpleAutowiredDependency.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.beaninjectiontypes.autowiredexample; - -import org.springframework.stereotype.Component; - -@Component -public class SimpleAutowiredDependency { - - public void doSomethingElse() { - System.out.println("I'm a simple autowired dependency! I'm doing something!"); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java deleted file mode 100644 index 14e73187a8..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorConfig.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.baeldung.beaninjectiontypes.javaconfigexample; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class BeanInjectorConfig { - - @Bean - public SimpleDependency simpleDependency() { - return new SimpleDependency(); - } - - // The following illustrates constructor injection: - - @Bean - public SimpleBeanConstructorInjection simpleBeanConstructorInjection() { - return new SimpleBeanConstructorInjection(simpleDependency()); - } - - // The following illustrates setter injection: - - @Bean - public SimpleBeanSetterInjection simpleBeanSetterInjection() { - SimpleBeanSetterInjection simpleBeanSetterInjection = new SimpleBeanSetterInjection(); - simpleBeanSetterInjection.setSimpleDependency(new SimpleDependency()); - return simpleBeanSetterInjection; - } -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java deleted file mode 100644 index fd6e00105e..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/BeanInjectorJavaConfigExample.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.beaninjectiontypes.javaconfigexample; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -public class BeanInjectorJavaConfigExample { - - public static void main(String[] args) { - ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanInjectorConfig.class); - SimpleBeanConstructorInjection simpleBeanConstructorInjection = (SimpleBeanConstructorInjection) ctx.getBean("simpleBeanConstructorInjection"); - simpleBeanConstructorInjection.doSomething(); - - System.out.println("******************"); - - SimpleBeanSetterInjection simpleBeanSetterInjection = (SimpleBeanSetterInjection) ctx.getBean("simpleBeanSetterInjection"); - simpleBeanSetterInjection.doSomething(); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java deleted file mode 100644 index 03918602c0..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanConstructorInjection.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.beaninjectiontypes.javaconfigexample; - -public class SimpleBeanConstructorInjection { - - private SimpleDependency simpleDependency; - - SimpleBeanConstructorInjection(SimpleDependency simpleDependency) { - this.simpleDependency = simpleDependency; - } - - public void doSomething() { - System.out.println("I'm a Simple Bean. My dependency is wired using constructor injection - I'm doing something!"); - simpleDependency.doSomethingElse(); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java deleted file mode 100644 index 60c3d17997..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleBeanSetterInjection.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.beaninjectiontypes.javaconfigexample; - -public class SimpleBeanSetterInjection { - - private SimpleDependency simpleDependency; - - public void doSomething() { - System.out.println("I'm a Simple Bean. My dependency is wired using setter injection - I'm doing something!"); - simpleDependency.doSomethingElse(); - } - - public void setSimpleDependency(SimpleDependency simpleDependency) { - this.simpleDependency = simpleDependency; - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java deleted file mode 100644 index 1867518b12..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/javaconfigexample/SimpleDependency.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.baeldung.beaninjectiontypes.javaconfigexample; - -public class SimpleDependency { - - public void doSomethingElse() { - System.out.println("I'm a simple dependency! I'm doing something (else)!"); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java deleted file mode 100644 index a637d0f4a4..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/BeanInjectorXMLExample.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.beaninjectiontypes.xmlconfigexample; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -public class BeanInjectorXMLExample { - - public static void main(String[] args) { - ApplicationContext ctx = new ClassPathXmlApplicationContext("bean-injector.xml"); - SimpleBeanConstructorInjection simpleBeanConstructorInjection = (SimpleBeanConstructorInjection) ctx.getBean("simpleBeanConstructorInjection"); - simpleBeanConstructorInjection.doSomething(); - - System.out.println("********************"); - SimpleBeanSetterInjection simpleBeanSetterInjection = (SimpleBeanSetterInjection) ctx.getBean("simpleBeanSetterInjection"); - simpleBeanSetterInjection.doSomething(); - } -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java deleted file mode 100644 index db6f58d10d..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanConstructorInjection.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.beaninjectiontypes.xmlconfigexample; - -public class SimpleBeanConstructorInjection { - - private SimpleDependency simpleDependency; - - SimpleBeanConstructorInjection(SimpleDependency simpleDependency) { - this.simpleDependency = simpleDependency; - } - - public void doSomething() { - System.out.println("I'm a Simple Bean. My dependency is wired using constructor injection - I'm doing something!"); - simpleDependency.doSomethingElse(); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java deleted file mode 100644 index 7e845c3cd1..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleBeanSetterInjection.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.beaninjectiontypes.xmlconfigexample; - -public class SimpleBeanSetterInjection { - - private SimpleDependency simpleDependency; - - public void setSimpleDependency(SimpleDependency simpleDependency) { - this.simpleDependency = simpleDependency; - } - - public void doSomething() { - System.out.println("I'm a Simple Bean. My dependency is wired using setter injection - I'm doing something!"); - simpleDependency.doSomethingElse(); - } - -} diff --git a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java b/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java deleted file mode 100644 index 7b1f2ad35a..0000000000 --- a/spring-core/src/main/java/com/baeldung/beaninjectiontypes/xmlconfigexample/SimpleDependency.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.baeldung.beaninjectiontypes.xmlconfigexample; - -public class SimpleDependency { - - public void doSomethingElse() { - System.out.println("I'm a simple dependency! I'm doing something (else)!"); - } - -} diff --git a/spring-core/src/main/resources/bean-injector.xml b/spring-core/src/main/resources/bean-injector.xml deleted file mode 100644 index cb084a405f..0000000000 --- a/spring-core/src/main/resources/bean-injector.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file From 0b71d385f0507cd28b8cedb6bae789de94d47f0b Mon Sep 17 00:00:00 2001 From: orrym Date: Sun, 11 Feb 2018 10:33:00 +0200 Subject: [PATCH 5/7] BAEL-1517: Editor Review changes --- .../exceptions/Java8StyleAssertions.java | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java index 53f192bb2f..15b41dc896 100644 --- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java +++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java @@ -3,21 +3,50 @@ package com.baeldung.testing.assertj.exceptions; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.assertj.core.api.Assertions.assertThatIOException; +import static org.assertj.core.api.Assertions.assertThatNullPointerException; import static org.assertj.core.api.Assertions.catchThrowable; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; + import org.junit.Test; public class Java8StyleAssertions { @Test - public void whenDividingByZero_thenArithmeticException() { + public void whenGettingOutOfBoundsItem_thenIndexOutOfBoundsException() { assertThatThrownBy(() -> { - int numerator = 10; - int denominator = 0; - int quotient = numerator / denominator; - }).isInstanceOf(ArithmeticException.class) - .hasMessageContaining("/ by zero"); + ArrayList myStringList = new ArrayList(Arrays.asList("Strine one", "String two")); + myStringList.get(2); + }).isInstanceOf(IndexOutOfBoundsException.class) + .hasMessageStartingWith("Index: 2") + .hasMessageContaining("2") + .hasMessageEndingWith("Size: 2") + .hasMessageContaining("Index: 2, Size: 2") + .hasMessage("Index: %s, Size: %s", 2, 2) + .hasMessageMatching("Index: \\d+, Size: \\d+") + .hasNoCause(); + } + @Test + public void whenWrappingException_thenCauseInstanceOfWrappedExceptionType() { + assertThatThrownBy(() -> { + try { + throw new IOException(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }).isInstanceOf(RuntimeException.class) + .hasCauseInstanceOf(IOException.class) + .hasStackTraceContaining("java.io.IOException"); + } + + @Test + public void whenDividingByZero_thenArithmeticException() { assertThatExceptionOfType(ArithmeticException.class).isThrownBy(() -> { int numerator = 10; int denominator = 0; @@ -25,7 +54,7 @@ public class Java8StyleAssertions { }) .withMessageContaining("/ by zero"); - // BDD style: + // Alternatively: // when Throwable thrown = catchThrowable(() -> { From febfb466a60d97e98cc718c5ea9e2f160bb95d12 Mon Sep 17 00:00:00 2001 From: orrym Date: Sun, 11 Feb 2018 10:33:28 +0200 Subject: [PATCH 6/7] BAEL-1517: Formatting... --- .../testing/assertj/exceptions/Java8StyleAssertions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java index 15b41dc896..2fbbf6d8d3 100644 --- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java +++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java @@ -42,7 +42,7 @@ public class Java8StyleAssertions { } }).isInstanceOf(RuntimeException.class) .hasCauseInstanceOf(IOException.class) - .hasStackTraceContaining("java.io.IOException"); + .hasStackTraceContaining("IOException"); } @Test From 806cb74ae9748d6e3eb2648819a973e69ed83e40 Mon Sep 17 00:00:00 2001 From: orrym Date: Thu, 1 Mar 2018 16:14:05 +0200 Subject: [PATCH 7/7] BAEL-1572: AWS EC2 examples --- .../java/com/baeldung/ec2/EC2Application.java | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 aws/src/main/java/com/baeldung/ec2/EC2Application.java diff --git a/aws/src/main/java/com/baeldung/ec2/EC2Application.java b/aws/src/main/java/com/baeldung/ec2/EC2Application.java new file mode 100644 index 0000000000..bb7d8ca1d7 --- /dev/null +++ b/aws/src/main/java/com/baeldung/ec2/EC2Application.java @@ -0,0 +1,139 @@ +package com.baeldung.ec2; + +import java.util.Arrays; + +import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.ec2.AmazonEC2; +import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; +import com.amazonaws.services.ec2.model.AuthorizeSecurityGroupIngressRequest; +import com.amazonaws.services.ec2.model.CreateKeyPairRequest; +import com.amazonaws.services.ec2.model.CreateKeyPairResult; +import com.amazonaws.services.ec2.model.CreateSecurityGroupRequest; +import com.amazonaws.services.ec2.model.DescribeInstancesRequest; +import com.amazonaws.services.ec2.model.DescribeInstancesResult; +import com.amazonaws.services.ec2.model.DescribeKeyPairsRequest; +import com.amazonaws.services.ec2.model.DescribeKeyPairsResult; +import com.amazonaws.services.ec2.model.IpPermission; +import com.amazonaws.services.ec2.model.IpRange; +import com.amazonaws.services.ec2.model.MonitorInstancesRequest; +import com.amazonaws.services.ec2.model.RebootInstancesRequest; +import com.amazonaws.services.ec2.model.RunInstancesRequest; +import com.amazonaws.services.ec2.model.StartInstancesRequest; +import com.amazonaws.services.ec2.model.StopInstancesRequest; +import com.amazonaws.services.ec2.model.UnmonitorInstancesRequest; + +public class EC2Application { + + private static final AWSCredentials credentials; + + static { + // put your accesskey and secretkey here + credentials = new BasicAWSCredentials( + "", + "" + ); + } + + public static void main(String[] args) { + + String yourInstanceId = ""; + + // 0) - Set up the client + AmazonEC2 ec2Client = AmazonEC2ClientBuilder.standard() + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withRegion(Regions.US_EAST_1) + .build(); + + // 1) - Create a security group + CreateSecurityGroupRequest createSecurityGroupRequest = new CreateSecurityGroupRequest().withGroupName("BaeldungSecurityGroup") + .withDescription("Baeldung Security Group"); + ec2Client.createSecurityGroup(createSecurityGroupRequest); + + // 2) - Allow HTTP and SSH traffic + IpRange ipRange1 = new IpRange().withCidrIp("0.0.0.0/0"); + + IpPermission ipPermission1 = new IpPermission().withIpv4Ranges(Arrays.asList(new IpRange[] { ipRange1 })) + .withIpProtocol("tcp") + .withFromPort(80) + .withToPort(80); + + IpPermission ipPermission2 = new IpPermission().withIpv4Ranges(Arrays.asList(new IpRange[] { ipRange1 })) + .withIpProtocol("tcp") + .withFromPort(22) + .withToPort(22); + + AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest() + .withGroupName("BaeldungSecurityGroup") + .withIpPermissions(ipPermission1, ipPermission2); + + ec2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest); + + // 3) - Create KeyPair + CreateKeyPairRequest createKeyPairRequest = new CreateKeyPairRequest() + .withKeyName("baeldung-key-pair"); + CreateKeyPairResult createKeyPairResult = ec2Client.createKeyPair(createKeyPairRequest); + String privateKey = createKeyPairResult + .getKeyPair() + .getKeyMaterial(); // make sure you keep it, the private key, Amazon doesn't store the private key + + // 4) - See what key-pairs you've got + DescribeKeyPairsRequest describeKeyPairsRequest = new DescribeKeyPairsRequest(); + DescribeKeyPairsResult describeKeyPairsResult = ec2Client.describeKeyPairs(describeKeyPairsRequest); + + // 5) - Launch an Amazon Instance + RunInstancesRequest runInstancesRequest = new RunInstancesRequest().withImageId("ami-97785bed") // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html | https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/usingsharedamis-finding.html + .withInstanceType("t2.micro") // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html + .withMinCount(1) + .withMaxCount(1) + .withKeyName("baeldung-key-pair") // optional - if not present, can't connect to instance + .withSecurityGroups("BaeldungSecurityGroup"); + + ec2Client.runInstances(runInstancesRequest); + + // 6) Monitor Instances + MonitorInstancesRequest monitorInstancesRequest = new MonitorInstancesRequest() + .withInstanceIds(yourInstanceId); + + ec2Client.monitorInstances(monitorInstancesRequest); + + UnmonitorInstancesRequest unmonitorInstancesRequest = new UnmonitorInstancesRequest() + .withInstanceIds(yourInstanceId); + + ec2Client.unmonitorInstances(unmonitorInstancesRequest); + + // 7) - Reboot an Instance + + RebootInstancesRequest rebootInstancesRequest = new RebootInstancesRequest() + .withInstanceIds(yourInstanceId); + + ec2Client.rebootInstances(rebootInstancesRequest); + + // 8) - Stop an Instance + StopInstancesRequest stopInstancesRequest = new StopInstancesRequest() + .withInstanceIds(yourInstanceId); + + ec2Client.stopInstances(stopInstancesRequest) + .getStoppingInstances() + .get(0) + .getPreviousState() + .getName(); + + // 9) - Start an Instance + StartInstancesRequest startInstancesRequest = new StartInstancesRequest() + .withInstanceIds("instance-id"); + + ec2Client.startInstances(startInstancesRequest); + + // 10) - Describe an Instance + DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); + DescribeInstancesResult response = ec2Client.describeInstances(describeInstancesRequest); + System.out.println(response.getReservations() + .get(0) + .getInstances() + .get(0) + .getKernelId()); + } +}