diff --git a/spring-groovy/pom.xml b/spring-groovy/pom.xml index 59c7ba4a7c..9086369fa4 100644 --- a/spring-groovy/pom.xml +++ b/spring-groovy/pom.xml @@ -37,5 +37,38 @@ spring-integration-groovy 4.3.7.RELEASE + + org.codehaus.groovy + groovy-all + 2.4.12 + + + + + maven-compiler-plugin + 3.7.0 + + groovy-eclipse-compiler + true + 1.8 + 1.8 + ${project.build.sourceEncoding} + + + + org.codehaus.groovy + groovy-eclipse-compiler + 2.9.2-01 + + + org.codehaus.groovy + groovy-eclipse-batch + 2.4.3-01 + + + + + + diff --git a/spring-groovy/src/main/java/com/baeldug/groovyconfig/BandsBean.java b/spring-groovy/src/main/java/com/baeldug/groovyconfig/BandsBean.java new file mode 100644 index 0000000000..1deba5d2f6 --- /dev/null +++ b/spring-groovy/src/main/java/com/baeldug/groovyconfig/BandsBean.java @@ -0,0 +1,17 @@ +package com.baeldug.groovyconfig; + +import java.util.ArrayList; +import java.util.List; + +public class BandsBean { + + private List bandsList = new ArrayList<>(); + + public List getBandsList() { + return bandsList; + } + + public void setBandsList(List bandsList) { + this.bandsList = bandsList; + } +} diff --git a/spring-groovy/src/main/java/com/baeldug/groovyconfig/GroovyBeanConfig.groovy b/spring-groovy/src/main/java/com/baeldug/groovyconfig/GroovyBeanConfig.groovy new file mode 100644 index 0000000000..32a6fedff0 --- /dev/null +++ b/spring-groovy/src/main/java/com/baeldug/groovyconfig/GroovyBeanConfig.groovy @@ -0,0 +1,18 @@ +package com.baeldug.groovyconfig; + +beans { + javaPesronBean(JavaPersonBean) { + firstName = 'John' + lastName = 'Doe' + age ='32' + eyesColor = 'blue' + hairColor='black' + } + + bandsBean(BandsBean) { bean-> + bean.scope = "singleton" + bandsList=['Nirvana', 'Pearl Jam', 'Foo Fighters'] + } + + registerAlias("bandsBean","bands") +} diff --git a/spring-groovy/src/main/java/com/baeldug/groovyconfig/JavaBeanConfig.java b/spring-groovy/src/main/java/com/baeldug/groovyconfig/JavaBeanConfig.java new file mode 100644 index 0000000000..7c4238ae28 --- /dev/null +++ b/spring-groovy/src/main/java/com/baeldug/groovyconfig/JavaBeanConfig.java @@ -0,0 +1,21 @@ +package com.baeldug.groovyconfig; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class JavaBeanConfig { + + @Bean + public JavaPersonBean javaPerson() { + JavaPersonBean jPerson = new JavaPersonBean(); + jPerson.setFirstName("John"); + jPerson.setLastName("Doe"); + jPerson.setAge("31"); + jPerson.setEyesColor("green"); + jPerson.setHairColor("blond"); + + return jPerson; + } + +} diff --git a/spring-groovy/src/main/java/com/baeldug/groovyconfig/JavaPersonBean.java b/spring-groovy/src/main/java/com/baeldug/groovyconfig/JavaPersonBean.java new file mode 100644 index 0000000000..db988d4abf --- /dev/null +++ b/spring-groovy/src/main/java/com/baeldug/groovyconfig/JavaPersonBean.java @@ -0,0 +1,57 @@ +package com.baeldug.groovyconfig; + +public class JavaPersonBean { + + public String jj; + + private String firstName; + + private String lastName; + + private String age; + + private String eyesColor; + + private String hairColor; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getAge() { + return age; + } + + public void setAge(String age) { + this.age = age; + } + + public String getEyesColor() { + return eyesColor; + } + + public void setEyesColor(String eyesColor) { + this.eyesColor = eyesColor; + } + + public String getHairColor() { + return hairColor; + } + + public void setHairColor(String hairColor) { + this.hairColor = hairColor; + } + +} diff --git a/spring-groovy/src/main/resources/xml-bean-config.xml b/spring-groovy/src/main/resources/xml-bean-config.xml new file mode 100644 index 0000000000..3b880bbd70 --- /dev/null +++ b/spring-groovy/src/main/resources/xml-bean-config.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/spring-groovy/src/test/java/com/baeldug/groovyconfig/GroovyConfigurationTest.java b/spring-groovy/src/test/java/com/baeldug/groovyconfig/GroovyConfigurationTest.java new file mode 100644 index 0000000000..91ca6dbfe9 --- /dev/null +++ b/spring-groovy/src/test/java/com/baeldug/groovyconfig/GroovyConfigurationTest.java @@ -0,0 +1,50 @@ +package com.baeldug.groovyconfig; + +import static org.junit.Assert.assertEquals; + +import java.io.File; + +import org.junit.Test; +import org.springframework.context.support.GenericGroovyApplicationContext; + +public class GroovyConfigurationTest { + + private static final String FILE_NAME = "GroovyBeanConfig.groovy"; + private static final String FILE_PATH = "src/main/java/com/baeldug/groovyconfig/"; + + @Test + public void whenGroovyConfig_thenCorrectPerson() throws Exception { + + GenericGroovyApplicationContext ctx = new GenericGroovyApplicationContext(); + ctx.load("file:" + getPathPart() + FILE_NAME); + ctx.refresh(); + + JavaPersonBean j = ctx.getBean(JavaPersonBean.class); + + assertEquals("32", j.getAge()); + assertEquals("blue", j.getEyesColor()); + assertEquals("black", j.getHairColor()); + } + + @Test + public void whenGroovyConfig_thenCorrectListLength() throws Exception { + + GenericGroovyApplicationContext ctx = new GenericGroovyApplicationContext(); + ctx.load("file:" + getPathPart() + FILE_NAME); + ctx.refresh(); + + BandsBean bb = ctx.getBean(BandsBean.class); + + assertEquals(3, bb.getBandsList() + .size()); + } + + private String getPathPart() { + String pathPart = new File(".").getAbsolutePath(); + pathPart = pathPart.replace(".", ""); + pathPart = pathPart.replace("\\", "/"); + pathPart = pathPart + FILE_PATH; + + return pathPart; + } +} diff --git a/spring-groovy/src/test/java/com/baeldug/groovyconfig/JavaConfigurationTest.java b/spring-groovy/src/test/java/com/baeldug/groovyconfig/JavaConfigurationTest.java new file mode 100644 index 0000000000..2d9b1000ff --- /dev/null +++ b/spring-groovy/src/test/java/com/baeldug/groovyconfig/JavaConfigurationTest.java @@ -0,0 +1,24 @@ +package com.baeldug.groovyconfig; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class JavaConfigurationTest { + + @Test + public void whenJavaConfig_thenCorrectPerson() { + + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); + ctx.register(JavaBeanConfig.class); + ctx.refresh(); + + JavaPersonBean j = ctx.getBean(JavaPersonBean.class); + + assertEquals("31", j.getAge()); + assertEquals("green", j.getEyesColor()); + assertEquals("blond", j.getHairColor()); + + } +} diff --git a/spring-groovy/src/test/java/com/baeldug/groovyconfig/XmlConfigurationTest.java b/spring-groovy/src/test/java/com/baeldug/groovyconfig/XmlConfigurationTest.java new file mode 100644 index 0000000000..3ee724207c --- /dev/null +++ b/spring-groovy/src/test/java/com/baeldug/groovyconfig/XmlConfigurationTest.java @@ -0,0 +1,23 @@ +package com.baeldug.groovyconfig; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class XmlConfigurationTest { + + @Test + public void whenXmlConfig_thenCorrectPerson() { + final ApplicationContext applicationContext = new ClassPathXmlApplicationContext("xml-bean-config.xml"); + + JavaPersonBean j = (JavaPersonBean) applicationContext.getBean("JavaPersonBean"); + + assertEquals("30", j.getAge()); + assertEquals("brown", j.getEyesColor()); + assertEquals("brown", j.getHairColor()); + + } + +}