From 5e08af14a1b96d22116ea3ed7cdb64deb41cf213 Mon Sep 17 00:00:00 2001 From: Ssam Date: Sun, 20 Nov 2022 12:17:56 +0000 Subject: [PATCH] Include new module --- core-java-modules/core-java-jvm-3/README.md | 8 +++++++ core-java-modules/core-java-jvm-3/pom.xml | 21 +++++++++++++++++ .../resource/ClassGetResourceExample.java | 19 +++++++++++++++ .../ClassLoaderGetResourceExample.java | 21 +++++++++++++++++ .../com/baeldung/resource/example.txt | 1 + .../resource/ClassGetResourceUnitTest.java | 21 +++++++++++++++++ .../ClassLoaderGetResourceUnitTest.java | 23 +++++++++++++++++++ 7 files changed, 114 insertions(+) create mode 100644 core-java-modules/core-java-jvm-3/README.md create mode 100644 core-java-modules/core-java-jvm-3/pom.xml create mode 100644 core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassGetResourceExample.java create mode 100644 core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassLoaderGetResourceExample.java create mode 100644 core-java-modules/core-java-jvm-3/src/resources/com/baeldung/resource/example.txt create mode 100644 core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassGetResourceUnitTest.java create mode 100644 core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassLoaderGetResourceUnitTest.java diff --git a/core-java-modules/core-java-jvm-3/README.md b/core-java-modules/core-java-jvm-3/README.md new file mode 100644 index 0000000000..5c694edaa0 --- /dev/null +++ b/core-java-modules/core-java-jvm-3/README.md @@ -0,0 +1,8 @@ +## Core Java JVM Cookbooks and Examples + +This module contains articles about working with the Java Virtual Machine (JVM). + +### Relevant Articles: + +- [Difference Between Class.getResource() and ClassLoader.getResource()](https://www.baeldung.com/java-class-vs-classloader-getresource) +- More articles: [[<-- prev]](/core-java-modules/core-java-jvm-2) diff --git a/core-java-modules/core-java-jvm-3/pom.xml b/core-java-modules/core-java-jvm-3/pom.xml new file mode 100644 index 0000000000..86c3799c09 --- /dev/null +++ b/core-java-modules/core-java-jvm-3/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + core-java-jvm-3 + 0.1.0-SNAPSHOT + core-java-jvm-3 + jar + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + + + \ No newline at end of file diff --git a/core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassGetResourceExample.java b/core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassGetResourceExample.java new file mode 100644 index 0000000000..d843be1c43 --- /dev/null +++ b/core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassGetResourceExample.java @@ -0,0 +1,19 @@ +package com.baeldung.resource; + +import java.net.URL; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ClassGetResourceExample { + + private static Logger logger = LoggerFactory.getLogger(ClassGetResourceExample.class); + + public static void main(String[] args) { + URL resourceAbsolutePath = ClassGetResourceExample.class.getResource("/com/baeldung/resource/example.txt"); + logger.info("Resource with absolute path = {}", resourceAbsolutePath); + + URL resourceRelativePath = ClassGetResourceExample.class.getResource("example.txt"); + logger.info("Resource with relative path = {}", resourceRelativePath); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassLoaderGetResourceExample.java b/core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassLoaderGetResourceExample.java new file mode 100644 index 0000000000..e6ad06bd05 --- /dev/null +++ b/core-java-modules/core-java-jvm-3/src/main/java/com/baeldung/resource/ClassLoaderGetResourceExample.java @@ -0,0 +1,21 @@ +package com.baeldung.resource; + +import java.net.URL; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ClassLoaderGetResourceExample { + + private static Logger logger = LoggerFactory.getLogger(ClassLoaderGetResourceExample.class); + + public static void main(String[] args) { + URL resourceAbsolutePath = ClassLoaderGetResourceExample.class.getClassLoader() + .getResource("com/baeldung/resource/example.txt"); + logger.info("Resource with absolute path = {}", resourceAbsolutePath); + + URL resourceRelativePath = ClassLoaderGetResourceExample.class.getClassLoader() + .getResource("example.txt"); + logger.info("Resource with relative path = {}", resourceRelativePath); + } +} diff --git a/core-java-modules/core-java-jvm-3/src/resources/com/baeldung/resource/example.txt b/core-java-modules/core-java-jvm-3/src/resources/com/baeldung/resource/example.txt new file mode 100644 index 0000000000..61641e23e2 --- /dev/null +++ b/core-java-modules/core-java-jvm-3/src/resources/com/baeldung/resource/example.txt @@ -0,0 +1 @@ +Baeldung \ No newline at end of file diff --git a/core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassGetResourceUnitTest.java b/core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassGetResourceUnitTest.java new file mode 100644 index 0000000000..fb0c88f4bb --- /dev/null +++ b/core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassGetResourceUnitTest.java @@ -0,0 +1,21 @@ +package com.baeldung.resource; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.net.URL; + +class ClassGetResourceUnitTest { + + @Test + void givenRelativeResourcePath_whenGetResource_thenReturnResource() { + URL resourceRelativePath = ClassGetResourceExample.class.getResource("example.txt"); + Assertions.assertNotNull(resourceRelativePath); + } + + @Test + void givenAbsoluteResourcePath_whenGetResource_thenReturnResource() { + URL resourceAbsolutePath = ClassGetResourceExample.class.getResource("/com/baeldung/resource/example.txt"); + Assertions.assertNotNull(resourceAbsolutePath); + } +} diff --git a/core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassLoaderGetResourceUnitTest.java b/core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassLoaderGetResourceUnitTest.java new file mode 100644 index 0000000000..54025c5404 --- /dev/null +++ b/core-java-modules/core-java-jvm-3/test/java/com/baeldung/resource/ClassLoaderGetResourceUnitTest.java @@ -0,0 +1,23 @@ +package com.baeldung.resource; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.net.URL; + +class ClassLoaderGetResourceUnitTest { + + @Test + void givenRelativeResourcePath_whenGetResource_thenReturnNull() { + URL resourceRelativePath = ClassLoaderGetResourceExample.class.getClassLoader() + .getResource("example.txt"); + Assertions.assertNull(resourceRelativePath); + } + + @Test + void givenAbsoluteResourcePath_whenGetResource_thenReturnResource() { + URL resourceAbsolutePath = ClassLoaderGetResourceExample.class.getClassLoader() + .getResource("com/baeldung/resource/example.txt"); + Assertions.assertNotNull(resourceAbsolutePath); + } +}