From 119b4f80c24c6add1bdaee0c7e648dee6ca8b809 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 17 Oct 2018 21:18:18 +0200 Subject: [PATCH] Fixed #335 - build.properties filled by maven; udpated pom; updated dependencies --- pom.xml | 57 +++++++++++-- .../de/deadlocker8/budgetmaster/Build.java | 85 +++++++++++++++++++ .../de/deadlocker8/budgetmaster/Main.java | 12 +-- .../budgetmaster/advices/BuildAdvice.java | 15 ++++ .../authentication/UserService.java | 2 +- .../controller/SettingsController.java | 2 +- .../budgetmaster/database/DatabaseParser.java | 2 +- .../budgetmaster/services/AccountService.java | 2 +- .../services/CategoryService.java | 2 +- .../services/DatabaseService.java | 2 +- .../services/SettingsService.java | 2 +- .../budgetmaster/utils/Strings.java | 6 -- src/main/resources/build.properties | 5 ++ src/main/resources/languages/_de.properties | 5 -- src/main/resources/languages/_en.properties | 5 -- src/main/resources/templates/about.ftl | 6 +- src/main/resources/templates/settings.ftl | 2 +- .../database/DatabaseParser_v3Test.java | 2 +- .../database/LegacyParserTest.java | 2 +- 19 files changed, 173 insertions(+), 43 deletions(-) create mode 100644 src/main/java/de/deadlocker8/budgetmaster/Build.java create mode 100644 src/main/java/de/deadlocker8/budgetmaster/advices/BuildAdvice.java create mode 100644 src/main/resources/build.properties diff --git a/pom.xml b/pom.xml index 1c8494f0c..5bcb117fd 100644 --- a/pom.xml +++ b/pom.xml @@ -32,17 +32,37 @@ </repository> </repositories> - <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>1.5.13.RELEASE</version> - <relativePath/> - </parent> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>${spring-boot-dependencies.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + <dependency> + <groupId>de.thecodelabs</groupId> + <artifactId>jlibs</artifactId> + <version>${jlibs.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> + + <spring-boot-dependencies.version>1.5.13.RELEASE</spring-boot-dependencies.version> + <jlibs.version>2.0.1</jlibs.version> + + <app.versionDate>${maven.build.timestamp}</app.versionDate> + <maven.build.timestamp.format>dd.MM.yy</maven.build.timestamp.format> + <app.versionCode>14</app.versionCode> + <app.author>Robert Goldmann</app.author> </properties> <dependencies> @@ -102,15 +122,18 @@ </dependency> <dependency> - <groupId>de.tobias</groupId> + <groupId>de.thecodelabs</groupId> <artifactId>libLogger-slf4j</artifactId> - <version>1.0.6</version> </dependency> <dependency> <groupId>de.tobias</groupId> <artifactId>libUtils</artifactId> - <version>1.7.4</version> + </dependency> + + <dependency> + <groupId>de.thecodelabs</groupId> + <artifactId>libStorage</artifactId> </dependency> <dependency> @@ -120,7 +143,23 @@ </dependencies> <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + </configuration> + </plugin> + <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> diff --git a/src/main/java/de/deadlocker8/budgetmaster/Build.java b/src/main/java/de/deadlocker8/budgetmaster/Build.java new file mode 100644 index 000000000..379986553 --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/Build.java @@ -0,0 +1,85 @@ +package de.deadlocker8.budgetmaster; + + +import de.thecodelabs.storage.settings.Storage; +import de.thecodelabs.storage.settings.StorageTypes; +import de.thecodelabs.storage.settings.annotation.Key; + +public class Build +{ + @Key("app.name") + private String appName; + + @Key("app.version.name") + private String versionName; + + @Key("app.version.code") + private String versionCode; + + @Key("app.version.date") + private String versionDate; + + @Key("app.author") + private String author; + + private static Build instance; + + public static Build getInstance() + { + if(instance == null) + { + instance = Storage.load(Build.class.getClassLoader().getResourceAsStream("build.properties"), StorageTypes.PROPERTIES, Build.class); + } + return instance; + } + + public Build(String appName, String versionName, String versionCode, String versionDate, String author) + { + this.appName = appName; + this.versionName = versionName; + this.versionCode = versionCode; + this.versionDate = versionDate; + this.author = author; + } + + public Build() + { + } + + public String getAppName() + { + return appName; + } + + public String getVersionName() + { + return versionName; + } + + public String getVersionCode() + { + return versionCode; + } + + public String getVersionDate() + { + return versionDate; + } + + public String getAuthor() + { + return author; + } + + @Override + public String toString() + { + return "Build{" + + "appName='" + appName + '\'' + + ", versionName='" + versionName + '\'' + + ", versionCode='" + versionCode + '\'' + + ", versionDate='" + versionDate + '\'' + + ", author='" + author + '\'' + + '}'; + } +} diff --git a/src/main/java/de/deadlocker8/budgetmaster/Main.java b/src/main/java/de/deadlocker8/budgetmaster/Main.java index 8a1b661d5..48c8f630a 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/Main.java +++ b/src/main/java/de/deadlocker8/budgetmaster/Main.java @@ -1,10 +1,10 @@ package de.deadlocker8.budgetmaster; import de.deadlocker8.budgetmaster.utils.Strings; -import de.tobias.logger.FileOutputOption; -import de.tobias.logger.LogLevel; -import de.tobias.logger.LogLevelFilter; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.FileOutputOption; +import de.thecodelabs.logger.LogLevel; +import de.thecodelabs.logger.LogLevelFilter; +import de.thecodelabs.logger.Logger; import de.tobias.utils.io.PathUtils; import de.tobias.utils.util.Localization; import de.tobias.utils.util.SystemUtils; @@ -53,7 +53,9 @@ public class Main implements ApplicationRunner Logger.init(applicationSupportFolder); Logger.setFileOutput(FileOutputOption.COMBINED); - Logger.appInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE)); + + Build build = Build.getInstance(); + Logger.appInfo(build.getAppName(), build.getVersionName(), build.getVersionCode(), build.getVersionDate()); ProgramArgs.setArgs(Arrays.asList(args)); diff --git a/src/main/java/de/deadlocker8/budgetmaster/advices/BuildAdvice.java b/src/main/java/de/deadlocker8/budgetmaster/advices/BuildAdvice.java new file mode 100644 index 000000000..9c2fc9770 --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/advices/BuildAdvice.java @@ -0,0 +1,15 @@ +package de.deadlocker8.budgetmaster.advices; + +import de.deadlocker8.budgetmaster.Build; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ModelAttribute; + +@ControllerAdvice +public class BuildAdvice +{ + @ModelAttribute("build") + public Build getBuild() + { + return Build.getInstance(); + } +} \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java b/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java index 933d877fc..27979476c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java @@ -2,7 +2,7 @@ package de.deadlocker8.budgetmaster.authentication; import de.deadlocker8.budgetmaster.ProgramArgs; import de.deadlocker8.budgetmaster.services.AccountService; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java index b711835a4..d7f53db7c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java @@ -13,7 +13,7 @@ import de.deadlocker8.budgetmaster.services.HelpersService; import de.deadlocker8.budgetmaster.services.ImportService; import de.deadlocker8.budgetmaster.utils.LanguageType; import de.deadlocker8.budgetmaster.utils.Strings; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import de.tobias.utils.util.Localization; import de.tobias.utils.util.RandomUtils; import org.joda.time.DateTime; diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java index 94cfdb1e8..b1f4df260 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java @@ -3,7 +3,7 @@ package de.deadlocker8.budgetmaster.database; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import de.deadlocker8.budgetmaster.database.legacy.LegacyParser; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import de.tobias.utils.util.Localization; public class DatabaseParser diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java index dab639fd1..b1472a4c3 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java @@ -6,7 +6,7 @@ import de.deadlocker8.budgetmaster.entities.Account; import de.deadlocker8.budgetmaster.repositories.AccountRepository; import de.deadlocker8.budgetmaster.repositories.TransactionRepository; import de.deadlocker8.budgetmaster.utils.Strings; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import de.tobias.utils.util.Localization; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java index d1ab51e13..2ce8a67db 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java @@ -5,7 +5,7 @@ import de.deadlocker8.budgetmaster.entities.CategoryType; import de.deadlocker8.budgetmaster.entities.Transaction; import de.deadlocker8.budgetmaster.repositories.CategoryRepository; import de.deadlocker8.budgetmaster.utils.Strings; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import de.tobias.utils.util.Localization; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java index c699f5c2b..cd448af1c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java @@ -5,7 +5,7 @@ import de.deadlocker8.budgetmaster.database.Database; import de.deadlocker8.budgetmaster.entities.Account; import de.deadlocker8.budgetmaster.entities.Category; import de.deadlocker8.budgetmaster.entities.Transaction; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import org.joda.time.DateTime; import org.joda.time.format.ISODateTimeFormat; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java b/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java index a0d05e15d..622ff4616 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java @@ -2,7 +2,7 @@ package de.deadlocker8.budgetmaster.services; import de.deadlocker8.budgetmaster.entities.Settings; import de.deadlocker8.budgetmaster.repositories.SettingsRepository; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java index d9a2d4d27..21a2cc568 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java +++ b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java @@ -2,12 +2,6 @@ package de.deadlocker8.budgetmaster.utils; public class Strings { - //APP_INFO - public static final String APP_NAME = "app.name"; - public static final String VERSION_CODE = "version.code"; - public static final String VERSION_NAME = "version.name"; - public static final String VERSION_DATE = "version.date"; - //MISC public static final String CATEGORY_NONE = "category.none"; public static final String CATEGORY_REST = "category.rest"; diff --git a/src/main/resources/build.properties b/src/main/resources/build.properties new file mode 100644 index 000000000..6f0fcb711 --- /dev/null +++ b/src/main/resources/build.properties @@ -0,0 +1,5 @@ +app.name=${pom.artifactId} +app.version.code=${app.versionCode} +app.version.name=${pom.version} +app.version.date=${app.versionDate} +app.author=${app.author} \ No newline at end of file diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties index 15725236a..01d4603a5 100644 --- a/src/main/resources/languages/_de.properties +++ b/src/main/resources/languages/_de.properties @@ -1,9 +1,4 @@ # DEFAULT -app.name=BudgetMaster -version.code=14 -version.name=2.0.0 -version.date=23.07.18 -author=Robert Goldmann credits=Verwendete Schriftarten: Roboto<br>Verwendete Bibliotheken:<br>spring-boot-starter-parent 1.5.13<br>spring-boot-devtools 1.5.13<br>spring-boot-starter-web 1.5.13<br>spring-boot-starter-test 1.5.13<br>spring-boot-starter-data-jpa 1.5.13<br>spring-boot-starter-security 1.5.13<br>tools 1.0.0<br>h2 1.4.197<br>joda-time 2.9.9<br>usertype.core 5.0.0.GA<br>maven-surefire-plugin 2.12<br>launch4j-maven-plugin 1.7.21<br>gson 2.8.1<br>jquery 2.1.1<br>materialize 0.100.2<br>fontawesome 5.0.10<br>Google Material Icons<br>Spectrum Colorpicker 1.8.0 folder=Deadlocker/BudgetMaster roadmap.url=https://roadmaps.thecodelabs.de/php/index.php?id=1 diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties index f2f6532d3..aa7eb67c5 100644 --- a/src/main/resources/languages/_en.properties +++ b/src/main/resources/languages/_en.properties @@ -1,9 +1,4 @@ # DEFAULT -app.name=BudgetMaster -version.code=14 -version.name=2.0.0 -version.date=23.07.18 -author=Robert Goldmann credits=Fonts used: Roboto<br>Libraries used:<br>spring-boot-starter-parent 1.5.13<br>spring-boot-devtools 1.5.13<br>spring-boot-starter-web 1.5.13<br>spring-boot-starter-test 1.5.13<br>spring-boot-starter-data-jpa 1.5.13<br>spring-boot-starter-security 1.5.13<br>tools 1.0.0<br>h2 1.4.197<br>joda-time 2.9.9<br>usertype.core 5.0.0.GA<br>maven-surefire-plugin 2.12<br>launch4j-maven-plugin 1.7.21<br>gson 2.8.1<br>jquery 2.1.1<br>materialize 0.100.2<br>fontawesome 5.0.10<br>Google Material Icons<br>Spectrum Colorpicker 1.8.0 folder=Deadlocker/BudgetMaster roadmap.url=https://roadmaps.thecodelabs.de/php/index.php?id=2 diff --git a/src/main/resources/templates/about.ftl b/src/main/resources/templates/about.ftl index 657d884d4..2cc43cad3 100644 --- a/src/main/resources/templates/about.ftl +++ b/src/main/resources/templates/about.ftl @@ -18,15 +18,15 @@ <div class="hide-on-small-only"><br><br></div> <div class="row"> <div class="col s4 m3 offset-m2 l2 offset-l3 bold">${locale.getString("about.version")}</div> - <div class="col s8 m5 l4">${locale.getString("version.name")} (${locale.getString("version.code")})</div> + <div class="col s8 m5 l4">${build.getVersionName()} (${build.getVersionCode()})</div> </div> <div class="row"> <div class="col s4 m3 offset-m2 l2 offset-l3 bold">${locale.getString("about.date")}</div> - <div class="col s8 m5 l4">${locale.getString("version.date")}</div> + <div class="col s8 m5 l4">${build.getVersionDate()}</div> </div> <div class="row"> <div class="col s4 m3 offset-m2 l2 offset-l3 bold">${locale.getString("about.author")}</div> - <div class="col s8 m5 l4">${locale.getString("author")}</div> + <div class="col s8 m5 l4">${build.getAuthor()}</div> </div> <div class="row"> <div class="col s4 m3 offset-m2 l2 offset-l3 bold">${locale.getString("about.roadmap")}</div> diff --git a/src/main/resources/templates/settings.ftl b/src/main/resources/templates/settings.ftl index 606388cb9..caf735bac 100644 --- a/src/main/resources/templates/settings.ftl +++ b/src/main/resources/templates/settings.ftl @@ -108,7 +108,7 @@ </div> </td> <td>${locale.getString("settings.updates.current.version")}</td> - <td>v${locale.getString("version.name")} (${locale.getString("version.code")})</td> + <td>v${build.getVersionName()} (${build.getVersionCode()})</td> </tr> <tr> <td>${locale.getString("settings.updates.latest.version")}</td> diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java index 9673448ee..4ffccc79a 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java +++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java @@ -4,7 +4,7 @@ import de.deadlocker8.budgetmaster.entities.*; import de.deadlocker8.budgetmaster.repeating.RepeatingOption; import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndAfterXTimes; import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import de.tobias.utils.util.Localization; import de.tobias.utils.util.Localization.LocalizationDelegate; import org.joda.time.DateTime; diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java index 5f549b0a8..6b082834a 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java @@ -7,7 +7,7 @@ import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate; import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndNever; import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays; import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierMonths; -import de.tobias.logger.Logger; +import de.thecodelabs.logger.Logger; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.junit.Test; -- GitLab