diff --git a/assertj/pom.xml b/assertj/pom.xml
index ce97278a97..26f45cfa26 100644
--- a/assertj/pom.xml
+++ b/assertj/pom.xml
@@ -9,10 +9,16 @@
1.0.0-SNAPSHOT
+
+ com.google.guava
+ guava
+ 19.0
+
junit
junit
4.12
+ test
org.assertj
@@ -20,6 +26,11 @@
3.4.1
test
+
+ org.assertj
+ assertj-guava
+ 3.0.0
+
diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java
new file mode 100644
index 0000000000..558ce87d70
--- /dev/null
+++ b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java
@@ -0,0 +1,96 @@
+package com.baeldung.assertj.introduction;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.Multimap;
+import com.google.common.collect.Multimaps;
+import com.google.common.collect.Range;
+import com.google.common.collect.Sets;
+import com.google.common.collect.Table;
+import com.google.common.collect.TreeRangeMap;
+import com.google.common.io.Files;
+import org.assertj.guava.data.MapEntry;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.HashMap;
+
+import static org.assertj.guava.api.Assertions.assertThat;
+import static org.assertj.guava.api.Assertions.entry;
+
+public class AssertJGuavaTest {
+
+ @Test
+ public void givenTwoEmptyFiles_whenComparingContent_thenEqual() throws Exception {
+ final File temp = File.createTempFile("bael", "dung");
+ final File temp2 = File.createTempFile("bael", "dung2");
+
+ assertThat(Files.asByteSource(temp))
+ .hasSize(0)
+ .hasSameContentAs(Files.asByteSource(temp2));
+ }
+
+ @Test
+ public void givenMultimap_whenVerifying_thenCorrect() throws Exception {
+ final Multimap mmap = Multimaps.newMultimap(new HashMap<>(), Sets::newHashSet);
+ mmap.put(1, "one");
+ mmap.put(1, "1");
+
+ assertThat(mmap)
+ .hasSize(2)
+ .containsKeys(1)
+ .contains(entry(1, "one"))
+ .contains(entry(1, "1"));
+ }
+
+ @Test
+ public void givenOptional_whenVerifyingContent_thenShouldBeEqual() throws Exception {
+ final Optional something = Optional.of("something");
+
+ assertThat(something)
+ .isPresent()
+ .extractingValue()
+ .isEqualTo("something");
+ }
+
+ @Test
+ public void givenRange_whenVerifying_thenShouldBeCorrect() throws Exception {
+ final Range range = Range.openClosed("a", "g");
+
+ assertThat(range)
+ .hasOpenedLowerBound()
+ .isNotEmpty()
+ .hasClosedUpperBound()
+ .contains("b");
+ }
+
+ @Test
+ public void givenRangeMap_whenVerifying_thenShouldBeCorrect() throws Exception {
+ final TreeRangeMap map = TreeRangeMap.create();
+
+ map.put(Range.closed(0, 60), "F");
+ map.put(Range.closed(61, 70), "D");
+
+ assertThat(map)
+ .isNotEmpty()
+ .containsKeys(0)
+ .contains(MapEntry.entry(34, "F"));
+ }
+
+ @Test
+ public void givenTable_whenVerifying_thenShouldBeCorrect() throws Exception {
+ final Table table = HashBasedTable.create(2, 2);
+
+ table.put(1, "A", "PRESENT");
+ table.put(1, "B", "ABSENT");
+
+ assertThat(table)
+ .hasRowCount(1)
+ .containsValues("ABSENT")
+ .containsCell(1, "B", "ABSENT");
+ }
+
+
+
+
+}
diff --git a/dependency-injection/build.gradle b/dependency-injection/build.gradle
deleted file mode 100644
index 968636154d..0000000000
--- a/dependency-injection/build.gradle
+++ /dev/null
@@ -1,43 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'eclipse'
-
-allprojects {
- apply plugin: 'java'
- sourceCompatibility = 1.6
- targetCompatibility = 1.6
-}
-
-repositories {
- mavenCentral()
-}
-
-sourceSets {
- main {
- resources.srcDirs = ["src/main/java","src/main/resources"]
- }
- test {
- resources.srcDirs = ["src/main/java", "src/main/resources", "src/test/resources"]
- }
-}
-
-configurations {
- compile
-}
-
-test {
- testLogging {
- events 'started', 'passed'
- }
-}
-
-dependencies {
- testCompile('junit:junit:4.11')
- testCompile('org.mockito:mockito-all:1.10.19')
- testCompile group: 'org.springframework', name: 'spring-test', version: '4.2.6.RELEASE'
- testCompile group: 'org.springframework', name: 'spring-core', version: '4.2.6.RELEASE'
- testCompile group: 'org.springframework', name: 'spring-beans', version: '4.2.6.RELEASE'
- testCompile group: 'org.springframework', name: 'spring-context', version: '4.2.6.RELEASE'
- testCompile group: 'javax.inject', name: 'javax.inject', version: '1'
-
- testRuntime('junit:junit:4.11')
-}
diff --git a/dependency-injection/docs/inject-qualifier-demo-classdiagram.png b/dependency-injection/docs/inject-qualifier-demo-classdiagram.png
deleted file mode 100644
index 7366999ec1..0000000000
Binary files a/dependency-injection/docs/inject-qualifier-demo-classdiagram.png and /dev/null differ
diff --git a/dependency-injection/docs/inject-qualifier-demo-classdiagram.xml b/dependency-injection/docs/inject-qualifier-demo-classdiagram.xml
deleted file mode 100644
index 704801bdf2..0000000000
--- a/dependency-injection/docs/inject-qualifier-demo-classdiagram.xml
+++ /dev/null
@@ -1 +0,0 @@
-7VptbyI3EP41SO2Hi1iWl+RjAuSuUpqml6jX+xQZ1uz6zrumXhPC/fqb8Y7ZV0IaXqpGICTWw3hsz/N4Zmxo+cP4+aNm8+h3FXDZ6rSD55Y/anU6XrvvwwdKVpmk3yZBqEVASrngXvzgridJFyLgaUnRKCWNmJeFU5UkfGpKMqa1WpbVZkqWR52z0I2YC+6nTNalX0Rgokx63unn8k9chJEb2etfZN9M2PR7qNUiofFaHX9mX9nXMXO2aKFpxAK1LIj8MfhVKwWW8Sl+HnKJvnVuy/pdb/h2PW/NE5rblg5uHmbl1s4DcAU1lTaRClXC5DiXXtn1cbTQhlZkYgmPHjzCoHr1N8lt4ys2znq2GVwiMmh1zpOHSCSZ9FrAjLIu37gxK2IDWxgFonwGN0rNaZz6KmnhqVroKa0D2pY3TIectAaZCFdY6Eae+chVzGHKoKC5ZEY8lcnAiFPhWi/3KzyQa5vdTHN5YnJBRq8Fl8GfCybFTHD9W/INaDzisarBkS5FLFmCfi94eqYS40DCNtgJwZ+jKXiEaxA8cW0EEPqSvjDovKtpJGRww1ZqgR5JDbDVta4ipcUPMMvcGPC1NoQGML+ocY89CTTNU9C5c2Bgz0x0w1IUoM5UScnmqZisJxwDLCK5UsaomJTcSpEQQyUVLAMc4PbPC6jjWrmLPc2IUhwaEAOW+abuuq0YFTd0h+LVLqCTiQLoH1qdPosRiGSS4ge0Jfo+nbMEnkN8Bj7IYMRhjwQ8ma5gQZkODFdUa/mXYPxST4TRTK/yDk4/EE9O9y3jwtQ3j1u29sIkoHNhHjVyA2yWejmxU6PVd+7gT5Ql/qzACBI5wks+QwvNdId5T0US3lidUTeXfCaoUbSMhOH3IMc5LSGfYdQBezNpg1UkAliRjXqGGZYxGOk6VyIxlh69K3gDi4YY6XqwriG0ATfXhjeqazNUCayPQT/oxmF7LDlukQZmu4Dxama71LSN2d3u7sQmEwVi14CVohqxMmBdNrUx7F+jGgMWNgMRjA82I3yw5ktQ+3WoUVSFULIJl3cqFUYotK8z3Qq0R0BvQEhtQ+98d/B6DeA1xoMQEmByCVl4KTTPU9UfiU1djw+fxrePo/Hd+HY0vh1+9R7/AoVgU9BosP/Lry9GtieVWyuFkD1MtvOmyQJjqhPb0PMU9Y4U9Qa0IbZGvT2kc48i7P+rVObPwthhzroX1MSBvLP2gJp3XAtwBlaN1vKrimuKIsXi2iP09lddU9c7pByoOEacE8Au8/nUdiayeVKvHF9wKcPhnRoxeeM4nXZlnHY21fVRaot+t505KadXNoOcbGufvIp/RL9C4G6su07HhwMcH+jbfq8MsTs9F8KP128IPxcVhr4l/NDJpXyaaNsKJstL90ZDjD8lm9cmG7efdimxG9F2erugTXntVGLvDb0eeXAbensosekusFpiwxVmtkehmDzt2GNg7vA9xo71qCTad3l4NvBwX61LRKjc/HMnqNZuhcpxIhXm2EPesHruar5QBRL3j3/F6iZTrI8SZSKuT2XSscskVxfRNvT79cy5rpZL165OuBMR6pftp0ppp7i73lq7lEqNgO8l8Nbv2U+10o74NRRLjfjtoVjymm6TT9XSf7FrG8qlw+3a+nn2M/9nAbe39kpmC8Q29W10JPoKixtMj5XM/RqsaRsjsHtIht3KdZVf31qNJek+MmH9FPlOfVy5l/HPj+jk+mnPlcrvxLveBR1tXkoOh3Gus/F+ndt3t9euciI6HcO59RPTO3Nu/Qq/KcMdyLv1Y8g7827PXWu7qDs4GHehmf8nLvvtJP/joT/+CQ==
\ No newline at end of file
diff --git a/dependency-injection/pom.xml b/dependency-injection/pom.xml
index f87d061a53..667ea87402 100644
--- a/dependency-injection/pom.xml
+++ b/dependency-injection/pom.xml
@@ -1,81 +1,83 @@
-
+
- 4.0.0
+ 4.0.0
- com.baeldung
- dependency-injection
- 0.0.1-SNAPSHOT
- war
+ com.baeldung
+ dependency-injection
+ 0.0.1-SNAPSHOT
+ war
- @Resource vs @Inject vs @Autowired
- Accompanying the demonstration of the use of the annotations related to injection mechanisms, namely @Resource, @Inject, and @Autowired
+ Resource vs Inject vs Autowired
+ Accompanying the demonstration of the use of the annotations related to injection mechanisms, namely
+ Resource, Inject, and Autowired
+
-
-
- junit
- junit
- 4.11
- test
-
-
- org.mockito
- mockito-all
- 1.10.19
-
-
- org.springframework
- spring-test
- 4.2.6.RELEASE
-
-
- org.springframework
- spring-core
- 4.2.6.RELEASE
-
-
- org.springframework
- spring-beans
- 4.2.6.RELEASE
-
-
- org.springframework
- spring-context
- 4.2.6.RELEASE
-
-
- javax.inject
- javax.inject
- 1
-
-
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+ org.mockito
+ mockito-all
+ 1.10.19
+
+
+ org.springframework
+ spring-test
+ 4.2.6.RELEASE
+
+
+ org.springframework
+ spring-core
+ 4.2.6.RELEASE
+
+
+ org.springframework
+ spring-beans
+ 4.2.6.RELEASE
+
+
+ org.springframework
+ spring-context
+ 4.2.6.RELEASE
+
+
+ javax.inject
+ javax.inject
+ 1
+
+
-
-
-
- maven-compiler-plugin
-
- 1.6
- 1.6
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- **/*Test.java
-
-
-
-
-
+
+
+
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*Test.java
+
+
+
+
+
-
-
- java.net
- https://maven.java.net/content/repositories/releases/
-
-
+
+
+ java.net
+ https://maven.java.net/content/repositories/releases/
+
+
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
similarity index 79%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
index 41dfdb09e2..48c4495465 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
@@ -4,6 +4,6 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
-@ComponentScan(basePackages={"com.baeldung.dependency"})
+@ComponentScan(basePackages = {"com.baeldung.dependency"})
public class ApplicationContextTestAutowiredName {
}
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
new file mode 100644
index 0000000000..ef6690ab4b
--- /dev/null
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
@@ -0,0 +1,24 @@
+package com.baeldung.configuration;
+
+import com.baeldung.dependency.AnotherArbitraryDependency;
+import com.baeldung.dependency.ArbitraryDependency;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ApplicationContextTestAutowiredQualifier {
+
+ @Bean
+ public ArbitraryDependency autowiredFieldDependency() {
+ ArbitraryDependency autowiredFieldDependency = new ArbitraryDependency();
+
+ return autowiredFieldDependency;
+ }
+
+ @Bean
+ public ArbitraryDependency anotherAutowiredFieldDependency() {
+ ArbitraryDependency anotherAutowiredFieldDependency = new AnotherArbitraryDependency();
+
+ return anotherAutowiredFieldDependency;
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
similarity index 99%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
index 703a8214b9..240bc466b7 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
@@ -1,10 +1,9 @@
package com.baeldung.configuration;
+import com.baeldung.dependency.ArbitraryDependency;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import com.baeldung.dependency.ArbitraryDependency;
-
@Configuration
public class ApplicationContextTestAutowiredType {
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectName.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
similarity index 99%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
index 7fe8306a39..851aa0b8ee 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
@@ -1,10 +1,9 @@
package com.baeldung.configuration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
import com.baeldung.dependency.ArbitraryDependency;
import com.baeldung.dependency.YetAnotherArbitraryDependency;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
@Configuration
public class ApplicationContextTestInjectName {
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
similarity index 50%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
index 557ba78aca..59af5a91bb 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
@@ -1,23 +1,22 @@
package com.baeldung.configuration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
import com.baeldung.dependency.AnotherArbitraryDependency;
import com.baeldung.dependency.ArbitraryDependency;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
@Configuration
public class ApplicationContextTestInjectQualifier {
- @Bean
- public ArbitraryDependency defaultFile() {
- ArbitraryDependency defaultFile = new ArbitraryDependency();
- return defaultFile;
- }
+ @Bean
+ public ArbitraryDependency defaultFile() {
+ ArbitraryDependency defaultFile = new ArbitraryDependency();
+ return defaultFile;
+ }
- @Bean
- public ArbitraryDependency namedFile() {
- ArbitraryDependency namedFile = new AnotherArbitraryDependency();
- return namedFile;
- }
+ @Bean
+ public ArbitraryDependency namedFile() {
+ ArbitraryDependency namedFile = new AnotherArbitraryDependency();
+ return namedFile;
+ }
}
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectType.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
similarity index 60%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
index f84fa8f3a2..1e1f01f269 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
@@ -1,16 +1,15 @@
package com.baeldung.configuration;
+import com.baeldung.dependency.ArbitraryDependency;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import com.baeldung.dependency.ArbitraryDependency;
-
@Configuration
public class ApplicationContextTestInjectType {
- @Bean
- public ArbitraryDependency injectDependency() {
- ArbitraryDependency injectDependency = new ArbitraryDependency();
- return injectDependency;
- }
+ @Bean
+ public ArbitraryDependency injectDependency() {
+ ArbitraryDependency injectDependency = new ArbitraryDependency();
+ return injectDependency;
+ }
}
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
similarity index 92%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
index f53002feca..cb1b5981e8 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
@@ -1,14 +1,14 @@
package com.baeldung.configuration;
-import java.io.File;
-
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import java.io.File;
+
@Configuration
public class ApplicationContextTestResourceNameType {
- @Bean(name="namedFile")
+ @Bean(name = "namedFile")
public File namedFile() {
File namedFile = new File("namedFile.txt");
return namedFile;
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
similarity index 88%
rename from dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
rename to dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
index 18f5af4282..c9aa2f4a7d 100644
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
+++ b/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
@@ -1,20 +1,20 @@
package com.baeldung.configuration;
-import java.io.File;
-
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import java.io.File;
+
@Configuration
public class ApplicationContextTestResourceQualifier {
- @Bean(name="defaultFile")
+ @Bean(name = "defaultFile")
public File defaultFile() {
File defaultFile = new File("defaultFile.txt");
return defaultFile;
}
- @Bean(name="namedFile")
+ @Bean(name = "namedFile")
public File namedFile() {
File namedFile = new File("namedFile.txt");
return namedFile;
diff --git a/dependency-injection/src/test/java/com/baeldung/dependency/AnotherArbitraryDependency.java b/dependency-injection/src/main/java/com/baeldung/dependency/AnotherArbitraryDependency.java
similarity index 100%
rename from dependency-injection/src/test/java/com/baeldung/dependency/AnotherArbitraryDependency.java
rename to dependency-injection/src/main/java/com/baeldung/dependency/AnotherArbitraryDependency.java
diff --git a/dependency-injection/src/test/java/com/baeldung/dependency/ArbitraryDependency.java b/dependency-injection/src/main/java/com/baeldung/dependency/ArbitraryDependency.java
similarity index 83%
rename from dependency-injection/src/test/java/com/baeldung/dependency/ArbitraryDependency.java
rename to dependency-injection/src/main/java/com/baeldung/dependency/ArbitraryDependency.java
index d120e8daf7..3c90492d2c 100644
--- a/dependency-injection/src/test/java/com/baeldung/dependency/ArbitraryDependency.java
+++ b/dependency-injection/src/main/java/com/baeldung/dependency/ArbitraryDependency.java
@@ -2,7 +2,7 @@ package com.baeldung.dependency;
import org.springframework.stereotype.Component;
-@Component(value="autowiredFieldDependency")
+@Component(value = "autowiredFieldDependency")
public class ArbitraryDependency {
private final String label = "Arbitrary Dependency";
diff --git a/dependency-injection/src/test/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java b/dependency-injection/src/main/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
similarity index 100%
rename from dependency-injection/src/test/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
rename to dependency-injection/src/main/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java
index 0455ca500c..cbdac68543 100644
--- a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java
@@ -1,8 +1,7 @@
package com.baeldung.autowired;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
+import com.baeldung.configuration.ApplicationContextTestAutowiredName;
+import com.baeldung.dependency.ArbitraryDependency;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -10,22 +9,21 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestAutowiredName;
-import com.baeldung.dependency.ArbitraryDependency;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestAutowiredName.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestAutowiredName.class)
public class FieldAutowiredNameTest {
@Autowired
private ArbitraryDependency autowiredFieldDependency;
@Test
- public void givenAutowiredAnnotation_WhenOnField_ThenDependencyValid(){
+ public void givenAutowiredAnnotation_WhenOnField_ThenDependencyValid() {
assertNotNull(autowiredFieldDependency);
- assertEquals("Arbitrary Dependency",
- autowiredFieldDependency.toString());
- }
+ assertEquals("Arbitrary Dependency", autowiredFieldDependency.toString());
+ }
}
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java
index 811daebaf6..b736871f85 100644
--- a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java
@@ -1,8 +1,7 @@
package com.baeldung.autowired;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
+import com.baeldung.configuration.ApplicationContextTestAutowiredType;
+import com.baeldung.dependency.ArbitraryDependency;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -10,13 +9,13 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestAutowiredType;
-import com.baeldung.dependency.ArbitraryDependency;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestAutowiredType.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestAutowiredType.class)
public class FieldAutowiredTest {
@Autowired
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java b/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java
index d72d38e9a8..cbc3d56f67 100644
--- a/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java
@@ -1,8 +1,7 @@
package com.baeldung.autowired;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
+import com.baeldung.configuration.ApplicationContextTestAutowiredQualifier;
+import com.baeldung.dependency.ArbitraryDependency;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,13 +10,13 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestAutowiredQualifier;
-import com.baeldung.dependency.ArbitraryDependency;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestAutowiredQualifier.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestAutowiredQualifier.class)
public class FieldQualifierAutowiredTest {
@Autowired
@@ -29,15 +28,14 @@ public class FieldQualifierAutowiredTest {
private ArbitraryDependency fieldDependency2;
@Test
- public void givenAutowiredQualifier_WhenOnField_ThenDep1Valid(){
+ public void givenAutowiredQualifier_WhenOnField_ThenDep1Valid() {
assertNotNull(fieldDependency1);
assertEquals("Arbitrary Dependency", fieldDependency1.toString());
}
@Test
- public void givenAutowiredQualifier_WhenOnField_ThenDep2Valid(){
+ public void givenAutowiredQualifier_WhenOnField_ThenDep2Valid() {
assertNotNull(fieldDependency2);
- assertEquals("Another Arbitrary Dependency",
- fieldDependency2.toString());
+ assertEquals("Another Arbitrary Dependency", fieldDependency2.toString());
}
}
diff --git a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java b/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
deleted file mode 100644
index 138fbc46c5..0000000000
--- a/dependency-injection/src/test/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.baeldung.configuration;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import com.baeldung.dependency.AnotherArbitraryDependency;
-import com.baeldung.dependency.ArbitraryDependency;
-
-@Configuration
-public class ApplicationContextTestAutowiredQualifier {
-
- @Bean
- public ArbitraryDependency autowiredFieldDependency() {
- ArbitraryDependency autowiredFieldDependency = new ArbitraryDependency();
-
- return autowiredFieldDependency;
- }
-
- @Bean
- public ArbitraryDependency anotherAutowiredFieldDependency() {
- ArbitraryDependency anotherAutowiredFieldDependency = new AnotherArbitraryDependency();
-
- return anotherAutowiredFieldDependency;
- }
-}
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java b/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java
index 0f0429ea94..665c9f1ddc 100644
--- a/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java
@@ -1,24 +1,23 @@
package com.baeldung.inject;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
+import com.baeldung.configuration.ApplicationContextTestInjectName;
+import com.baeldung.dependency.ArbitraryDependency;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestInjectName;
-import com.baeldung.dependency.ArbitraryDependency;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestInjectName.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestInjectName.class)
public class FieldByNameInjectTest {
@Inject
@@ -28,7 +27,6 @@ public class FieldByNameInjectTest {
@Test
public void givenInjectQualifier_WhenSetOnField_ThenDependencyValid() {
assertNotNull(yetAnotherFieldInjectDependency);
- assertEquals("Yet Another Arbitrary Dependency",
- yetAnotherFieldInjectDependency.toString());
+ assertEquals("Yet Another Arbitrary Dependency", yetAnotherFieldInjectDependency.toString());
}
}
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java b/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java
index 7cbba63113..7561c39e76 100644
--- a/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java
@@ -1,31 +1,30 @@
package com.baeldung.inject;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import javax.inject.Inject;
+import com.baeldung.configuration.ApplicationContextTestInjectType;
+import com.baeldung.dependency.ArbitraryDependency;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestInjectType;
-import com.baeldung.dependency.ArbitraryDependency;
+import javax.inject.Inject;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestInjectType.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestInjectType.class)
public class FieldInjectTest {
@Inject
private ArbitraryDependency fieldInjectDependency;
@Test
- public void givenInjectAnnotation_WhenOnField_ThenValidDependency(){
+ public void givenInjectAnnotation_WhenOnField_ThenValidDependency() {
assertNotNull(fieldInjectDependency);
- assertEquals("Arbitrary Dependency",
- fieldInjectDependency.toString());
+ assertEquals("Arbitrary Dependency", fieldInjectDependency.toString());
}
}
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java b/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java
index f0fc5866a3..7e5f7e7453 100644
--- a/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java
@@ -1,10 +1,7 @@
package com.baeldung.inject;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import javax.inject.Inject;
-
+import com.baeldung.configuration.ApplicationContextTestInjectQualifier;
+import com.baeldung.dependency.ArbitraryDependency;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -12,12 +9,14 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestInjectQualifier;
-import com.baeldung.dependency.ArbitraryDependency;
+import javax.inject.Inject;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestInjectQualifier.class)
+@ContextConfiguration(loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestInjectQualifier.class)
public class FieldQualifierInjectTest {
@Inject
@@ -29,16 +28,14 @@ public class FieldQualifierInjectTest {
private ArbitraryDependency namedDependency;
@Test
- public void givenInjectQualifier_WhenOnField_ThenDefaultFileValid(){
+ public void givenInjectQualifier_WhenOnField_ThenDefaultFileValid() {
assertNotNull(defaultDependency);
- assertEquals("Arbitrary Dependency",
- defaultDependency.toString());
+ assertEquals("Arbitrary Dependency", defaultDependency.toString());
}
@Test
- public void givenInjectQualifier_WhenOnField_ThenNamedFileValid(){
+ public void givenInjectQualifier_WhenOnField_ThenNamedFileValid() {
assertNotNull(defaultDependency);
- assertEquals("Another Arbitrary Dependency",
- namedDependency.toString());
+ assertEquals("Another Arbitrary Dependency", namedDependency.toString());
}
}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java b/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java
index ed73ae8d59..ef7e7b0aeb 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java
@@ -1,30 +1,29 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
+import com.baeldung.configuration.ApplicationContextTestResourceNameType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceNameType;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceNameType.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceNameType.class)
public class FieldResourceInjectionTest {
- @Resource(name="namedFile")
+ @Resource(name = "namedFile")
private File defaultFile;
@Test
- public void givenResourceAnnotation_WhenOnField_ThenDependencyValid(){
+ public void givenResourceAnnotation_WhenOnField_ThenDependencyValid() {
assertNotNull(defaultFile);
assertEquals("namedFile.txt", defaultFile.getName());
}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java b/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java
index e512b6fe0a..95e9fc0bd5 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java
@@ -1,12 +1,6 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
-
+import com.baeldung.configuration.ApplicationContextTestResourceQualifier;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -14,34 +8,38 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceQualifier;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceQualifier.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceQualifier.class)
public class MethodByQualifierResourceTest {
- private File arbDependency;
- private File anotherArbDependency;
+ private File arbDependency;
+ private File anotherArbDependency;
- @Test
- public void givenResourceQualifier_WhenSetter_ThenValidDependencies(){
- assertNotNull(arbDependency);
- assertEquals("namedFile.txt", arbDependency.getName());
- assertNotNull(anotherArbDependency);
- assertEquals("defaultFile.txt", anotherArbDependency.getName());
- }
+ @Test
+ public void givenResourceQualifier_WhenSetter_ThenValidDependencies() {
+ assertNotNull(arbDependency);
+ assertEquals("namedFile.txt", arbDependency.getName());
+ assertNotNull(anotherArbDependency);
+ assertEquals("defaultFile.txt", anotherArbDependency.getName());
+ }
- @Resource
- @Qualifier("namedFile")
- public void setArbDependency(File arbDependency) {
- this.arbDependency = arbDependency;
- }
+ @Resource
+ @Qualifier("namedFile")
+ public void setArbDependency(File arbDependency) {
+ this.arbDependency = arbDependency;
+ }
- @Resource
- @Qualifier("defaultFile")
- public void setAnotherArbDependency(File anotherArbDependency) {
- this.anotherArbDependency = anotherArbDependency;
- }
+ @Resource
+ @Qualifier("defaultFile")
+ public void setAnotherArbDependency(File anotherArbDependency) {
+ this.anotherArbDependency = anotherArbDependency;
+ }
}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java b/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java
index edcf9b12ea..ad9a9a4fb6 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java
@@ -1,24 +1,22 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
-
+import com.baeldung.configuration.ApplicationContextTestResourceNameType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceNameType;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceNameType.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceNameType.class)
public class MethodByTypeResourceTest {
private File defaultFile;
@@ -29,7 +27,7 @@ public class MethodByTypeResourceTest {
}
@Test
- public void givenResourceAnnotation_WhenSetter_ThenValidDependency(){
+ public void givenResourceAnnotation_WhenSetter_ThenValidDependency() {
assertNotNull(defaultFile);
assertEquals("namedFile.txt", defaultFile.getName());
}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java b/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java
index 38e9db8737..1622d8896c 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java
@@ -1,35 +1,33 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
-
+import com.baeldung.configuration.ApplicationContextTestResourceNameType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceNameType;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceNameType.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceNameType.class)
public class MethodResourceInjectionTest {
private File defaultFile;
- @Resource(name="namedFile")
+ @Resource(name = "namedFile")
protected void setDefaultFile(File defaultFile) {
this.defaultFile = defaultFile;
}
@Test
- public void givenResourceAnnotation_WhenSetter_ThenDependencyValid(){
+ public void givenResourceAnnotation_WhenSetter_ThenDependencyValid() {
assertNotNull(defaultFile);
assertEquals("namedFile.txt", defaultFile.getName());
}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java b/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
index 6dbe77da39..da104ecaae 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
@@ -1,25 +1,24 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
+import com.baeldung.configuration.ApplicationContextTestResourceNameType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceNameType;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceNameType.class)
+@ContextConfiguration(loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceNameType.class)
public class NamedResourceTest {
- @Resource(name="namedFile")
+ @Resource(name = "namedFile")
private File testFile;
@Test
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java b/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java
index 9afa0cf4f9..024c8e2bbe 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java
@@ -1,11 +1,6 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
+import com.baeldung.configuration.ApplicationContextTestResourceQualifier;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -13,30 +8,34 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceQualifier;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
- loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceQualifier.class)
+ loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceQualifier.class)
public class QualifierResourceInjectionTest {
@Resource
@Qualifier("defaultFile")
private File dependency1;
-
+
@Resource
@Qualifier("namedFile")
private File dependency2;
@Test
- public void givenResourceAnnotation_WhenField_ThenDependency1Valid(){
+ public void givenResourceAnnotation_WhenField_ThenDependency1Valid() {
assertNotNull(dependency1);
assertEquals("defaultFile.txt", dependency1.getName());
}
@Test
- public void givenResourceQualifier_WhenField_ThenDependency2Valid(){
+ public void givenResourceQualifier_WhenField_ThenDependency2Valid() {
assertNotNull(dependency2);
assertEquals("namedFile.txt", dependency2.getName());
}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java b/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java
index 8a249fea4e..aa7cfda975 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java
+++ b/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java
@@ -1,23 +1,21 @@
package com.baeldung.resource;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-
-import javax.annotation.Resource;
-
+import com.baeldung.configuration.ApplicationContextTestResourceNameType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import com.baeldung.configuration.ApplicationContextTestResourceNameType;
+import javax.annotation.Resource;
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
- classes=ApplicationContextTestResourceNameType.class)
+@ContextConfiguration(loader = AnnotationConfigContextLoader.class,
+ classes = ApplicationContextTestResourceNameType.class)
public class SetterResourceInjectionTest {
private File defaultFile;
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Name.xml b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Name.xml
deleted file mode 100644
index d7fe3abcb3..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Name.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Qualifier.xml b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Qualifier.xml
deleted file mode 100644
index d7fe3abcb3..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Qualifier.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Type.xml b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Type.xml
deleted file mode 100644
index c65b85ccf4..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Type.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Name.xml b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Name.xml
deleted file mode 100644
index 610e8687a7..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Name.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Qualifier.xml b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Qualifier.xml
deleted file mode 100644
index 627ec37914..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Qualifier.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Type.xml b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Type.xml
deleted file mode 100644
index 405164e603..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Type.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Resource-NameType.xml b/dependency-injection/src/test/resources/applicationContextTest-@Resource-NameType.xml
deleted file mode 100644
index 82cbe97157..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Resource-NameType.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Resource-Qualifier.xml b/dependency-injection/src/test/resources/applicationContextTest-@Resource-Qualifier.xml
deleted file mode 100644
index 1680a6f66a..0000000000
--- a/dependency-injection/src/test/resources/applicationContextTest-@Resource-Qualifier.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/guava/src/test/java/org/baeldung/hamcrest/Animal.java b/guava/src/test/java/org/baeldung/hamcrest/Animal.java
new file mode 100644
index 0000000000..1a0266f5a3
--- /dev/null
+++ b/guava/src/test/java/org/baeldung/hamcrest/Animal.java
@@ -0,0 +1,33 @@
+package org.baeldung.hamcrest;
+
+public class Animal {
+ String name;
+ boolean wild;
+ String sound;
+
+ public Animal(String name, boolean wild, String sound) {
+ super();
+ this.name = name;
+ this.wild = wild;
+ this.sound = sound;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public boolean isWild() {
+ return wild;
+ }
+ public void setWild(boolean wild) {
+ this.wild = wild;
+ }
+ public String getSound() {
+ return sound;
+ }
+ public void setSound(String sound) {
+ this.sound = sound;
+ }
+
+}
diff --git a/guava/src/test/java/org/baeldung/hamcrest/Cat.java b/guava/src/test/java/org/baeldung/hamcrest/Cat.java
new file mode 100644
index 0000000000..892e5b6e30
--- /dev/null
+++ b/guava/src/test/java/org/baeldung/hamcrest/Cat.java
@@ -0,0 +1,13 @@
+package org.baeldung.hamcrest;
+
+public class Cat extends Animal {
+
+ public Cat() {
+ super("cat", false, "meow");
+ }
+
+ public String makeSound() {
+ return getSound();
+ }
+
+}
diff --git a/guava/src/test/java/org/baeldung/hamcrest/HamcrestMatcherTest.java b/guava/src/test/java/org/baeldung/hamcrest/HamcrestMatcherTest.java
new file mode 100644
index 0000000000..b3756d609f
--- /dev/null
+++ b/guava/src/test/java/org/baeldung/hamcrest/HamcrestMatcherTest.java
@@ -0,0 +1,331 @@
+package org.baeldung.hamcrest;
+
+import org.junit.Test;
+
+import java.util.*;
+
+import static org.baeldung.hamcrest.IsPositiveInteger.isAPositiveInteger;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.*;
+import static org.hamcrest.beans.HasProperty.hasProperty;
+import static org.hamcrest.beans.HasPropertyWithValue.hasProperty;
+import static org.hamcrest.beans.SamePropertyValuesAs.samePropertyValuesAs;
+import static org.hamcrest.collection.IsArrayContaining.hasItemInArray;
+import static org.hamcrest.collection.IsArrayContainingInAnyOrder.arrayContainingInAnyOrder;
+import static org.hamcrest.collection.IsArrayContainingInOrder.arrayContaining;
+import static org.hamcrest.collection.IsArrayWithSize.arrayWithSize;
+import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
+import static org.hamcrest.collection.IsEmptyCollection.empty;
+import static org.hamcrest.collection.IsIn.isIn;
+import static org.hamcrest.collection.IsIn.isOneOf;
+import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
+import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
+import static org.hamcrest.collection.IsMapContaining.hasEntry;
+import static org.hamcrest.collection.IsMapContaining.hasKey;
+import static org.hamcrest.collection.IsMapContaining.hasValue;
+import static org.hamcrest.core.AllOf.allOf;
+import static org.hamcrest.core.AnyOf.anyOf;
+import static org.hamcrest.core.Every.everyItem;
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
+import static org.hamcrest.core.IsNot.not;
+import static org.hamcrest.core.IsNull.notNullValue;
+import static org.hamcrest.core.IsSame.sameInstance;
+import static org.hamcrest.core.StringContains.containsString;
+import static org.hamcrest.core.StringEndsWith.endsWith;
+import static org.hamcrest.core.StringStartsWith.startsWith;
+import static org.hamcrest.object.HasToString.hasToString;
+import static org.hamcrest.object.IsCompatibleType.typeCompatibleWith;
+import static org.hamcrest.text.IsEmptyString.isEmptyOrNullString;
+import static org.hamcrest.text.IsEmptyString.isEmptyString;
+import static org.hamcrest.text.IsEqualIgnoringCase.equalToIgnoringCase;
+import static org.hamcrest.text.IsEqualIgnoringWhiteSpace.equalToIgnoringWhiteSpace;
+import static org.hamcrest.text.StringContainsInOrder.stringContainsInOrder;
+
+public class HamcrestMatcherTest {
+ @Test
+ public void given2Strings_whenEqual_thenCorrect() {
+ String a = "foo";
+ String b = "FOO";
+ assertThat(a, equalToIgnoringCase(b));
+ }
+
+ @Test
+ public void givenBean_whenHasValue_thenCorrect() {
+ Person person = new Person("Baeldung", "New York");
+ assertThat(person, hasProperty("name"));
+ }
+
+ @Test
+ public void givenBean_whenHasCorrectValue_thenCorrect() {
+ Person person = new Person("Baeldung", "New York");
+ assertThat(person, hasProperty("address", equalTo("New York")));
+ }
+
+ @Test
+ public void given2Beans_whenHavingSameValues_thenCorrect() {
+ Person person1 = new Person("Baeldung", "New York");
+ Person person2 = new Person("Baeldung", "New York");
+ assertThat(person1, samePropertyValuesAs(person2));
+ }
+
+ @Test
+ public void givenAList_whenChecksSize_thenCorrect() {
+ List hamcrestMatchers = Arrays.asList("collections", "beans",
+ "text", "number");
+ assertThat(hamcrestMatchers, hasSize(4));
+ }
+
+ @Test
+ public void givenArray_whenChecksSize_thenCorrect() {
+ String[] hamcrestMatchers = { "collections", "beans", "text", "number" };
+ assertThat(hamcrestMatchers, arrayWithSize(4));
+ }
+
+ @Test
+ public void givenAListAndValues_whenChecksListForGivenValues_thenCorrect() {
+ List hamcrestMatchers = Arrays.asList("collections", "beans",
+ "text", "number");
+ assertThat(hamcrestMatchers,
+ containsInAnyOrder("beans", "text", "collections", "number"));
+ }
+
+ @Test
+ public void givenAListAndValues_whenChecksListForGivenValuesWithOrder_thenCorrect() {
+ List hamcrestMatchers = Arrays.asList("collections", "beans",
+ "text", "number");
+ assertThat(hamcrestMatchers,
+ contains("collections", "beans", "text", "number"));
+ }
+
+ @Test
+ public void givenArrayAndValue_whenValueFoundInArray_thenCorrect() {
+ String[] hamcrestMatchers = { "collections", "beans", "text", "number" };
+ assertThat(hamcrestMatchers, hasItemInArray("text"));
+
+ }
+
+ @Test
+ public void givenValueAndArray_whenValueIsOneOfArrayElements_thenCorrect() {
+ String[] hamcrestMatchers = { "collections", "beans", "text", "number" };
+ assertThat("text", isOneOf(hamcrestMatchers));
+
+ }
+
+ @Test
+ public void givenArrayAndValues_whenValuesFoundInArray_thenCorrect() {
+ String[] hamcrestMatchers = { "collections", "beans", "text", "number" };
+ assertThat(
+ hamcrestMatchers,
+ arrayContainingInAnyOrder("beans", "collections", "number",
+ "text"));
+
+ }
+
+ @Test
+ public void givenArrayAndValues_whenValuesFoundInArrayInOrder_thenCorrect() {
+ String[] hamcrestMatchers = { "collections", "beans", "text", "number" };
+ assertThat(hamcrestMatchers,
+ arrayContaining("collections", "beans", "text", "number"));
+
+ }
+
+ @Test
+ public void givenCollection_whenEmpty_thenCorrect() {
+ List emptyList = new ArrayList<>();
+ assertThat(emptyList, empty());
+
+ }
+
+ @Test
+ public void givenValueAndArray_whenValueFoundInArray_thenCorrect() {
+ String[] array = new String[] { "collections", "beans", "text",
+ "number" };
+ assertThat("beans", isIn(array));
+
+ }
+
+ @Test
+ public void givenMapAndKey_whenKeyFoundInMap_thenCorrect() {
+ Map map = new HashMap<>();
+ map.put("blogname", "baeldung");
+ assertThat(map, hasKey("blogname"));
+ }
+
+ @Test
+ public void givenMapAndEntry_whenEntryFoundInMap_thenCorrect() {
+ Map map = new HashMap<>();
+ map.put("blogname", "baeldung");
+ assertThat(map, hasEntry("blogname", "baeldung"));
+ }
+
+ @Test
+ public void givenMapAndValue_whenValueFoundInMap_thenCorrect() {
+ Map map = new HashMap<>();
+ map.put("blogname", "baeldung");
+ assertThat(map, hasValue("baeldung"));
+ }
+
+ @Test
+ public void givenString_whenEmpty_thenCorrect() {
+ String str = "";
+ assertThat(str, isEmptyString());
+ }
+
+ @Test
+ public void givenString_whenEmptyOrNull_thenCorrect() {
+ String str = null;
+ assertThat(str, isEmptyOrNullString());
+ }
+
+ @Test
+ public void given2Strings_whenEqualRegardlessWhiteSpace_thenCorrect() {
+ String str1 = "text";
+ String str2 = " text ";
+ assertThat(str1, equalToIgnoringWhiteSpace(str2));
+ }
+
+ @Test
+ public void givenString_whenContainsGivenSubstring_thenCorrect() {
+ String str = "calligraphy";
+ assertThat(str, stringContainsInOrder(Arrays.asList("call", "graph")));
+ }
+
+ @Test
+ public void givenBean_whenToStringReturnsRequiredString_thenCorrect() {
+ Person person = new Person("Barrack", "Washington");
+ String str = person.toString();
+ assertThat(person, hasToString(str));
+ }
+
+ @Test
+ public void given2Classes_whenOneInheritsFromOther_thenCorrect() {
+ assertThat(Cat.class, typeCompatibleWith(Animal.class));
+ }
+
+
+ @Test
+ public void given2Strings_whenIsEqualRegardlessWhiteSpace_thenCorrect() {
+ String str1 = "text";
+ String str2 = " text ";
+ assertThat(str1, is(equalToIgnoringWhiteSpace(str2)));
+ }
+
+ @Test
+ public void given2Strings_whenIsNotEqualRegardlessWhiteSpace_thenCorrect() {
+ String str1 = "text";
+ String str2 = " texts ";
+ assertThat(str1, not(equalToIgnoringWhiteSpace(str2)));
+ }
+
+ @Test
+ public void given2Strings_whenNotEqual_thenCorrect() {
+ String str1 = "text";
+ String str2 = "texts";
+ assertThat(str1, not(str2));
+ }
+
+ @Test
+ public void given2Strings_whenIsEqual_thenCorrect() {
+ String str1 = "text";
+ String str2 = "text";
+ assertThat(str1, is(str2));
+ }
+
+ @Test
+ public void givenAStrings_whenContainsAnotherGivenString_thenCorrect() {
+ String str1 = "calligraphy";
+ String str2 = "call";
+ assertThat(str1, containsString(str2));
+ }
+
+ @Test
+ public void givenAString_whenEndsWithAnotherGivenString_thenCorrect() {
+ String str1 = "calligraphy";
+ String str2 = "phy";
+ assertThat(str1, endsWith(str2));
+ }
+
+ @Test
+ public void givenAString_whenStartsWithAnotherGivenString_thenCorrect() {
+ String str1 = "calligraphy";
+ String str2 = "call";
+ assertThat(str1, startsWith(str2));
+ }
+
+ @Test
+ public void given2Objects_whenSameInstance_thenCorrect() {
+ Cat cat = new Cat();
+ assertThat(cat, sameInstance(cat));
+ }
+
+ @Test
+ public void givenAnObject_whenInstanceOfGivenClass_thenCorrect() {
+ Cat cat = new Cat();
+ assertThat(cat, instanceOf(Cat.class));
+ }
+
+ @Test
+ public void givenList_whenEachElementGreaterThan0_thenCorrect() {
+ List list = Arrays.asList(1, 2, 3);
+ int baseCase = 0;
+ assertThat(list, everyItem(greaterThan(baseCase)));
+ }
+
+ @Test
+ public void givenString_whenNotNull_thenCorrect() {
+ String str = "notnull";
+ assertThat(str, notNullValue());
+ }
+
+ @Test
+ public void givenString_whenMeetsAnyOfGivenConditions_thenCorrect() {
+ String str = "calligraphy";
+ String start = "call";
+ String end = "foo";
+ assertThat(str, anyOf(startsWith(start), containsString(end)));
+ }
+
+ @Test
+ public void givenString_whenMeetsAllOfGivenConditions_thenCorrect() {
+ String str = "calligraphy";
+ String start = "call";
+ String end = "phy";
+ assertThat(str, allOf(startsWith(start), endsWith(end)));
+ }
+
+ @Test
+ public void givenInteger_whenAPositiveValue_thenCorrect() {
+ int num = 1;
+ assertThat(num, isAPositiveInteger());
+ }
+
+ @Test
+ public void givenAnInteger_whenGreaterThan0_thenCorrect() {
+ int num = 1;
+ assertThat(num, greaterThan(0));
+ }
+
+ @Test
+ public void givenAnInteger_whenGreaterThanOrEqTo5_thenCorrect() {
+ int num = 5;
+ assertThat(num, greaterThanOrEqualTo(5));
+ }
+
+ @Test
+ public void givenAnInteger_whenLessThan0_thenCorrect() {
+ int num = -1;
+ assertThat(num, lessThan(0));
+ }
+
+ @Test
+ public void givenAnInteger_whenLessThanOrEqTo5_thenCorrect() {
+ assertThat(-1, lessThanOrEqualTo(5));
+ }
+
+ @Test
+ public void givenADouble_whenCloseTo_thenCorrect() {
+ assertThat(1.2, closeTo(1, 0.5));
+ }
+
+}
diff --git a/guava/src/test/java/org/baeldung/hamcrest/IsPositiveInteger.java b/guava/src/test/java/org/baeldung/hamcrest/IsPositiveInteger.java
new file mode 100644
index 0000000000..0d8d262538
--- /dev/null
+++ b/guava/src/test/java/org/baeldung/hamcrest/IsPositiveInteger.java
@@ -0,0 +1,24 @@
+package org.baeldung.hamcrest;
+
+import org.hamcrest.Description;
+import org.hamcrest.Factory;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+
+public class IsPositiveInteger extends TypeSafeMatcher {
+
+ public void describeTo(Description description) {
+ description.appendText("a positive integer");
+ }
+
+ @Factory
+ public static Matcher isAPositiveInteger() {
+ return new IsPositiveInteger();
+ }
+
+ @Override
+ protected boolean matchesSafely(Integer integer) {
+ return integer > 0;
+ }
+
+}
diff --git a/guava/src/test/java/org/baeldung/hamcrest/Person.java b/guava/src/test/java/org/baeldung/hamcrest/Person.java
new file mode 100644
index 0000000000..0053c98043
--- /dev/null
+++ b/guava/src/test/java/org/baeldung/hamcrest/Person.java
@@ -0,0 +1,37 @@
+package org.baeldung.hamcrest;
+
+public class Person {
+ String name;
+ String address;
+
+ public Person(String personName, String personAddress) {
+ name = personName;
+ address = personAddress;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ @Override
+ public String toString() {
+ String str="[address:"+address+",name:"+name+"]";
+ return str;
+ }
+
+
+
+
+}
diff --git a/jsf/pom.xml b/jsf/pom.xml
index c4801996de..b5fbae4cf0 100644
--- a/jsf/pom.xml
+++ b/jsf/pom.xml
@@ -25,6 +25,12 @@
jsf-impl
${com.sun.faces.version}
+
+ javax.el
+ el-api
+ ${javax.el.version}
+
+
@@ -114,6 +120,7 @@
2.1.7
+ 2.2
1.7.13
diff --git a/jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java b/jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java
new file mode 100644
index 0000000000..a13f0890b5
--- /dev/null
+++ b/jsf/src/main/java/com/baeldung/springintegration/controllers/ELSampleBean.java
@@ -0,0 +1,110 @@
+package com.baeldung.springintegration.controllers;
+
+import java.util.Random;
+import javax.annotation.PostConstruct;
+import javax.faces.application.Application;
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ViewScoped;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.context.FacesContext;
+
+@ManagedBean(name = "ELBean")
+@ViewScoped
+public class ELSampleBean {
+
+ private String firstName;
+ private String lastName;
+ private String pageDescription = "This page demos JSF EL Basics";
+ private int pageCounter;
+ private Random randomIntGen = new Random();
+
+ @PostConstruct
+ public void init() {
+ pageCounter = randomIntGen.nextInt();
+ }
+
+ public void save() {
+
+ }
+
+ public void saveFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+
+ public void saveByELEvaluation() {
+ firstName = (String) evaluateEL("#{firstName.value}", String.class);
+ FacesContext ctx = FacesContext.getCurrentInstance();
+ FacesMessage theMessage = new FacesMessage("Name component Evaluated: " + firstName);
+ theMessage.setSeverity(FacesMessage.SEVERITY_INFO);
+ ctx.addMessage(null, theMessage);
+
+ }
+
+ private Object evaluateEL(String elExpression, Class> clazz) {
+ Object toReturn = null;
+ FacesContext ctx = FacesContext.getCurrentInstance();
+ Application app = ctx.getApplication();
+ toReturn = app.evaluateExpressionGet(ctx, elExpression, clazz);
+
+ return toReturn;
+
+ }
+
+ /**
+ * @return the firstName
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * @param firstName the firstName to set
+ */
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @return the lastName
+ */
+ public String getLastName() {
+ return lastName;
+ }
+
+ /**
+ * @param lastName the lastName to set
+ */
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ /**
+ * @return the pageDescription
+ */
+ public String getPageDescription() {
+ return pageDescription;
+ }
+
+ /**
+ * @param pageDescription the pageDescription to set
+ */
+ public void setPageDescription(String pageDescription) {
+ this.pageDescription = pageDescription;
+ }
+
+ /**
+ * @return the pageCounter
+ */
+ public int getPageCounter() {
+ return pageCounter;
+ }
+
+ /**
+ * @param pageCounter the pageCounter to set
+ */
+ public void setPageCounter(int pageCounter) {
+ this.pageCounter = pageCounter;
+ }
+}
diff --git a/jsf/src/main/webapp/el_intro.xhtml b/jsf/src/main/webapp/el_intro.xhtml
new file mode 100644
index 0000000000..3b58d6288d
--- /dev/null
+++ b/jsf/src/main/webapp/el_intro.xhtml
@@ -0,0 +1,38 @@
+
+
+
+
+ Baeldung | The EL Intro
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mocks/jmockit/README.md b/mocks/jmockit/README.md
new file mode 100644
index 0000000000..c310463c26
--- /dev/null
+++ b/mocks/jmockit/README.md
@@ -0,0 +1,7 @@
+=========
+
+## JMockit related tutorials
+
+
+### Relevant Articles:
+- [JMockit 101](http://www.baeldung.com/jmockit-101)
diff --git a/mocks/jmockit/pom.xml b/mocks/jmockit/pom.xml
new file mode 100644
index 0000000000..8b03313a51
--- /dev/null
+++ b/mocks/jmockit/pom.xml
@@ -0,0 +1,68 @@
+
+ 4.0.0
+
+
+ com.baeldung
+ mocks
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ jmockit
+ jmockit
+
+
+ 4.12
+ 1.24
+
+
+ 3.3
+ 2.18.1
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+
+ org.jmockit
+ jmockit
+ ${jmockit.version}
+ test
+
+
+
+
+ jmockit
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+ 1.8
+ 1.8
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+
+
+
+
\ No newline at end of file
diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java
new file mode 100644
index 0000000000..ef271b9aff
--- /dev/null
+++ b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java
@@ -0,0 +1,10 @@
+package org.baeldung.mocks.jmockit;
+
+public class Collaborator {
+ public boolean collaborate(String string){
+ return false;
+ }
+ public void receive(boolean bool){
+ //NOOP
+ }
+}
diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java
new file mode 100644
index 0000000000..54249dcd1d
--- /dev/null
+++ b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java
@@ -0,0 +1,7 @@
+package org.baeldung.mocks.jmockit;
+
+public class Model {
+ public String getInfo(){
+ return "info";
+ }
+}
diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java
new file mode 100644
index 0000000000..4f8e8adb24
--- /dev/null
+++ b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java
@@ -0,0 +1,10 @@
+package org.baeldung.mocks.jmockit;
+
+public class Performer {
+ private Collaborator collaborator;
+
+ public void perform(Model model){
+ boolean value = collaborator.collaborate(model.getInfo());
+ collaborator.receive(value);
+ }
+}
diff --git a/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java b/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java
new file mode 100644
index 0000000000..c99ae844c3
--- /dev/null
+++ b/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java
@@ -0,0 +1,30 @@
+package org.baeldung.mocks.jmockit;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import mockit.*;
+import mockit.integration.junit4.JMockit;
+
+@RunWith(JMockit.class)
+public class PerformerTest {
+
+ @Injectable
+ private Collaborator collaborator;
+
+ @Tested
+ private Performer performer;
+
+ @Test
+ public void testThePerformMethod(@Mocked Model model) {
+ new Expectations() {{
+ model.getInfo();result = "bar";
+ collaborator.collaborate("bar"); result = true;
+ }};
+ performer.perform(model);
+ new Verifications() {{
+ collaborator.receive(true);
+ }};
+ }
+
+}
diff --git a/mock-comparisons/README.md b/mocks/mock-comparisons/README.md
similarity index 100%
rename from mock-comparisons/README.md
rename to mocks/mock-comparisons/README.md
diff --git a/mock-comparisons/pom.xml b/mocks/mock-comparisons/pom.xml
similarity index 90%
rename from mock-comparisons/pom.xml
rename to mocks/mock-comparisons/pom.xml
index c5424d262d..692bfffd53 100644
--- a/mock-comparisons/pom.xml
+++ b/mocks/mock-comparisons/pom.xml
@@ -1,11 +1,16 @@
4.0.0
- org.baeldung
- mock-comparisons
- 0.1-SNAPSHOT
- mockito
+
+ com.baeldung
+ mocks
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ mock-comparisons
+ mock-comparisons
4.12
diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java
similarity index 100%
rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java
rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java
diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java
similarity index 100%
rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java
rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java
diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java
similarity index 100%
rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java
rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java
diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java
similarity index 100%
rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java
rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java
diff --git a/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java b/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java
similarity index 100%
rename from mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java
rename to mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java
diff --git a/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java b/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java
similarity index 100%
rename from mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java
rename to mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java
diff --git a/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java b/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java
similarity index 100%
rename from mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java
rename to mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java
diff --git a/mocks/pom.xml b/mocks/pom.xml
new file mode 100644
index 0000000000..ec02c255ef
--- /dev/null
+++ b/mocks/pom.xml
@@ -0,0 +1,20 @@
+
+ 4.0.0
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ mocks
+ mocks
+ pom
+
+
+ mock-comparisons
+ jmockit
+
+
+
diff --git a/pom.xml b/pom.xml
index 4bef2ceb45..fa4777860d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,8 +7,12 @@
parent-modules
pom
+
+
+ UTF-8
+
+
- apache-fop
assertj
core-java
@@ -25,7 +29,7 @@
jooq-spring
json-path
mockito
- mock-comparisons
+ mocks
jee7schedule
querydsl
diff --git a/querydsl/pom.xml b/querydsl/pom.xml
index cf50144d3f..bed0cf90e5 100644
--- a/querydsl/pom.xml
+++ b/querydsl/pom.xml
@@ -14,30 +14,25 @@
UTF-8
- 1.6
- 4.10
- 3.1.0.RELEASE
- 4.3.11.Final
- 2.5.0
- 1.5.10
+ 1.8
+ 4.12
+ 4.3.1.RELEASE
+ 5.2.1.Final
+ 4.1.3
+ 1.7.21
-
- com.mysema.querydsl
- querydsl-core
- ${querydsl.version}
-
- com.mysema.querydsl
+ com.querydsl
querydsl-jpa
${querydsl.version}
- com.mysema.querydsl
+ com.querydsl
querydsl-apt
${querydsl.version}
provided
@@ -53,7 +48,7 @@
org.hibernate.javax.persistence
- hibernate-jpa-2.0-api
+ hibernate-jpa-2.1-api
1.0.0.Final
compile
@@ -69,7 +64,7 @@
commons-pool
commons-pool
- 1.5.5
+ 1.6
jar
compile
@@ -77,8 +72,8 @@
org.hsqldb
- hsqldb-j5
- 2.2.4
+ hsqldb
+ 2.3.4
@@ -118,9 +113,9 @@
- org.slf4j
- slf4j-api
- ${slf4j.version}
+ ch.qos.logback
+ logback-classic
+ 1.1.7
org.slf4j
@@ -128,17 +123,6 @@
${slf4j.version}
runtime
-
- org.slf4j
- slf4j-log4j12
- ${slf4j.version}
- runtime
-
-
- log4j
- log4j
- 1.2.16
-
@@ -157,7 +141,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 2.3.2
+ 3.5.1
${java.version}
${java.version}
@@ -168,16 +152,16 @@
com.mysema.maven
- maven-apt-plugin
- 1.0.3
+ apt-maven-plugin
+ 1.1.3
process
- target/metamodel
- com.mysema.query.apt.jpa.JPAAnnotationProcessor
+ target/generated-sources/java
+ com.querydsl.apt.jpa.JPAAnnotationProcessor
diff --git a/querydsl/src/main/java/org/baeldung/dao/PersonDaoImpl.java b/querydsl/src/main/java/org/baeldung/dao/PersonDaoImpl.java
index 555ec226ce..9acaf1dd18 100644
--- a/querydsl/src/main/java/org/baeldung/dao/PersonDaoImpl.java
+++ b/querydsl/src/main/java/org/baeldung/dao/PersonDaoImpl.java
@@ -10,8 +10,8 @@ import org.baeldung.entity.Person;
import org.baeldung.entity.QPerson;
import org.springframework.stereotype.Repository;
-import com.mysema.query.group.GroupBy;
-import com.mysema.query.jpa.impl.JPAQuery;
+import com.querydsl.core.group.GroupBy;
+import com.querydsl.jpa.impl.JPAQuery;
@Repository
public class PersonDaoImpl implements PersonDao {
@@ -27,39 +27,39 @@ public class PersonDaoImpl implements PersonDao {
@Override
public List findPersonsByFirstnameQueryDSL(final String firstname) {
- final JPAQuery query = new JPAQuery(em);
+ final JPAQuery query = new JPAQuery<>(em);
final QPerson person = QPerson.person;
- return query.from(person).where(person.firstname.eq(firstname)).list(person);
+ return query.from(person).where(person.firstname.eq(firstname)).fetch();
}
@Override
public List findPersonsByFirstnameAndSurnameQueryDSL(final String firstname, final String surname) {
- final JPAQuery query = new JPAQuery(em);
+ final JPAQuery query = new JPAQuery<>(em);
final QPerson person = QPerson.person;
- return query.from(person).where(person.firstname.eq(firstname).and(person.surname.eq(surname))).list(person);
+ return query.from(person).where(person.firstname.eq(firstname).and(person.surname.eq(surname))).fetch();
}
@Override
public List findPersonsByFirstnameInDescendingOrderQueryDSL(final String firstname) {
- final JPAQuery query = new JPAQuery(em);
+ final JPAQuery query = new JPAQuery<>(em);
final QPerson person = QPerson.person;
- return query.from(person).where(person.firstname.eq(firstname)).orderBy(person.surname.desc()).list(person);
+ return query.from(person).where(person.firstname.eq(firstname)).orderBy(person.surname.desc()).fetch();
}
@Override
public int findMaxAge() {
- final JPAQuery query = new JPAQuery(em);
+ final JPAQuery query = new JPAQuery<>(em);
final QPerson person = QPerson.person;
- return query.from(person).list(person.age.max()).get(0);
+ return query.from(person).select(person.age.max()).fetchFirst();
}
@Override
public Map findMaxAgeByName() {
- final JPAQuery query = new JPAQuery(em);
+ final JPAQuery query = new JPAQuery<>(em);
final QPerson person = QPerson.person;
return query.from(person).transform(GroupBy.groupBy(person.firstname).as(GroupBy.max(person.age)));
diff --git a/querydsl/src/main/java/org/baeldung/querydsl/intro/entities/BlogPost.java b/querydsl/src/main/java/org/baeldung/querydsl/intro/entities/BlogPost.java
new file mode 100644
index 0000000000..241bc50b03
--- /dev/null
+++ b/querydsl/src/main/java/org/baeldung/querydsl/intro/entities/BlogPost.java
@@ -0,0 +1,56 @@
+/*
+ * (c) Центр ИТ, 2016. Все права защищены.
+ */
+package org.baeldung.querydsl.intro.entities;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
+@Entity
+public class BlogPost {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String title;
+
+ private String body;
+
+ @ManyToOne
+ private User user;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String code) {
+ this.title = code;
+ }
+
+ public String getBody() {
+ return body;
+ }
+
+ public void setBody(String body) {
+ this.body = body;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public void setUser(User user) {
+ this.user = user;
+ }
+}
diff --git a/querydsl/src/main/java/org/baeldung/querydsl/intro/entities/User.java b/querydsl/src/main/java/org/baeldung/querydsl/intro/entities/User.java
new file mode 100644
index 0000000000..c0681e15d1
--- /dev/null
+++ b/querydsl/src/main/java/org/baeldung/querydsl/intro/entities/User.java
@@ -0,0 +1,55 @@
+/*
+ * (c) Центр ИТ, 2016. Все права защищены.
+ */
+package org.baeldung.querydsl.intro.entities;
+
+import java.util.HashSet;
+import java.util.Set;
+import javax.persistence.*;
+
+@Entity
+public class User {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String login;
+
+ private Boolean disabled;
+
+ @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "user")
+ private Set blogPosts = new HashSet<>(0);
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setLogin(String name) {
+ this.login = name;
+ }
+
+ public Set getBlogPosts() {
+ return blogPosts;
+ }
+
+ public void setBlogPosts(Set blogPosts) {
+ this.blogPosts = blogPosts;
+ }
+
+ public Boolean getDisabled() {
+ return disabled;
+ }
+
+ public void setDisabled(Boolean disabled) {
+ this.disabled = disabled;
+ }
+}
diff --git a/querydsl/src/main/resources/META-INF/persistence.xml b/querydsl/src/main/resources/META-INF/persistence.xml
index 111d7933c3..2964382d48 100644
--- a/querydsl/src/main/resources/META-INF/persistence.xml
+++ b/querydsl/src/main/resources/META-INF/persistence.xml
@@ -16,4 +16,17 @@
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/querydsl/src/main/resources/log4j.xml b/querydsl/src/main/resources/logback.xml
similarity index 53%
rename from querydsl/src/main/resources/log4j.xml
rename to querydsl/src/main/resources/logback.xml
index a7f96b38a4..d0a1dc06ac 100644
--- a/querydsl/src/main/resources/log4j.xml
+++ b/querydsl/src/main/resources/logback.xml
@@ -1,12 +1,9 @@
-
-
+
-
-
-
-
-
+
+
+ %d{yyyy-MM-dd HH:mm:ss} [%t] %-5p: %c - %m%n
@@ -33,10 +30,8 @@
-
-
-
-
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/querydsl/src/test/java/org/baeldung/querydsl/intro/QueryDSLTest.java b/querydsl/src/test/java/org/baeldung/querydsl/intro/QueryDSLTest.java
new file mode 100644
index 0000000000..682fa2c245
--- /dev/null
+++ b/querydsl/src/test/java/org/baeldung/querydsl/intro/QueryDSLTest.java
@@ -0,0 +1,215 @@
+/*
+ * (c) Центр ИТ, 2016. Все права защищены.
+ */
+package org.baeldung.querydsl.intro;
+
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import org.baeldung.querydsl.intro.entities.BlogPost;
+import org.baeldung.querydsl.intro.entities.QBlogPost;
+import org.baeldung.querydsl.intro.entities.QUser;
+import org.baeldung.querydsl.intro.entities.User;
+import com.querydsl.core.Tuple;
+import com.querydsl.core.types.dsl.Expressions;
+import com.querydsl.core.types.dsl.NumberPath;
+import com.querydsl.jpa.JPAExpressions;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import org.junit.*;
+
+import static org.junit.Assert.*;
+
+public class QueryDSLTest {
+
+ private static EntityManagerFactory emf;
+
+ private EntityManager em;
+
+ private JPAQueryFactory queryFactory;
+
+ @BeforeClass
+ public static void populateDatabase() {
+ emf = Persistence.createEntityManagerFactory("org.baeldung.querydsl.intro");
+ EntityManager em = emf.createEntityManager();
+
+ em.getTransaction().begin();
+ User user1 = new User();
+ user1.setLogin("David");
+ em.persist(user1);
+
+ User user2 = new User();
+ user2.setLogin("Ash");
+ em.persist(user2);
+
+ User user3 = new User();
+ user3.setLogin("Call");
+ em.persist(user3);
+
+ User user4 = new User();
+ user4.setLogin("Bishop");
+ em.persist(user4);
+
+ BlogPost blogPost1 = new BlogPost();
+ blogPost1.setTitle("Hello World!");
+ blogPost1.setUser(user1);
+ em.persist(blogPost1);
+
+ BlogPost blogPost2 = new BlogPost();
+ blogPost2.setTitle("My Second Post");
+ blogPost2.setUser(user1);
+ em.persist(blogPost2);
+
+ BlogPost blogPost3 = new BlogPost();
+ blogPost3.setTitle("Hello World!");
+ blogPost3.setUser(user3);
+ em.persist(blogPost3);
+
+ em.getTransaction().commit();
+
+ em.close();
+
+ }
+
+ @Before
+ public void setUp() {
+ em = emf.createEntityManager();
+ em.getTransaction().begin();
+ queryFactory = new JPAQueryFactory(em);
+ }
+
+ @Test
+ public void whenFindByLogin_thenShouldReturnUser() {
+
+ QUser user = QUser.user;
+ User aUser = queryFactory.selectFrom(user)
+ .where(user.login.eq("David"))
+ .fetchOne();
+
+ assertNotNull(aUser);
+ assertEquals(aUser.getLogin(), "David");
+
+ }
+
+ @Test
+ public void whenUsingOrderBy_thenResultsShouldBeOrdered() {
+
+ QUser user = QUser.user;
+ List users = queryFactory.selectFrom(user)
+ .orderBy(user.login.asc())
+ .fetch();
+
+ assertEquals(users.size(), 4);
+ assertEquals(users.get(0).getLogin(), "Ash");
+ assertEquals(users.get(1).getLogin(), "Bishop");
+ assertEquals(users.get(2).getLogin(), "Call");
+ assertEquals(users.get(3).getLogin(), "David");
+
+ }
+
+ @Test
+ public void whenGroupingByTitle_thenReturnsTuples() {
+
+ QBlogPost blogPost = QBlogPost.blogPost;
+
+ NumberPath count = Expressions.numberPath(Long.class, "c");
+
+ List userTitleCounts = queryFactory.select(blogPost.title, blogPost.id.count().as(count))
+ .from(blogPost)
+ .groupBy(blogPost.title)
+ .orderBy(count.desc())
+ .fetch();
+
+ assertEquals("Hello World!", userTitleCounts.get(0).get(blogPost.title));
+ assertEquals(new Long(2), userTitleCounts.get(0).get(count));
+
+ assertEquals("My Second Post", userTitleCounts.get(1).get(blogPost.title));
+ assertEquals(new Long(1), userTitleCounts.get(1).get(count));
+
+ }
+
+ @Test
+ public void whenJoiningWithCondition_thenResultCountShouldMatch() {
+
+ QUser user = QUser.user;
+ QBlogPost blogPost = QBlogPost.blogPost;
+
+ List users = queryFactory.selectFrom(user)
+ .innerJoin(user.blogPosts, blogPost)
+ .on(blogPost.title.eq("Hello World!"))
+ .fetch();
+
+ assertEquals(2, users.size());
+ }
+
+ @Test
+ public void whenRefiningWithSubquery_thenResultCountShouldMatch() {
+
+ QUser user = QUser.user;
+ QBlogPost blogPost = QBlogPost.blogPost;
+
+ List users = queryFactory.selectFrom(user)
+ .where(user.id.in(
+ JPAExpressions.select(blogPost.user.id)
+ .from(blogPost)
+ .where(blogPost.title.eq("Hello World!"))))
+ .fetch();
+
+ assertEquals(2, users.size());
+ }
+
+ @Test
+ public void whenUpdating_thenTheRecordShouldChange() {
+
+ QUser user = QUser.user;
+
+ queryFactory.update(user)
+ .where(user.login.eq("Ash"))
+ .set(user.login, "Ash2")
+ .set(user.disabled, true)
+ .execute();
+
+ em.getTransaction().commit();
+
+ em.getTransaction().begin();
+
+ assertEquals(Boolean.TRUE,
+ queryFactory.select(user.disabled)
+ .from(user)
+ .where(user.login.eq("Ash2"))
+ .fetchOne());
+
+ }
+
+ @Test
+ public void whenDeleting_thenTheRecordShouldBeAbsent() {
+
+ QUser user = QUser.user;
+
+ queryFactory.delete(user)
+ .where(user.login.eq("Bishop"))
+ .execute();
+
+ em.getTransaction().commit();
+
+ em.getTransaction().begin();
+
+ assertNull(queryFactory.selectFrom(user)
+ .where(user.login.eq("Bishop"))
+ .fetchOne());
+
+ }
+
+ @After
+ public void tearDown() {
+ em.getTransaction().commit();
+ em.close();
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ emf.close();
+ }
+
+}
diff --git a/spring-hibernate4/README.md b/spring-hibernate4/README.md
index 4c0c6706d6..4b48fe7064 100644
--- a/spring-hibernate4/README.md
+++ b/spring-hibernate4/README.md
@@ -8,7 +8,7 @@
- [Hibernate Pagination](http://www.baeldung.com/hibernate-pagination)
- [Sorting with Hibernate](http://www.baeldung.com/hibernate-sort)
- [Auditing with JPA, Hibernate, and Spring Data JPA](http://www.baeldung.com/database-auditing-jpa)
-
+- [Stored Procedures with Hibernate](http://www.baeldung.com/stored-procedures-with-hibernate-tutorial)
### Quick Start
diff --git a/spring-hibernate4/src/main/java/com/baeldung/persistence/model/Foo.java b/spring-hibernate4/src/main/java/com/baeldung/persistence/model/Foo.java
index 6b48c1fa66..bdd48d6aa6 100644
--- a/spring-hibernate4/src/main/java/com/baeldung/persistence/model/Foo.java
+++ b/spring-hibernate4/src/main/java/com/baeldung/persistence/model/Foo.java
@@ -11,93 +11,97 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
+import javax.persistence.NamedNativeQueries;
+import javax.persistence.NamedNativeQuery;
import org.hibernate.envers.Audited;
+@NamedNativeQueries({
+ @NamedNativeQuery(name = "callGetAllFoos", query = "CALL GetAllFoos()", resultClass = Foo.class),
+ @NamedNativeQuery(name = "callGetFoosByName", query = "CALL GetFoosByName(:fooName)", resultClass = Foo.class) })
@Entity
@Audited
// @Proxy(lazy = false)
public class Foo implements Serializable {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private long id;
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name = "id")
+ private long id;
- @Column(name = "name")
- private String name;
+ @Column(name = "name")
+ private String name;
- @ManyToOne(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
- @JoinColumn(name = "BAR_ID")
- private Bar bar = new Bar();
+ @ManyToOne(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ @JoinColumn(name = "BAR_ID")
+ private Bar bar = new Bar();
- public Foo() {
- super();
- }
+ public Foo() {
+ super();
+ }
- public Foo(final String name) {
- super();
- this.name = name;
- }
+ public Foo(final String name) {
+ super();
+ this.name = name;
+ }
- //
+ //
- public Bar getBar() {
- return bar;
- }
+ public Bar getBar() {
+ return bar;
+ }
- public void setBar(final Bar bar) {
- this.bar = bar;
- }
+ public void setBar(final Bar bar) {
+ this.bar = bar;
+ }
- public long getId() {
- return id;
- }
+ public long getId() {
+ return id;
+ }
- public void setId(final long id) {
- this.id = id;
- }
+ public void setId(final long id) {
+ this.id = id;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(final String name) {
- this.name = name;
- }
+ public void setName(final String name) {
+ this.name = name;
+ }
- //
+ //
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
- @Override
- public boolean equals(final Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- final Foo other = (Foo) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-
- @Override
- public String toString() {
- final StringBuilder builder = new StringBuilder();
- builder.append("Foo [name=").append(name).append("]");
- return builder.toString();
- }
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Foo other = (Foo) obj;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ return true;
+ }
+ @Override
+ public String toString() {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("Foo [name=").append(name).append("]");
+ return builder.toString();
+ }
}
diff --git a/spring-hibernate4/src/main/resources/stored_procedure.sql b/spring-hibernate4/src/main/resources/stored_procedure.sql
new file mode 100644
index 0000000000..8e1bdf57dd
--- /dev/null
+++ b/spring-hibernate4/src/main/resources/stored_procedure.sql
@@ -0,0 +1,20 @@
+DELIMITER //
+ CREATE PROCEDURE GetFoosByName(IN fooName VARCHAR(255))
+ LANGUAGE SQL
+ DETERMINISTIC
+ SQL SECURITY DEFINER
+ BEGIN
+ SELECT * FROM foo WHERE name = fooName;
+ END //
+DELIMITER ;
+
+
+DELIMITER //
+ CREATE PROCEDURE GetAllFoos()
+ LANGUAGE SQL
+ DETERMINISTIC
+ SQL SECURITY DEFINER
+ BEGIN
+ SELECT * FROM foo;
+ END //
+DELIMITER ;
\ No newline at end of file
diff --git a/spring-hibernate4/src/test/java/com/baeldung/persistence/service/FooStoredProceduresIntegrationTest.java b/spring-hibernate4/src/test/java/com/baeldung/persistence/service/FooStoredProceduresIntegrationTest.java
new file mode 100644
index 0000000000..238b228101
--- /dev/null
+++ b/spring-hibernate4/src/test/java/com/baeldung/persistence/service/FooStoredProceduresIntegrationTest.java
@@ -0,0 +1,126 @@
+package com.baeldung.persistence.service;
+
+import java.util.List;
+
+import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
+import static org.junit.Assert.assertEquals;
+
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.exception.SQLGrammarException;
+import org.junit.After;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.AnnotationConfigContextLoader;
+
+import com.baeldung.persistence.model.Foo;
+import com.baeldung.spring.PersistenceConfig;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = {PersistenceConfig.class}, loader = AnnotationConfigContextLoader.class)
+public class FooStoredProceduresIntegrationTest {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(FooStoredProceduresIntegrationTest.class);
+
+ @Autowired
+ private SessionFactory sessionFactory;
+
+ @Autowired
+ private IFooService fooService;
+
+ private Session session;
+
+ @Before
+ public final void before() {
+ session = sessionFactory.openSession();
+ Assume.assumeTrue(getAllFoosExists());
+ Assume.assumeTrue(getFoosByNameExists());
+ }
+
+ private boolean getFoosByNameExists() {
+ try {
+ Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()")
+ .addEntity(Foo.class);
+ sqlQuery.list();
+ return true;
+ } catch (SQLGrammarException e) {
+ LOGGER.error("WARNING : GetFoosByName() Procedure is may be missing ", e);
+ return false;
+ }
+ }
+
+ private boolean getAllFoosExists() {
+ try {
+ Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()")
+ .addEntity(Foo.class);
+ sqlQuery.list();
+ return true;
+ } catch (SQLGrammarException e) {
+ LOGGER.error("WARNING : GetAllFoos() Procedure is may be missing ", e);
+ return false;
+ }
+ }
+
+ @After
+ public final void after() {
+ session.close();
+ }
+
+ @Test
+ public final void getAllFoosUsingStoredProcedures() {
+
+ fooService.create(new Foo(randomAlphabetic(6)));
+
+ // Stored procedure getAllFoos using createSQLQuery
+ Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()").addEntity(
+ Foo.class);
+ @SuppressWarnings("unchecked")
+ List allFoos = sqlQuery.list();
+ for (Foo foo : allFoos) {
+ LOGGER.info("getAllFoos() SQL Query result : {}", foo.getName());
+ }
+ assertEquals(allFoos.size(), fooService.findAll().size());
+
+ // Stored procedure getAllFoos using a Named Query
+ Query namedQuery = session.getNamedQuery("callGetAllFoos");
+ @SuppressWarnings("unchecked")
+ List allFoos2 = namedQuery.list();
+ for (Foo foo : allFoos2) {
+ LOGGER.info("getAllFoos() NamedQuery result : {}", foo.getName());
+ }
+ assertEquals(allFoos2.size(), fooService.findAll().size());
+ }
+
+ @Test
+ public final void getFoosByNameUsingStoredProcedures() {
+
+ fooService.create(new Foo("NewFooName"));
+
+ // Stored procedure getFoosByName using createSQLQuery()
+ Query sqlQuery = session.createSQLQuery("CALL GetFoosByName(:fooName)")
+ .addEntity(Foo.class).setParameter("fooName", "NewFooName");
+ @SuppressWarnings("unchecked")
+ List allFoosByName = sqlQuery.list();
+ for (Foo foo : allFoosByName) {
+ LOGGER.info("getFoosByName() using SQL Query : found => {}", foo.toString());
+ }
+
+ // Stored procedure getFoosByName using getNamedQuery()
+ Query namedQuery = session.getNamedQuery("callGetFoosByName")
+ .setParameter("fooName", "NewFooName");
+ @SuppressWarnings("unchecked")
+ List allFoosByName2 = namedQuery.list();
+ for (Foo foo : allFoosByName2) {
+ LOGGER.info("getFoosByName() using Native Query : found => {}", foo.toString());
+ }
+
+ }
+}
diff --git a/spring-rest/pom.xml b/spring-rest/pom.xml
index 7941279936..09a50b9579 100644
--- a/spring-rest/pom.xml
+++ b/spring-rest/pom.xml
@@ -146,6 +146,17 @@
spring-test
+
+ com.google.protobuf
+ protobuf-java
+ 2.6.1
+
+
+
+ com.esotericsoftware.kryo
+ kryo
+ 2.24.0
+
@@ -254,4 +265,4 @@
-
\ No newline at end of file
+
diff --git a/spring-rest/src/main/java/org/baeldung/config/WebConfig.java b/spring-rest/src/main/java/org/baeldung/config/WebConfig.java
index 999f890ebb..120f1b272a 100644
--- a/spring-rest/src/main/java/org/baeldung/config/WebConfig.java
+++ b/spring-rest/src/main/java/org/baeldung/config/WebConfig.java
@@ -3,11 +3,13 @@ package org.baeldung.config;
import java.text.SimpleDateFormat;
import java.util.List;
+import org.baeldung.config.converter.KryoHttpMessageConverter;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter;
import org.springframework.http.converter.xml.MarshallingHttpMessageConverter;
import org.springframework.oxm.xstream.XStreamMarshaller;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@@ -33,7 +35,8 @@ public class WebConfig extends WebMvcConfigurerAdapter {
builder.indentOutput(true).dateFormat(new SimpleDateFormat("dd-MM-yyyy hh:mm"));
messageConverters.add(new MappingJackson2HttpMessageConverter(builder.build()));
// messageConverters.add(new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build()));
-
+ messageConverters.add(new ProtobufHttpMessageConverter());
+ messageConverters.add(new KryoHttpMessageConverter());
super.configureMessageConverters(messageConverters);
}
diff --git a/spring-rest/src/main/java/org/baeldung/config/converter/KryoHttpMessageConverter.java b/spring-rest/src/main/java/org/baeldung/config/converter/KryoHttpMessageConverter.java
new file mode 100644
index 0000000000..7e63a3ba9e
--- /dev/null
+++ b/spring-rest/src/main/java/org/baeldung/config/converter/KryoHttpMessageConverter.java
@@ -0,0 +1,57 @@
+package org.baeldung.config.converter;
+
+import java.io.IOException;
+
+import org.baeldung.web.dto.Foo;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.AbstractHttpMessageConverter;
+
+import com.esotericsoftware.kryo.Kryo;
+import com.esotericsoftware.kryo.io.Input;
+import com.esotericsoftware.kryo.io.Output;
+
+/**
+ * An {@code HttpMessageConverter} that can read and write Kryo messages.
+ */
+public class KryoHttpMessageConverter extends AbstractHttpMessageConverter