From b7b5543cf95028577f289ea40cc3d0144f1f86ad Mon Sep 17 00:00:00 2001 From: Ahmad Alsanie Date: Mon, 13 Nov 2017 21:18:14 +0200 Subject: [PATCH 1/6] Different types of dependency injection --- .../baeldung/ditypes/RegisterarConfig.java | 14 +++++++++ .../java/com/baeldung/ditypes/Registrar.java | 18 ++++++++++++ .../main/java/com/baeldung/ditypes/User.java | 20 +++++++++++++ .../com/baeldung/ditypes/RegisterarTest.java | 29 +++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java create mode 100644 spring-core/src/main/java/com/baeldung/ditypes/Registrar.java create mode 100644 spring-core/src/main/java/com/baeldung/ditypes/User.java create mode 100644 spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java diff --git a/spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java b/spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java new file mode 100644 index 0000000000..c1df1466f3 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java @@ -0,0 +1,14 @@ +package com.baeldung.ditypes; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("com.baeldung.ditypes") +public class RegisterarConfig { + @Bean + public User user() { + return new User("Alice", 1); + } +} diff --git a/spring-core/src/main/java/com/baeldung/ditypes/Registrar.java b/spring-core/src/main/java/com/baeldung/ditypes/Registrar.java new file mode 100644 index 0000000000..4406151c1b --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/ditypes/Registrar.java @@ -0,0 +1,18 @@ +package com.baeldung.ditypes; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class Registrar { + private User user; + + @Autowired + public Registrar(User user) { + this.user = user; + } + + public String register() { + return user.register(); + } +} diff --git a/spring-core/src/main/java/com/baeldung/ditypes/User.java b/spring-core/src/main/java/com/baeldung/ditypes/User.java new file mode 100644 index 0000000000..b0120c7711 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/ditypes/User.java @@ -0,0 +1,20 @@ +package com.baeldung.ditypes; + +import org.springframework.stereotype.Component; + +@Component +public class User { + + private String name; + private int id; + + public User(String name, int id) { + this.id = id; + this.name = name; + } + + public String register() { + return "User" + id + ": " + name + " is registered"; + } + +} diff --git a/spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java b/spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java new file mode 100644 index 0000000000..a0aea95a2b --- /dev/null +++ b/spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java @@ -0,0 +1,29 @@ +package com.baeldung.ditypes; + +import static org.junit.Assert.*; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = RegisterarConfig.class) +public class RegisterarTest { + + @Autowired + private Registrar reg; + + @Autowired + private User user; + + @Test + public void givenAutowiredAnnotation_whenSetOnField_thenRegistrarIsInjected() { + assertNotNull(reg); + } + + @Test + public void givenAutowiredAnnotation_whenSetOnField_thenUserIsInjected() { + assertEquals("User1: Alice is registered", user.register()); + } +} From f7e92e326f5d80bad152d8ebe3ff2bd3650a9ce3 Mon Sep 17 00:00:00 2001 From: Ahmad Alsanie Date: Sat, 18 Nov 2017 19:45:37 +0200 Subject: [PATCH 2/6] BAEL-1308 --- .../com/baeldung/copyfiles/FileCopier.java | 40 ++++++++++++++++++ .../baeldung/copyfiles/FileCopierTest.java | 41 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java create mode 100644 core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java diff --git a/core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java b/core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java new file mode 100644 index 0000000000..0841cd67a3 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java @@ -0,0 +1,40 @@ +package com.baeldung.copyfiles; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + +import org.apache.commons.io.FileUtils; + +public class FileCopier { + public static File copyWithIO(File original, File copied) throws IOException { + try (InputStream in = new BufferedInputStream(new FileInputStream(original)); + OutputStream out = new BufferedOutputStream(new FileOutputStream(copied))) { + byte[] buffer = new byte[1024]; + int lengthRead; + while ((lengthRead = in.read(buffer)) > 0) { + out.write(buffer, 0, lengthRead); + out.flush(); + } + } + return copied; + } + + public static Path copyWithNio(Path original, Path copied) throws IOException { + Files.copy(original, copied, StandardCopyOption.REPLACE_EXISTING); + return copied; + } + + public static File copyWithCommonsIO(File original, File copied) throws IOException { + FileUtils.copyFile(original, copied); + return copied; + } +} diff --git a/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java b/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java new file mode 100644 index 0000000000..72eaaa9bdb --- /dev/null +++ b/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java @@ -0,0 +1,41 @@ +package com.baeldung.copyfiles; + +import static org.junit.Assert.*; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import org.junit.Test; + +public class FileCopierTest { + + @Test + public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithIo.txt"); + File original = new File("src/test/resources/original.txt"); + copied = FileCopier.copyWithIO(original, copied); + assertTrue(copied.exists()); + assertTrue(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); + } + + @Test + public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithApacheCommons.txt"); + File original = new File("src/test/resources/original.txt"); + copied = FileCopier.copyWithCommonsIO(original, copied); + assertTrue(copied.exists()); + assertTrue(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); + } + + @Test + public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException { + Path copied = Paths.get("src/test/resources/copiedWithNio.txt"); + Path original = Paths.get("src/test/resources/original.txt"); + copied = FileCopier.copyWithNio(original, copied); + assertTrue(Files.exists(copied)); + assertTrue(Files.readAllLines(original).equals(Files.readAllLines(copied))); + } +} From 8b2d647eeccade082df78c5f517b10163b62873f Mon Sep 17 00:00:00 2001 From: Ahmad Alsanie Date: Sat, 18 Nov 2017 20:40:52 +0200 Subject: [PATCH 3/6] BAEL-1308 - test modifications --- .../baeldung/copyfiles/FileCopierTest.java | 57 +++++++++++-------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java b/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java index 72eaaa9bdb..9c95dcec47 100644 --- a/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java +++ b/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java @@ -8,34 +8,41 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import org.junit.Before; import org.junit.Test; public class FileCopierTest { + File original =new File("src/test/resources/original.txt"); + @Before + public void init() throws IOException{ + if(!original.exists()) + Files.createFile(original.toPath()); + } + @Test + public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithIo.txt"); + copied = FileCopier.copyWithIO(original, copied); + assertTrue(copied.exists()); + assertTrue(Files.readAllLines(original.toPath()) + .equals(Files.readAllLines(copied.toPath()))); + } - @Test - public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { - File copied = new File("src/test/resources/copiedWithIo.txt"); - File original = new File("src/test/resources/original.txt"); - copied = FileCopier.copyWithIO(original, copied); - assertTrue(copied.exists()); - assertTrue(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); - } + @Test + public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithApacheCommons.txt"); + copied = FileCopier.copyWithCommonsIO(original, copied); + assertTrue(copied.exists()); + assertTrue(Files.readAllLines(original.toPath()) + .equals(Files.readAllLines(copied.toPath()))); + } - @Test - public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { - File copied = new File("src/test/resources/copiedWithApacheCommons.txt"); - File original = new File("src/test/resources/original.txt"); - copied = FileCopier.copyWithCommonsIO(original, copied); - assertTrue(copied.exists()); - assertTrue(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); - } - - @Test - public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException { - Path copied = Paths.get("src/test/resources/copiedWithNio.txt"); - Path original = Paths.get("src/test/resources/original.txt"); - copied = FileCopier.copyWithNio(original, copied); - assertTrue(Files.exists(copied)); - assertTrue(Files.readAllLines(original).equals(Files.readAllLines(copied))); - } + @Test + public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException { + Path copied = Paths.get("src/test/resources/copiedWithNio.txt"); + Path originalPath = original.toPath(); + copied = FileCopier.copyWithNio(originalPath, copied); + assertTrue(Files.exists(copied)); + assertTrue(Files.readAllLines(originalPath) + .equals(Files.readAllLines(copied))); + } } From cf7c96b469b22c7bc446d3992e51487019041e33 Mon Sep 17 00:00:00 2001 From: Ahmad Alsanie Date: Mon, 20 Nov 2017 18:05:47 +0200 Subject: [PATCH 4/6] BAEL-1308 - copy a file with java (Editor Notes) --- .../com/baeldung/copyfiles/FileCopier.java | 40 --------- .../baeldung/copyfiles/FileCopierTest.java | 88 ++++++++++++------- 2 files changed, 55 insertions(+), 73 deletions(-) delete mode 100644 core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java diff --git a/core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java b/core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java deleted file mode 100644 index 0841cd67a3..0000000000 --- a/core-java/src/main/java/com/baeldung/copyfiles/FileCopier.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.baeldung.copyfiles; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; - -import org.apache.commons.io.FileUtils; - -public class FileCopier { - public static File copyWithIO(File original, File copied) throws IOException { - try (InputStream in = new BufferedInputStream(new FileInputStream(original)); - OutputStream out = new BufferedOutputStream(new FileOutputStream(copied))) { - byte[] buffer = new byte[1024]; - int lengthRead; - while ((lengthRead = in.read(buffer)) > 0) { - out.write(buffer, 0, lengthRead); - out.flush(); - } - } - return copied; - } - - public static Path copyWithNio(Path original, Path copied) throws IOException { - Files.copy(original, copied, StandardCopyOption.REPLACE_EXISTING); - return copied; - } - - public static File copyWithCommonsIO(File original, File copied) throws IOException { - FileUtils.copyFile(original, copied); - return copied; - } -} diff --git a/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java b/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java index 9c95dcec47..973436a26a 100644 --- a/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java +++ b/core-java/src/test/java/com/baeldung/copyfiles/FileCopierTest.java @@ -1,48 +1,70 @@ package com.baeldung.copyfiles; -import static org.junit.Assert.*; - +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import org.apache.commons.io.FileUtils; import org.junit.Before; import org.junit.Test; +import static org.assertj.core.api.Assertions.*; public class FileCopierTest { - File original =new File("src/test/resources/original.txt"); - @Before - public void init() throws IOException{ - if(!original.exists()) - Files.createFile(original.toPath()); - } - @Test - public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { - File copied = new File("src/test/resources/copiedWithIo.txt"); - copied = FileCopier.copyWithIO(original, copied); - assertTrue(copied.exists()); - assertTrue(Files.readAllLines(original.toPath()) - .equals(Files.readAllLines(copied.toPath()))); - } + File original = new File("src/test/resources/original.txt"); - @Test - public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { - File copied = new File("src/test/resources/copiedWithApacheCommons.txt"); - copied = FileCopier.copyWithCommonsIO(original, copied); - assertTrue(copied.exists()); - assertTrue(Files.readAllLines(original.toPath()) - .equals(Files.readAllLines(copied.toPath()))); - } + @Before + public void init() throws IOException { + if (!original.exists()) + Files.createFile(original.toPath()); + } - @Test - public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException { - Path copied = Paths.get("src/test/resources/copiedWithNio.txt"); - Path originalPath = original.toPath(); - copied = FileCopier.copyWithNio(originalPath, copied); - assertTrue(Files.exists(copied)); - assertTrue(Files.readAllLines(originalPath) - .equals(Files.readAllLines(copied))); - } + @Test + public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithIo.txt"); + try (InputStream in = new BufferedInputStream(new FileInputStream(original)); + OutputStream out = new BufferedOutputStream(new FileOutputStream(copied))) { + byte[] buffer = new byte[1024]; + int lengthRead; + while ((lengthRead = in.read(buffer)) > 0) { + out.write(buffer, 0, lengthRead); + out.flush(); + } + } + assertThat(copied).exists(); + assertThat(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); + } + + @Test + public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithApacheCommons.txt"); + FileUtils.copyFile(original, copied); + assertThat(copied).exists(); + assertThat(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); + } + + @Test + public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException { + Path copied = Paths.get("src/test/resources/copiedWithNio.txt"); + Path originalPath = original.toPath(); + Files.copy(originalPath, copied, StandardCopyOption.REPLACE_EXISTING); + assertThat(copied).exists(); + assertThat(Files.readAllLines(originalPath).equals(Files.readAllLines(copied))); + } + + @Test + public void givenGuava_whenCopied_thenCopyExistsWithSameContents() throws IOException { + File copied = new File("src/test/resources/copiedWithApacheCommons.txt"); + com.google.common.io.Files.copy(original, copied); + assertThat(copied).exists(); + assertThat(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath()))); + } } From dd91ef722bf3b1a8968a1ad719f2bd4b29f4818e Mon Sep 17 00:00:00 2001 From: Ahmad Alsanie Date: Mon, 20 Nov 2017 21:08:41 +0200 Subject: [PATCH 5/6] BAEL-1308 DI related code removed and included original text file --- core-java/src/test/resources/original | 2 ++ .../baeldung/ditypes/RegisterarConfig.java | 14 --------- .../java/com/baeldung/ditypes/Registrar.java | 18 ------------ .../main/java/com/baeldung/ditypes/User.java | 20 ------------- .../com/baeldung/ditypes/RegisterarTest.java | 29 ------------------- 5 files changed, 2 insertions(+), 81 deletions(-) create mode 100644 core-java/src/test/resources/original delete mode 100644 spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java delete mode 100644 spring-core/src/main/java/com/baeldung/ditypes/Registrar.java delete mode 100644 spring-core/src/main/java/com/baeldung/ditypes/User.java delete mode 100644 spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java diff --git a/core-java/src/test/resources/original b/core-java/src/test/resources/original new file mode 100644 index 0000000000..cf8c89d389 --- /dev/null +++ b/core-java/src/test/resources/original @@ -0,0 +1,2 @@ +#Copy a File with Java (www.Baeldung.com) +Copying Files with Java is Fun! \ No newline at end of file diff --git a/spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java b/spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java deleted file mode 100644 index c1df1466f3..0000000000 --- a/spring-core/src/main/java/com/baeldung/ditypes/RegisterarConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung.ditypes; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("com.baeldung.ditypes") -public class RegisterarConfig { - @Bean - public User user() { - return new User("Alice", 1); - } -} diff --git a/spring-core/src/main/java/com/baeldung/ditypes/Registrar.java b/spring-core/src/main/java/com/baeldung/ditypes/Registrar.java deleted file mode 100644 index 4406151c1b..0000000000 --- a/spring-core/src/main/java/com/baeldung/ditypes/Registrar.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.baeldung.ditypes; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class Registrar { - private User user; - - @Autowired - public Registrar(User user) { - this.user = user; - } - - public String register() { - return user.register(); - } -} diff --git a/spring-core/src/main/java/com/baeldung/ditypes/User.java b/spring-core/src/main/java/com/baeldung/ditypes/User.java deleted file mode 100644 index b0120c7711..0000000000 --- a/spring-core/src/main/java/com/baeldung/ditypes/User.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.ditypes; - -import org.springframework.stereotype.Component; - -@Component -public class User { - - private String name; - private int id; - - public User(String name, int id) { - this.id = id; - this.name = name; - } - - public String register() { - return "User" + id + ": " + name + " is registered"; - } - -} diff --git a/spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java b/spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java deleted file mode 100644 index a0aea95a2b..0000000000 --- a/spring-core/src/test/java/com/baeldung/ditypes/RegisterarTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.baeldung.ditypes; - -import static org.junit.Assert.*; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = RegisterarConfig.class) -public class RegisterarTest { - - @Autowired - private Registrar reg; - - @Autowired - private User user; - - @Test - public void givenAutowiredAnnotation_whenSetOnField_thenRegistrarIsInjected() { - assertNotNull(reg); - } - - @Test - public void givenAutowiredAnnotation_whenSetOnField_thenUserIsInjected() { - assertEquals("User1: Alice is registered", user.register()); - } -} From 5b25c39f08f963c89416c81696e0776b6bb12bdb Mon Sep 17 00:00:00 2001 From: Ahmad Alsanie Date: Mon, 20 Nov 2017 21:18:17 +0200 Subject: [PATCH 6/6] BAEL-1308 changed name to original.txt --- core-java/src/test/resources/{original => original.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename core-java/src/test/resources/{original => original.txt} (100%) diff --git a/core-java/src/test/resources/original b/core-java/src/test/resources/original.txt similarity index 100% rename from core-java/src/test/resources/original rename to core-java/src/test/resources/original.txt