From 325466a7820aed6352b7213592243e1147796c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammet=20O=C4=9Fuz=20=C3=96ZCAN?= Date: Sun, 26 Feb 2017 19:53:32 +0200 Subject: [PATCH] Master (#1250) * Bean Injection Project is added Different Types of Bean Injection article codes are added. * Java-based configuration added Java-based configuration and tests are added. Coding styles are fixed. * List of Lists Article Codes added. List of Lists Article Codes added. --- .../com/baeldung/list/listoflist/Pen.java | 18 +++++++ .../com/baeldung/list/listoflist/Pencil.java | 18 +++++++ .../com/baeldung/list/listoflist/Rubber.java | 18 +++++++ .../baeldung/list/listoflist/Stationery.java | 5 ++ .../list/listoflist/ListOfListsTest.java | 50 +++++++++++++++++++ .../config/ConstructorBasedShipConfig.java | 20 ++++++++ .../bean/config/SetterBasedShipConfig.java | 18 +++++++ .../org/baeldung/bean/injection/Helm.java | 14 ++++++ .../org/baeldung/bean/injection/Ship.java | 26 ++++++++++ .../resources/basicConfigForPropertiesTwo.xml | 13 ++--- .../resources/beanInjection-constructor.xml | 15 ++++++ .../main/resources/beanInjection-setter.xml | 15 ++++++ ...rBasedBeanInjectionWithJavaConfigTest.java | 23 +++++++++ ...orBasedBeanInjectionWithXMLConfigTest.java | 20 ++++++++ ...rBasedBeanInjectionWithJavaConfigTest.java | 24 +++++++++ ...erBasedBeanInjectionWithXMLConfigTest.java | 20 ++++++++ 16 files changed, 311 insertions(+), 6 deletions(-) create mode 100644 core-java/src/main/java/com/baeldung/list/listoflist/Pen.java create mode 100644 core-java/src/main/java/com/baeldung/list/listoflist/Pencil.java create mode 100644 core-java/src/main/java/com/baeldung/list/listoflist/Rubber.java create mode 100644 core-java/src/main/java/com/baeldung/list/listoflist/Stationery.java create mode 100644 core-java/src/test/java/com/baeldung/list/listoflist/ListOfListsTest.java create mode 100644 spring-all/src/main/java/org/baeldung/bean/config/ConstructorBasedShipConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/bean/config/SetterBasedShipConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/bean/injection/Helm.java create mode 100644 spring-all/src/main/java/org/baeldung/bean/injection/Ship.java create mode 100644 spring-all/src/main/resources/beanInjection-constructor.xml create mode 100644 spring-all/src/main/resources/beanInjection-setter.xml create mode 100644 spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithJavaConfigTest.java create mode 100644 spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithXMLConfigTest.java create mode 100644 spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithJavaConfigTest.java create mode 100644 spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithXMLConfigTest.java diff --git a/core-java/src/main/java/com/baeldung/list/listoflist/Pen.java b/core-java/src/main/java/com/baeldung/list/listoflist/Pen.java new file mode 100644 index 0000000000..efbd88d0b1 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/list/listoflist/Pen.java @@ -0,0 +1,18 @@ +package com.baeldung.list.listoflist; + +public class Pen implements Stationery { + + public String name; + + public Pen(String name) { + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } +} \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/list/listoflist/Pencil.java b/core-java/src/main/java/com/baeldung/list/listoflist/Pencil.java new file mode 100644 index 0000000000..7dfa119703 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/list/listoflist/Pencil.java @@ -0,0 +1,18 @@ +package com.baeldung.list.listoflist; + +public class Pencil implements Stationery{ + + public String name; + + public Pencil(String name) { + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } +} \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/list/listoflist/Rubber.java b/core-java/src/main/java/com/baeldung/list/listoflist/Rubber.java new file mode 100644 index 0000000000..7511139e14 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/list/listoflist/Rubber.java @@ -0,0 +1,18 @@ +package com.baeldung.list.listoflist; + +public class Rubber implements Stationery { + + public String name; + + public Rubber(String name) { + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } +} \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/list/listoflist/Stationery.java b/core-java/src/main/java/com/baeldung/list/listoflist/Stationery.java new file mode 100644 index 0000000000..d914397cb8 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/list/listoflist/Stationery.java @@ -0,0 +1,5 @@ +package com.baeldung.list.listoflist; + +public interface Stationery { + +} diff --git a/core-java/src/test/java/com/baeldung/list/listoflist/ListOfListsTest.java b/core-java/src/test/java/com/baeldung/list/listoflist/ListOfListsTest.java new file mode 100644 index 0000000000..ce24ff24bc --- /dev/null +++ b/core-java/src/test/java/com/baeldung/list/listoflist/ListOfListsTest.java @@ -0,0 +1,50 @@ +package com.baeldung.list.listoflist; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import org.junit.Before; +import org.junit.Test; + +public class ListOfListsTest { + + private List> listOfLists = new ArrayList>(); + private ArrayList penList = new ArrayList<>(); + private ArrayList pencilList = new ArrayList<>(); + private ArrayList rubberList = new ArrayList<>(); + + @SuppressWarnings("unchecked") + @Before + public void init() { + listOfLists.add(penList); + listOfLists.add(pencilList); + listOfLists.add(rubberList); + + ((ArrayList) listOfLists.get(0)).add(new Pen("Pen 1")); + ((ArrayList) listOfLists.get(1)).add(new Pencil("Pencil 1")); + ((ArrayList) listOfLists.get(2)).add(new Rubber("Rubber 1")); + } + + @Test + public void givenListOfLists_thenCheckNames() { + assertEquals("Pen 1", ((Pen) listOfLists.get(0) + .get(0)).getName()); + assertEquals("Pencil 1", ((Pencil) listOfLists.get(1) + .get(0)).getName()); + assertEquals("Rubber 1", ((Rubber) listOfLists.get(2) + .get(0)).getName()); + } + + @SuppressWarnings("unchecked") + @Test + public void givenListOfLists_whenRemovingElements_thenCheckNames() { + ((ArrayList) listOfLists.get(1)).remove(0); + listOfLists.remove(1); + assertEquals("Rubber 1", ((Rubber) listOfLists.get(1) + .get(0)).getName()); + listOfLists.remove(0); + assertEquals("Rubber 1", ((Rubber) listOfLists.get(0) + .get(0)).getName()); + } +} diff --git a/spring-all/src/main/java/org/baeldung/bean/config/ConstructorBasedShipConfig.java b/spring-all/src/main/java/org/baeldung/bean/config/ConstructorBasedShipConfig.java new file mode 100644 index 0000000000..f0e6e8868e --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/bean/config/ConstructorBasedShipConfig.java @@ -0,0 +1,20 @@ +package org.baeldung.bean.config; + +import org.baeldung.bean.injection.Helm; +import org.baeldung.bean.injection.Ship; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class ConstructorBasedShipConfig { + + @Bean + public Ship ship() { + return new Ship(helm()); + } + + @Bean + public Helm helm() { + return new Helm(); + } +} diff --git a/spring-all/src/main/java/org/baeldung/bean/config/SetterBasedShipConfig.java b/spring-all/src/main/java/org/baeldung/bean/config/SetterBasedShipConfig.java new file mode 100644 index 0000000000..7cd6de1c74 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/bean/config/SetterBasedShipConfig.java @@ -0,0 +1,18 @@ +package org.baeldung.bean.config; + +import org.baeldung.bean.injection.Helm; +import org.baeldung.bean.injection.Ship; +import org.springframework.context.annotation.Bean; + +public class SetterBasedShipConfig { + + @Bean + public Ship ship() { + return new Ship(); + } + + @Bean + public Helm helm() { + return new Helm(); + } +} diff --git a/spring-all/src/main/java/org/baeldung/bean/injection/Helm.java b/spring-all/src/main/java/org/baeldung/bean/injection/Helm.java new file mode 100644 index 0000000000..6d6ea85482 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/bean/injection/Helm.java @@ -0,0 +1,14 @@ +package org.baeldung.bean.injection; + +public class Helm { + + private String brandOfHelm = "HelmBrand"; + + public String getBrandOfHelm() { + return brandOfHelm; + } + + public void setBrandOfHelm(String brandOfHelm) { + this.brandOfHelm = brandOfHelm; + } +} diff --git a/spring-all/src/main/java/org/baeldung/bean/injection/Ship.java b/spring-all/src/main/java/org/baeldung/bean/injection/Ship.java new file mode 100644 index 0000000000..69d9fa1276 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/bean/injection/Ship.java @@ -0,0 +1,26 @@ +package org.baeldung.bean.injection; + +import org.springframework.beans.factory.annotation.Autowired; + +public class Ship { + + @Autowired + private Helm helm; + + public Ship() { + helm = new Helm(); + } + + public Ship(Helm helm) { + this.helm = helm; + } + + @Autowired + public void setHelm(Helm helm) { + this.helm = helm; + } + + public Helm getHelm() { + return this.helm; + } +} diff --git a/spring-all/src/main/resources/basicConfigForPropertiesTwo.xml b/spring-all/src/main/resources/basicConfigForPropertiesTwo.xml index bd6588104f..1d470c4340 100644 --- a/spring-all/src/main/resources/basicConfigForPropertiesTwo.xml +++ b/spring-all/src/main/resources/basicConfigForPropertiesTwo.xml @@ -1,12 +1,13 @@ - + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> - + \ No newline at end of file diff --git a/spring-all/src/main/resources/beanInjection-constructor.xml b/spring-all/src/main/resources/beanInjection-constructor.xml new file mode 100644 index 0000000000..a0713fd9f8 --- /dev/null +++ b/spring-all/src/main/resources/beanInjection-constructor.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/beanInjection-setter.xml b/spring-all/src/main/resources/beanInjection-setter.xml new file mode 100644 index 0000000000..b07826c31e --- /dev/null +++ b/spring-all/src/main/resources/beanInjection-setter.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithJavaConfigTest.java b/spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithJavaConfigTest.java new file mode 100644 index 0000000000..68f8fc13d9 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithJavaConfigTest.java @@ -0,0 +1,23 @@ +package org.baeldung.bean.injection; + +import org.baeldung.bean.config.ConstructorBasedShipConfig; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class ConstructorBasedBeanInjectionWithJavaConfigTest { + private static final String HELM_NAME = "HelmBrand"; + + @Test + public void givenJavaConfigFile_whenUsingConstructorBasedBeanInjection_thenCorrectHelmName() { + + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); + ctx.register(ConstructorBasedShipConfig.class); + ctx.refresh(); + + Ship ship = ctx.getBean(Ship.class); + + Assert.assertEquals(HELM_NAME, ship.getHelm() + .getBrandOfHelm()); + } +} diff --git a/spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithXMLConfigTest.java b/spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithXMLConfigTest.java new file mode 100644 index 0000000000..e69de124b2 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/bean/injection/ConstructorBasedBeanInjectionWithXMLConfigTest.java @@ -0,0 +1,20 @@ +package org.baeldung.bean.injection; + +import org.junit.Assert; +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class ConstructorBasedBeanInjectionWithXMLConfigTest { + + private static final String HELM_NAME = "HelmBrand"; + + @Test + public void givenXMLConfigFile_whenUsingConstructorBasedBeanInjection_thenCorrectHelmName() { + final ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beanInjection-constructor.xml"); + + final Ship shipConstructorBean = (Ship) applicationContext.getBean("ship"); + Assert.assertEquals(HELM_NAME, shipConstructorBean.getHelm() + .getBrandOfHelm()); + } +} diff --git a/spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithJavaConfigTest.java b/spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithJavaConfigTest.java new file mode 100644 index 0000000000..8705995acd --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithJavaConfigTest.java @@ -0,0 +1,24 @@ +package org.baeldung.bean.injection; + +import org.baeldung.bean.config.SetterBasedShipConfig; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class SetterBasedBeanInjectionWithJavaConfigTest { + + private static final String HELM_NAME = "HelmBrand"; + + @Test + public void givenJavaConfigFile_whenUsingSetterBasedBeanInjection_thenCorrectHelmName() { + + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); + ctx.register(SetterBasedShipConfig.class); + ctx.refresh(); + + Ship ship = ctx.getBean(Ship.class); + + Assert.assertEquals(HELM_NAME, ship.getHelm() + .getBrandOfHelm()); + } +} diff --git a/spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithXMLConfigTest.java b/spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithXMLConfigTest.java new file mode 100644 index 0000000000..1958761d78 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/bean/injection/SetterBasedBeanInjectionWithXMLConfigTest.java @@ -0,0 +1,20 @@ +package org.baeldung.bean.injection; + +import org.junit.Assert; +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class SetterBasedBeanInjectionWithXMLConfigTest { + + private static final String HELM_NAME = "HelmBrand"; + + @Test + public void givenXMLConfigFile_whenUsingSetterBasedBeanInjection_thenCorrectHelmName() { + final ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beanInjection-setter.xml"); + + final Ship shipSetterBean = (Ship) applicationContext.getBean("ship"); + Assert.assertEquals(HELM_NAME, shipSetterBean.getHelm() + .getBrandOfHelm()); + } +}