From a4f1defb280c0d313f504c1a3eba5068bfdd61a5 Mon Sep 17 00:00:00 2001 From: Donato Rimenti Date: Thu, 2 Jul 2020 20:21:57 +0200 Subject: [PATCH 1/6] [BAEL-4074] Accessing Maven properties in Java --- maven-all/maven-2/.gitignore | 2 + maven-all/maven-2/README.md | 6 +++ maven-all/maven-2/pom.xml | 51 +++++++++++++++++++ .../maven/properties/PropertiesReader.java | 41 +++++++++++++++ .../properties/PropertiesReaderUnitTest.java | 27 ++++++++++ 5 files changed, 127 insertions(+) create mode 100644 maven-all/maven-2/.gitignore create mode 100644 maven-all/maven-2/README.md create mode 100644 maven-all/maven-2/pom.xml create mode 100644 maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java create mode 100644 maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java diff --git a/maven-all/maven-2/.gitignore b/maven-all/maven-2/.gitignore new file mode 100644 index 0000000000..bae0b0d7ce --- /dev/null +++ b/maven-all/maven-2/.gitignore @@ -0,0 +1,2 @@ +/output-resources +/.idea/ diff --git a/maven-all/maven-2/README.md b/maven-all/maven-2/README.md new file mode 100644 index 0000000000..5878a4f732 --- /dev/null +++ b/maven-all/maven-2/README.md @@ -0,0 +1,6 @@ +## Apache Maven + +This module contains articles about core Apache Maven. Articles about other Maven plugins (such as the Maven WAR Plugin) +have their own dedicated modules. + +### Relevant Articles diff --git a/maven-all/maven-2/pom.xml b/maven-all/maven-2/pom.xml new file mode 100644 index 0000000000..629da573b5 --- /dev/null +++ b/maven-all/maven-2/pom.xml @@ -0,0 +1,51 @@ + + + 4.0.0 + maven-2 + 0.0.1-SNAPSHOT + maven-2 + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../.. + + + + + junit + junit + 4.13 + + + + + + + org.codehaus.mojo + properties-maven-plugin + 1.0.0 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties-from-pom.properties + + + + + + + + + ${project.name} + property-from-pom + + + \ No newline at end of file diff --git a/maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java b/maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java new file mode 100644 index 0000000000..e7000ec2ce --- /dev/null +++ b/maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java @@ -0,0 +1,41 @@ +package com.baeldung.maven.properties; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +/** + * Reads properties from one file. + * + * @author Donato Rimenti + */ +public class PropertiesReader { + + /** + * Properties managed by this reader. + */ + private Properties properties; + + /** + * Reads the property file with the given name. + * + * @param propertyFileName the name of the property file to read + * @throws IOException if the file is not found or there's a problem reading it + */ + public PropertiesReader(String propertyFileName) throws IOException { + InputStream is = getClass().getClassLoader() + .getResourceAsStream(propertyFileName); + this.properties = new Properties(); + this.properties.load(is); + } + + /** + * Gets the property with the given name from the property file. + * @param propertyName the name of the property to read + * @return the property with the given name + */ + public String getProperty(String propertyName) { + return this.properties.getProperty(propertyName); + } + +} \ No newline at end of file diff --git a/maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java b/maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java new file mode 100644 index 0000000000..a1d6e66047 --- /dev/null +++ b/maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.maven.properties; + +import java.io.IOException; + +import org.junit.Assert; +import org.junit.Test; + +/** + * Test for {@link PropertiesReader}. + * + * @author Donato Rimenti + */ +public class PropertiesReaderUnitTest { + + /** + * Reads a property and checks that's the one expected. + * + * @throws IOException if anything goes wrong + */ + @Test + public void givenPomProperties_whenPropertyRead_thenPropertyReturned() throws IOException { + PropertiesReader reader = new PropertiesReader("properties-from-pom.properties"); + String property = reader.getProperty("my.awesome.property"); + Assert.assertEquals("property-from-pom", property); + } + +} \ No newline at end of file From f7739a26b8dbfb624f14b1977c3303d396e32802 Mon Sep 17 00:00:00 2001 From: Donato Rimenti Date: Sun, 12 Jul 2020 11:38:22 +0200 Subject: [PATCH 2/6] Fixed formatting. --- maven-all/maven-2/pom.xml | 86 +++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/maven-all/maven-2/pom.xml b/maven-all/maven-2/pom.xml index 629da573b5..74bae61f03 100644 --- a/maven-all/maven-2/pom.xml +++ b/maven-all/maven-2/pom.xml @@ -1,51 +1,51 @@ - 4.0.0 - maven-2 - 0.0.1-SNAPSHOT - maven-2 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + maven-2 + 0.0.1-SNAPSHOT + maven-2 - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../.. - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../.. + - - - junit - junit - 4.13 - - + + + junit + junit + 4.13 + + - - - - org.codehaus.mojo - properties-maven-plugin - 1.0.0 - - - generate-resources - - write-project-properties - - - ${project.build.outputDirectory}/properties-from-pom.properties - - - - - - + + + + org.codehaus.mojo + properties-maven-plugin + 1.0.0 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties-from-pom.properties + + + + + + - - ${project.name} - property-from-pom - + + ${project.name} + property-from-pom + \ No newline at end of file From 192b067e96a2559ebd6034c4d08953d9dede89cc Mon Sep 17 00:00:00 2001 From: Donato Rimenti Date: Sun, 12 Jul 2020 11:45:26 +0200 Subject: [PATCH 3/6] Moved and renamed maven-all/maven-2 to maven-modules/maven-properties --- maven-modules/maven-properties/.gitignore | 2 + maven-modules/maven-properties/README.md | 8 +++ maven-modules/maven-properties/pom.xml | 51 +++++++++++++++++++ .../maven/properties/PropertiesReader.java | 41 +++++++++++++++ .../properties/PropertiesReaderUnitTest.java | 27 ++++++++++ maven-modules/pom.xml | 1 + 6 files changed, 130 insertions(+) create mode 100644 maven-modules/maven-properties/.gitignore create mode 100644 maven-modules/maven-properties/README.md create mode 100644 maven-modules/maven-properties/pom.xml create mode 100644 maven-modules/maven-properties/src/main/java/com/baeldung/maven/properties/PropertiesReader.java create mode 100644 maven-modules/maven-properties/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java diff --git a/maven-modules/maven-properties/.gitignore b/maven-modules/maven-properties/.gitignore new file mode 100644 index 0000000000..bae0b0d7ce --- /dev/null +++ b/maven-modules/maven-properties/.gitignore @@ -0,0 +1,2 @@ +/output-resources +/.idea/ diff --git a/maven-modules/maven-properties/README.md b/maven-modules/maven-properties/README.md new file mode 100644 index 0000000000..65d976189c --- /dev/null +++ b/maven-modules/maven-properties/README.md @@ -0,0 +1,8 @@ +## Apache Maven + +This module contains articles about core Apache Maven. Articles about other Maven plugins (such as the Maven WAR Plugin) +have their own dedicated modules. + +### Relevant Articles + +- [Accessing Maven Properties in Java] \ No newline at end of file diff --git a/maven-modules/maven-properties/pom.xml b/maven-modules/maven-properties/pom.xml new file mode 100644 index 0000000000..2cd92da42f --- /dev/null +++ b/maven-modules/maven-properties/pom.xml @@ -0,0 +1,51 @@ + + + 4.0.0 + maven-properties + 0.0.1-SNAPSHOT + maven-properties + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../.. + + + + + junit + junit + 4.13 + + + + + + + org.codehaus.mojo + properties-maven-plugin + 1.0.0 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties-from-pom.properties + + + + + + + + + ${project.name} + property-from-pom + + + \ No newline at end of file diff --git a/maven-modules/maven-properties/src/main/java/com/baeldung/maven/properties/PropertiesReader.java b/maven-modules/maven-properties/src/main/java/com/baeldung/maven/properties/PropertiesReader.java new file mode 100644 index 0000000000..e7000ec2ce --- /dev/null +++ b/maven-modules/maven-properties/src/main/java/com/baeldung/maven/properties/PropertiesReader.java @@ -0,0 +1,41 @@ +package com.baeldung.maven.properties; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +/** + * Reads properties from one file. + * + * @author Donato Rimenti + */ +public class PropertiesReader { + + /** + * Properties managed by this reader. + */ + private Properties properties; + + /** + * Reads the property file with the given name. + * + * @param propertyFileName the name of the property file to read + * @throws IOException if the file is not found or there's a problem reading it + */ + public PropertiesReader(String propertyFileName) throws IOException { + InputStream is = getClass().getClassLoader() + .getResourceAsStream(propertyFileName); + this.properties = new Properties(); + this.properties.load(is); + } + + /** + * Gets the property with the given name from the property file. + * @param propertyName the name of the property to read + * @return the property with the given name + */ + public String getProperty(String propertyName) { + return this.properties.getProperty(propertyName); + } + +} \ No newline at end of file diff --git a/maven-modules/maven-properties/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java b/maven-modules/maven-properties/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java new file mode 100644 index 0000000000..a1d6e66047 --- /dev/null +++ b/maven-modules/maven-properties/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.maven.properties; + +import java.io.IOException; + +import org.junit.Assert; +import org.junit.Test; + +/** + * Test for {@link PropertiesReader}. + * + * @author Donato Rimenti + */ +public class PropertiesReaderUnitTest { + + /** + * Reads a property and checks that's the one expected. + * + * @throws IOException if anything goes wrong + */ + @Test + public void givenPomProperties_whenPropertyRead_thenPropertyReturned() throws IOException { + PropertiesReader reader = new PropertiesReader("properties-from-pom.properties"); + String property = reader.getProperty("my.awesome.property"); + Assert.assertEquals("property-from-pom", property); + } + +} \ No newline at end of file diff --git a/maven-modules/pom.xml b/maven-modules/pom.xml index c4d8c253df..2de8560244 100644 --- a/maven-modules/pom.xml +++ b/maven-modules/pom.xml @@ -24,6 +24,7 @@ maven-profiles versions-maven-plugin version-collision + maven-properties From 0d5a288fec717c62e42b728fcef83a13288b2514 Mon Sep 17 00:00:00 2001 From: Donato Rimenti Date: Sun, 12 Jul 2020 11:47:27 +0200 Subject: [PATCH 4/6] Fixed pom formatting. --- maven-modules/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-modules/pom.xml b/maven-modules/pom.xml index 2de8560244..d990ed16c1 100644 --- a/maven-modules/pom.xml +++ b/maven-modules/pom.xml @@ -24,7 +24,7 @@ maven-profiles versions-maven-plugin version-collision - maven-properties + maven-properties From 973e78dc4c17a874ce300db1cbcf3c6375bcc3d3 Mon Sep 17 00:00:00 2001 From: Donato Rimenti Date: Sun, 12 Jul 2020 18:01:22 +0200 Subject: [PATCH 5/6] Removed maven-all project since it was moved to maven-modules. --- maven-all/maven-2/.gitignore | 2 - maven-all/maven-2/README.md | 6 --- maven-all/maven-2/pom.xml | 51 ------------------- .../maven/properties/PropertiesReader.java | 41 --------------- .../properties/PropertiesReaderUnitTest.java | 27 ---------- 5 files changed, 127 deletions(-) delete mode 100644 maven-all/maven-2/.gitignore delete mode 100644 maven-all/maven-2/README.md delete mode 100644 maven-all/maven-2/pom.xml delete mode 100644 maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java delete mode 100644 maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java diff --git a/maven-all/maven-2/.gitignore b/maven-all/maven-2/.gitignore deleted file mode 100644 index bae0b0d7ce..0000000000 --- a/maven-all/maven-2/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/output-resources -/.idea/ diff --git a/maven-all/maven-2/README.md b/maven-all/maven-2/README.md deleted file mode 100644 index 5878a4f732..0000000000 --- a/maven-all/maven-2/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Apache Maven - -This module contains articles about core Apache Maven. Articles about other Maven plugins (such as the Maven WAR Plugin) -have their own dedicated modules. - -### Relevant Articles diff --git a/maven-all/maven-2/pom.xml b/maven-all/maven-2/pom.xml deleted file mode 100644 index 74bae61f03..0000000000 --- a/maven-all/maven-2/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - maven-2 - 0.0.1-SNAPSHOT - maven-2 - - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - ../.. - - - - - junit - junit - 4.13 - - - - - - - org.codehaus.mojo - properties-maven-plugin - 1.0.0 - - - generate-resources - - write-project-properties - - - ${project.build.outputDirectory}/properties-from-pom.properties - - - - - - - - - ${project.name} - property-from-pom - - - \ No newline at end of file diff --git a/maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java b/maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java deleted file mode 100644 index e7000ec2ce..0000000000 --- a/maven-all/maven-2/src/main/java/com/baeldung/maven/properties/PropertiesReader.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.baeldung.maven.properties; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -/** - * Reads properties from one file. - * - * @author Donato Rimenti - */ -public class PropertiesReader { - - /** - * Properties managed by this reader. - */ - private Properties properties; - - /** - * Reads the property file with the given name. - * - * @param propertyFileName the name of the property file to read - * @throws IOException if the file is not found or there's a problem reading it - */ - public PropertiesReader(String propertyFileName) throws IOException { - InputStream is = getClass().getClassLoader() - .getResourceAsStream(propertyFileName); - this.properties = new Properties(); - this.properties.load(is); - } - - /** - * Gets the property with the given name from the property file. - * @param propertyName the name of the property to read - * @return the property with the given name - */ - public String getProperty(String propertyName) { - return this.properties.getProperty(propertyName); - } - -} \ No newline at end of file diff --git a/maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java b/maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java deleted file mode 100644 index a1d6e66047..0000000000 --- a/maven-all/maven-2/src/test/java/com/baeldung/maven/properties/PropertiesReaderUnitTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.baeldung.maven.properties; - -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Test for {@link PropertiesReader}. - * - * @author Donato Rimenti - */ -public class PropertiesReaderUnitTest { - - /** - * Reads a property and checks that's the one expected. - * - * @throws IOException if anything goes wrong - */ - @Test - public void givenPomProperties_whenPropertyRead_thenPropertyReturned() throws IOException { - PropertiesReader reader = new PropertiesReader("properties-from-pom.properties"); - String property = reader.getProperty("my.awesome.property"); - Assert.assertEquals("property-from-pom", property); - } - -} \ No newline at end of file From bd75b576f7e0f2080a49cb43fb00187a28c2fb94 Mon Sep 17 00:00:00 2001 From: Donato Rimenti Date: Mon, 20 Jul 2020 21:29:10 +0200 Subject: [PATCH 6/6] Fixed modules orders. --- maven-modules/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-modules/pom.xml b/maven-modules/pom.xml index d990ed16c1..2ce12beed3 100644 --- a/maven-modules/pom.xml +++ b/maven-modules/pom.xml @@ -22,9 +22,9 @@ maven-unused-dependencies maven-war-plugin maven-profiles + maven-properties versions-maven-plugin version-collision - maven-properties