From 3777e7b993e8abd216f157ac1a4359a36a8a4d1d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 21 Mar 2024 13:59:17 -0700 Subject: [PATCH 01/60] Added JDK 22 to CI --- .github/workflows/bld.yml | 6 +++--- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 2b0ba38..f736169 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -1,6 +1,6 @@ name: bld-ci -on: [ push, pull_request, workflow_dispatch ] +on: [push, pull_request, workflow_dispatch] jobs: build-bld-project: @@ -8,7 +8,7 @@ jobs: strategy: matrix: - java-version: [ 17, 20 ] + java-version: [17, 21, 22] steps: - name: Checkout source repository @@ -19,7 +19,7 @@ jobs: - name: Set up JDK ${{ matrix.java-version }} uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: "zulu" java-version: ${{ matrix.java-version }} - name: Grant execute permission for bld diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index e63713531201055d2d5d71dfd5204bbdd65996a0..82762f1dd24fca63ea5add2e5d08292f16e8a107 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6i6yxcdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx69e;#vM+x;)DP07`l`ivR!s diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 82175bebba96ffd9f59db271360cbbadf6dc0066..82762f1dd24fca63ea5add2e5d08292f16e8a107 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6i6yxcdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx-sRnz8GF8Qv-9 z8Nm$MG()h| Date: Wed, 17 Apr 2024 17:03:00 -0700 Subject: [PATCH 02/60] Bumped worflows actions to the latest versions --- .github/workflows/bld.yml | 4 ++-- .github/workflows/pages.yml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index f736169..c0ba763 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -12,12 +12,12 @@ jobs: steps: - name: Checkout source repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: "zulu" java-version: ${{ matrix.java-version }} diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index f6122cd..bf43624 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -30,14 +30,14 @@ jobs: steps: - name: Checkout source repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'zulu' + distribution: "zulu" java-version: 17 - name: Build Javadocs @@ -50,8 +50,8 @@ jobs: uses: actions/upload-pages-artifact@v1 with: # Upload generated Javadocs repository - path: 'build/javadoc/' + path: "build/javadoc/" - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 \ No newline at end of file + uses: actions/deploy-pages@v1 From 5beca281e6b262f553a03232c01082da140b3970 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 17 Apr 2024 17:04:56 -0700 Subject: [PATCH 03/60] Bumped PMD extension to version 0.9.8 Bumped JaCoCo extension to version 0.9.5 --- config/pmd.xml | 9 ++++----- lib/bld/bld-wrapper.properties | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/config/pmd.xml b/config/pmd.xml index 1039e40..3d3203c 100644 --- a/config/pmd.xml +++ b/config/pmd.xml @@ -24,8 +24,8 @@ - + @@ -35,8 +35,9 @@ - + + @@ -52,8 +53,6 @@ - - @@ -107,4 +106,4 @@ - \ No newline at end of file + diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index f75783a..63d4bc2 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.7 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.8 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.0 From 599190aae1f18cc0872c0108ae58b76f057edf21 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 17 Apr 2024 17:06:22 -0700 Subject: [PATCH 04/60] Output generated class location as a file URL. --- src/main/java/rife/bld/extension/GeneratedVersionOperation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 628d1e5..df5c603 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -144,7 +144,7 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 17 Apr 2024 17:07:48 -0700 Subject: [PATCH 05/60] Bumped to version 0.9.6-SNAPSHOT --- examples/lib/bld/bld-wrapper.properties | 2 +- examples/src/bld/java/com/example/SampleBuild.java | 2 ++ examples/src/main/java/com/example/GeneratedVersion.java | 2 +- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 7afe142..86e406b 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.5 +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6-SNAPSHOT bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.0 diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index 80e1fce..501f590 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -25,6 +25,8 @@ public class SampleBuild extends Project { mainClass = "com.example.SampleMain"; version = version(1, 0, 1, "rc1"); + javaRelease = 17; + autoDownloadPurge = true; downloadSources = true; diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index 6e1506d..82cafb7 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1708978279960L); + public static final Date BUILD_DATE = new Date(1713398927971L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 3030d78..14301f4 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 5); + version = version(0, 9, 6, "SNAPSHOT"); javaRelease = 17; downloadSources = true; @@ -78,7 +78,7 @@ public class GeneratedVersionOperationBuild extends Project { .license( new PublishLicense() .name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt") + .url("https://www.apache.org/licenses/LICENSE-2.0.txt") ) .scm( new PublishScm() From d6a1919b5eb878409b130926f21aa6ea6a435bee Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 9 May 2024 20:54:52 -0700 Subject: [PATCH 06/60] Bumped bld to version 1.9.1 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.properties | 2 +- .../GeneratedVersionOperationBuild.java | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 0b615c1..a2969be 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e8368e..d136e4d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index 460ade8..c128f29 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.9.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-generated-version) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-generated-version) [![GitHub CI](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 0b615c1..a2969be 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 9e8368e..d136e4d 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 82762f1dd24fca63ea5add2e5d08292f16e8a107..18ecfd46dab1a4629e6b18f4322a1aea5e9a8a8c 100644 GIT binary patch delta 166 zcmdmfm2vx3M&1B#W)=|!4h{|m=AOk9dFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYnB7y`W6IrKB%X0tOeFt7q~fHxzP2m{>U$&)jjLE0wY%VOdrXNgNSGOa{$#vfXtd)lVuG6ws10R delta 166 zcmdmfm2vx3M&1B#W)=|!4h{~6i6yxcdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYmW7y`W6Id(?Al3{0HU| Date: Thu, 9 May 2024 20:55:18 -0700 Subject: [PATCH 07/60] Bumped PMD extension to version 0.9.9 --- lib/bld/bld-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 6a64fac..6e26fef 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.8 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.9 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= From b725eb7b2f80a39d20b827dc2eef00062ba1a0cf Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 11 May 2024 15:35:45 -0700 Subject: [PATCH 08/60] Fixed class location URL --- src/main/java/rife/bld/extension/GeneratedVersionOperation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index df5c603..484ccf0 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -144,7 +144,7 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Sun, 26 May 2024 23:09:05 -0700 Subject: [PATCH 09/60] Bumped assertj-core to version 3.26.0 --- .../java/rife/bld/extension/GeneratedVersionOperationBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 2fab47e..49cf2fc 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -48,7 +48,7 @@ public class GeneratedVersionOperationBuild extends Project { scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) - .include(dependency("org.assertj", "assertj-core", version(3, 25, 3))); + .include(dependency("org.assertj", "assertj-core", version(3, 26, 0))); precompileOperation() .templateTypes(TXT); From 1e90d059cfa9160f80848338686eba14001f9d88 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 26 May 2024 23:10:01 -0700 Subject: [PATCH 10/60] Version 0.9.6 --- examples/lib/bld/bld-wrapper.properties | 2 +- examples/src/bld/java/com/example/SampleBuild.java | 4 ---- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index b95c5e1..d315b82 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6-SNAPSHOT +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.1 diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index 501f590..ef51aad 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -13,10 +13,6 @@ import static rife.bld.dependencies.Scope.test; /** * Example build. - * - *
    - *
  • ./bld compile run
  • - *
*/ public class SampleBuild extends Project { public SampleBuild() { diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 49cf2fc..f50c17e 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 6, "SNAPSHOT"); + version = version(0, 9, 6); javaRelease = 17; downloadSources = true; From 1cfa3a712fb828896b70569152e1f1d5876baad6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 22 Jun 2024 20:15:40 -0700 Subject: [PATCH 11/60] Added ability to the directory and script template using a String --- examples/lib/bld/bld-wrapper.properties | 4 ++-- .../java/com/example/GeneratedVersion.java | 2 +- lib/bld/bld-wrapper.properties | 6 +++--- .../GeneratedVersionOperationBuild.java | 4 +++- .../extension/GeneratedVersionOperation.java | 20 +++++++++++++++++++ .../bld/extension/GeneratedVersionTest.java | 20 +++++++++++++++++++ src/test/resources/myversion_test.txt | 11 ++++++++++ 7 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 src/test/resources/myversion_test.txt diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index d315b82..654c8db 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6 -bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= +bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7-SNAPSHOT +bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index 82cafb7..eb4071d 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1713398927971L); + public static final Date BUILD_DATE = new Date(1719112298450L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 6e26fef..7a65d7b 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.9 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.0 +bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index f50c17e..7e54661 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,11 +36,13 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 6); + version = version(0, 9, 7, "SNAPSHOT"); javaRelease = 17; + downloadSources = true; autoDownloadPurge = true; + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 484ccf0..88ca63e 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -175,6 +175,16 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 3 Jul 2024 16:16:52 -0700 Subject: [PATCH 12/60] Bumped dependencies PMD extension to version 1.1.2 JUnit to versin 5.10.3 --- examples/src/bld/java/com/example/SampleBuild.java | 4 ++-- lib/bld/bld-wrapper.properties | 2 +- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index ef51aad..f7db800 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -28,8 +28,8 @@ public class SampleBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))); } public static void main(String[] args) { diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 7a65d7b..0a58fab 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,6 +2,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.0 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 7e54661..7d8ddae 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -48,8 +48,8 @@ public class GeneratedVersionOperationBuild extends Project { scope(compile) .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1))); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) .include(dependency("org.assertj", "assertj-core", version(3, 26, 0))); precompileOperation() @@ -104,7 +104,7 @@ public class GeneratedVersionOperationBuild extends Project { } @BuildCommand(summary = "Runs PMD analysis") - public void pmd() { + public void pmd() throws Exception { new PmdOperation() .fromProject(this) .failOnViolation(true) From 3e564915eaefc1548b0cb161c9cf702f7f06cdc0 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 3 Jul 2024 16:23:08 -0700 Subject: [PATCH 13/60] Moved template generation methods to GeneratedVersion class --- .../rife/bld/extension/GeneratedVersion.java | 160 ++++++++++++++---- .../extension/GeneratedVersionOperation.java | 139 +-------------- .../bld/extension/GeneratedVersionTest.java | 59 +++++-- ...ersion_test.txt => other_version_test.txt} | 0 4 files changed, 182 insertions(+), 176 deletions(-) rename src/test/resources/{myversion_test.txt => other_version_test.txt} (100%) diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 4cf1ddd..6c9b5ee 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -17,8 +17,16 @@ package rife.bld.extension; import rife.bld.BaseProject; +import rife.resources.ResourceFinderDirectories; +import rife.template.Template; +import rife.template.TemplateConfig; +import rife.template.TemplateFactory; +import rife.tools.FileUtils; import java.io.File; +import java.io.IOException; +import java.nio.file.Path; +import java.util.Objects; /** * GeneratedVersion data class. @@ -26,16 +34,86 @@ import java.io.File; * @author Erik C. Thauvin * @since 1.0 */ -@SuppressWarnings("PMD.DataClass") public class GeneratedVersion { - private File classFile; - private String className; - private File directory; - private String extension = ".java"; - private String packageName; - private BaseProject project; - private String projectName; - private File template; + private static final String CLASSNAME = "className"; + private static final String EPOCH = "epoch"; + private static final String MAJOR = "major"; + private static final String MINOR = "minor"; + private static final String PACKAGE_NAME = "packageName"; + private static final String PROJECT = "project"; + private static final String QUALIFIER = "qualifier"; + private static final String REVISION = "revision"; + private static final String VERSION = "version"; + private File classFile_; + private String className_; + private File directory_; + private String extension_ = ".java"; + private String packageName_; + private String projectName_; + private BaseProject project_; + private File template_; + + /** + * Builds the template based on the {@link GeneratedVersion} data. + * + * @return the template + */ + public Template buildTemplate() { + Template template; + var version = project_.version(); + if (template_ == null) { + template = TemplateFactory.TXT.get("version.txt"); + } else { + var files = new ResourceFinderDirectories(template_.getParentFile()); + template = new TemplateFactory(TemplateConfig.TXT, "txtFiles", TemplateFactory.TXT) + .setResourceFinder(files).get(template_.getName()); + } + + if (packageName_ == null) { + packageName_ = project_.pkg(); + } + + if (template.hasValueId(PACKAGE_NAME)) { + template.setValue(PACKAGE_NAME, packageName_); + } + + if (template.hasValueId(CLASSNAME)) { + template.setValue(CLASSNAME, Objects.requireNonNullElse(className_, "GeneratedVersion")); + } + + if (template.hasValueId(PROJECT)) { + if (projectName_ == null) { + projectName_ = project_.name(); + } + template.setValue(PROJECT, projectName_); + } + + if (template.hasValueId(EPOCH)) { + template.setValue(EPOCH, System.currentTimeMillis()); + } + + if (template.hasValueId(VERSION)) { + template.setValue(VERSION, version.toString()); + } + + if (template.hasValueId(MAJOR)) { + template.setValue(MAJOR, version.majorInt()); + } + + if (template.hasValueId(MINOR)) { + template.setValue(MINOR, version.minorInt()); + } + + if (template.hasValueId(REVISION)) { + template.setValue(REVISION, version.revisionInt()); + } + + if (template.hasValueId(QUALIFIER)) { + template.setValue(QUALIFIER, version.qualifier()); + } + + return template; + } /** * Returns the class file. @@ -43,7 +121,7 @@ public class GeneratedVersion { * @return the class file */ public File getClassFile() { - return classFile; + return classFile_; } /** @@ -52,7 +130,7 @@ public class GeneratedVersion { * @return the class name */ public String getClassName() { - return className; + return className_; } /** @@ -61,7 +139,7 @@ public class GeneratedVersion { * @return the destination directory */ public File getDirectory() { - return directory; + return directory_; } /** @@ -70,7 +148,7 @@ public class GeneratedVersion { * @return the file extension */ public String getExtension() { - return extension; + return extension_; } /** @@ -79,7 +157,7 @@ public class GeneratedVersion { * @return the package name */ public String getPackageName() { - return packageName; + return packageName_; } /** @@ -88,7 +166,7 @@ public class GeneratedVersion { * @return the project */ public BaseProject getProject() { - return project; + return project_; } /** @@ -97,7 +175,7 @@ public class GeneratedVersion { * @return the project name */ public String getProjectName() { - return projectName; + return projectName_; } /** @@ -106,16 +184,7 @@ public class GeneratedVersion { * @return the template */ public File getTemplate() { - return template; - } - - /** - * Sets the class file. - * - * @param classFile the class file - */ - public void setClassFile(File classFile) { - this.classFile = classFile; + return template_; } /** @@ -124,7 +193,7 @@ public class GeneratedVersion { * @param className the class name */ public void setClassName(String className) { - this.className = className; + this.className_ = className; } /** @@ -133,7 +202,7 @@ public class GeneratedVersion { * @param directory the destination directory */ public void setDirectory(File directory) { - this.directory = directory; + this.directory_ = directory; } /** @@ -142,7 +211,7 @@ public class GeneratedVersion { * @param extension the file extension */ public void setExtension(String extension) { - this.extension = extension; + this.extension_ = extension; } /** @@ -151,7 +220,7 @@ public class GeneratedVersion { * @param packageName the package name */ public void setPackageName(String packageName) { - this.packageName = packageName; + this.packageName_ = packageName; } /** @@ -160,7 +229,7 @@ public class GeneratedVersion { * @param project the project */ public void setProject(BaseProject project) { - this.project = project; + this.project_ = project; } /** @@ -169,7 +238,7 @@ public class GeneratedVersion { * @param projectName the project name */ public void setProjectName(String projectName) { - this.projectName = projectName; + this.projectName_ = projectName; } /** @@ -178,6 +247,31 @@ public class GeneratedVersion { * @param template the template */ public void setTemplate(File template) { - this.template = template; + this.template_ = template; + } + + /** + * Writes the project version class in the given directory. + */ + public void writeTemplate(Template template) throws IOException { + if (packageName_ != null) { + classFile_ = Path.of(directory_.getAbsolutePath(), packageName_.replace(".", File.separator), + className_ + extension_).toFile(); + } else { + classFile_ = new File(directory_, className_ + ".java"); + } + + if (!classFile_.getParentFile().exists()) { + var dirs = classFile_.getParentFile().mkdirs(); + if (!dirs && !classFile_.getParentFile().exists()) { + throw new IOException("Could not create project package directories: " + classFile_.getParent()); + } + } + + try { + FileUtils.writeString(template.getContent(), classFile_); + } catch (IOException e) { + throw new IOException("Unable to write the version class file: " + e.getMessage(), e); + } } } diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 88ca63e..9cb1707 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -19,16 +19,9 @@ package rife.bld.extension; import rife.bld.BaseProject; import rife.bld.operations.AbstractOperation; -import rife.resources.ResourceFinderDirectories; -import rife.template.Template; -import rife.template.TemplateConfig; -import rife.template.TemplateFactory; -import rife.tools.FileUtils; import java.io.File; import java.io.IOException; -import java.nio.file.Path; -import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; @@ -39,119 +32,8 @@ import java.util.logging.Logger; * @since 1.0 */ public class GeneratedVersionOperation extends AbstractOperation { - private static final String CLASSNAME = "className"; - private static final String EPOCH = "epoch"; private static final Logger LOGGER = Logger.getLogger(GeneratedVersionOperation.class.getName()); - private static final String MAJOR = "major"; - private static final String MINOR = "minor"; - private static final String PACKAGE_NAME = "packageName"; - private static final String PROJECT = "project"; - private static final String QUALIFIER = "qualifier"; - private static final String REVISION = "revision"; - private static final String VERSION = "version"; - private final GeneratedVersion generatedVersion = new GeneratedVersion(); - - /** - * Builds the template based on the {@link GeneratedVersion} data. - * - * @param gv the generated version - * @return the template - */ - public static Template buildTemplate(GeneratedVersion gv) { - Template template; - var version = gv.getProject().version(); - if (gv.getTemplate() == null) { - template = TemplateFactory.TXT.get("version.txt"); - } else { - var files = new ResourceFinderDirectories(gv.getTemplate().getParentFile()); - template = new TemplateFactory(TemplateConfig.TXT, "txtFiles", TemplateFactory.TXT) - .setResourceFinder(files).get(gv.getTemplate().getName()); - } - - if (gv.getPackageName() == null) { - gv.setPackageName(gv.getProject().pkg()); - } - - if (template.hasValueId(PACKAGE_NAME)) { - template.setValue(PACKAGE_NAME, gv.getPackageName()); - } - - gv.setClassName(Objects.requireNonNullElse(gv.getClassName(), "GeneratedVersion")); - if (template.hasValueId(CLASSNAME)) { - template.setValue(CLASSNAME, gv.getClassName()); - } - - if (template.hasValueId(PROJECT)) { - if (gv.getProjectName() == null) { - gv.setProjectName(gv.getProject().name()); - } - template.setValue(PROJECT, gv.getProjectName()); - } - - if (template.hasValueId(EPOCH)) { - template.setValue(EPOCH, System.currentTimeMillis()); - } - - if (template.hasValueId(VERSION)) { - template.setValue(VERSION, version.toString()); - } - - if (template.hasValueId(MAJOR)) { - template.setValue(MAJOR, version.majorInt()); - } - - if (template.hasValueId(MINOR)) { - template.setValue(MINOR, version.minorInt()); - } - - if (template.hasValueId(REVISION)) { - template.setValue(REVISION, version.revisionInt()); - } - - if (template.hasValueId(QUALIFIER)) { - template.setValue(QUALIFIER, version.qualifier()); - } - - return template; - } - - /** - * Writes the project version class in the given directory. - * - * @param template the template - * @param gv the generated version - */ - public static void writeTemplate(Template template, GeneratedVersion gv) { - if (gv.getPackageName() != null) { - gv.setClassFile(Path.of(gv.getDirectory().getAbsolutePath(), - gv.getPackageName().replace(".", File.separator), gv.getClassName() - + gv.getExtension()).toFile()); - } else { - gv.setClassFile(Path.of(gv.getDirectory().getAbsolutePath(), gv.getClassName() + ".java").toFile()); - } - - if (!gv.getClassFile().getParentFile().exists()) { - var mkdirs = gv.getClassFile().getParentFile().mkdirs(); - if (!mkdirs && !gv.getClassFile().getParentFile().exists() && LOGGER.isLoggable(Level.SEVERE)) { - LOGGER.log(Level.SEVERE, "Could not create project package directories: {0}", - gv.getClassFile().getParent()); - } - } - - try { - var updated = gv.getClassFile().exists(); - FileUtils.writeString(template.getContent(), gv.getClassFile()); - if (LOGGER.isLoggable(Level.INFO)) { - LOGGER.log(Level.INFO, "Generated version ({0}) class has been {1}: {2}", - new String[]{gv.getProject().version().toString(), updated ? "updated" : "created", - "file://" + gv.getClassFile().toURI().getPath()}); - } - } catch (IOException e) { - if (LOGGER.isLoggable(Level.SEVERE)) { - LOGGER.log(Level.SEVERE, "Unable to write the version class file.", e); - } - } - } + private final GeneratedVersion generatedVersion_ = new GeneratedVersion(); /** * Sets the class name. @@ -160,7 +42,7 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 3 Jul 2024 16:23:20 -0700 Subject: [PATCH 14/60] Ensure execution stops on failure --- .../extension/GeneratedVersionOperation.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 9cb1707..04fad54 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -19,9 +19,9 @@ package rife.bld.extension; import rife.bld.BaseProject; import rife.bld.operations.AbstractOperation; +import rife.bld.operations.exceptions.ExitStatusException; import java.io.File; -import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -92,9 +92,28 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 3 Jul 2024 17:57:57 -0700 Subject: [PATCH 15/60] Improved version template search path --- README.md | 2 +- .../src/bld/java/com/example/SampleBuild.java | 3 +-- .../rife/bld/extension/GeneratedVersion.java | 17 +++++++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c128f29..734cee4 100755 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ public void genver() throws Exception { .projectName("My App") .packageName("com.example.myapp") .className("MyAppVersion") - .classTemplate(new File(workDirectory, "myversion.txt")) + .classTemplate("myversion.txt") .execute(); } ``` diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index f7db800..0069f8d 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -4,7 +4,6 @@ import rife.bld.BuildCommand; import rife.bld.Project; import rife.bld.extension.GeneratedVersionOperation; -import java.io.File; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -47,7 +46,7 @@ public class SampleBuild extends Project { new GeneratedVersionOperation() .fromProject(this) // .projectName("My App") -// .classTemplate(new File(workDirectory, "myversion.txt")) +// .classTemplate("myversion.txt") .execute(); } } diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 6c9b5ee..9a79e86 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -26,7 +26,6 @@ import rife.tools.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Path; -import java.util.Objects; /** * GeneratedVersion data class. @@ -45,7 +44,7 @@ public class GeneratedVersion { private static final String REVISION = "revision"; private static final String VERSION = "version"; private File classFile_; - private String className_; + private String className_ = "GeneratedVersion"; private File directory_; private String extension_ = ".java"; private String packageName_; @@ -64,9 +63,15 @@ public class GeneratedVersion { if (template_ == null) { template = TemplateFactory.TXT.get("version.txt"); } else { - var files = new ResourceFinderDirectories(template_.getParentFile()); - template = new TemplateFactory(TemplateConfig.TXT, "txtFiles", TemplateFactory.TXT) - .setResourceFinder(files).get(template_.getName()); + File parent; + if (template_.getParentFile() != null) { + parent = template_.getParentFile(); + } else { + parent = new File(template_.getAbsolutePath()).getParentFile(); + } + var dirs = new ResourceFinderDirectories(parent); + template = new TemplateFactory(TemplateConfig.TXT, "txt", TemplateFactory.TXT) + .setResourceFinder(dirs).get(template_.getName()); } if (packageName_ == null) { @@ -78,7 +83,7 @@ public class GeneratedVersion { } if (template.hasValueId(CLASSNAME)) { - template.setValue(CLASSNAME, Objects.requireNonNullElse(className_, "GeneratedVersion")); + template.setValue(CLASSNAME, className_); } if (template.hasValueId(PROJECT)) { From 81212468fd00adbbade59aa177ae7777f3512fc8 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 3 Jul 2024 18:10:23 -0700 Subject: [PATCH 16/60] Version 0.9.7 --- examples/lib/bld/bld-wrapper.properties | 2 +- examples/src/main/java/com/example/GeneratedVersion.java | 2 +- .../java/rife/bld/extension/GeneratedVersionOperationBuild.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 654c8db..6699dfd 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7-SNAPSHOT +bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index eb4071d..a06f874 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1719112298450L); + public static final Date BUILD_DATE = new Date(1720056110519L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 7d8ddae..cffa6bd 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 7, "SNAPSHOT"); + version = version(0, 9, 7); javaRelease = 17; From c4f143ae02f20f00af04fd959121f59d30d10dcf Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 4 Jul 2024 20:35:28 -0700 Subject: [PATCH 17/60] Cleaned up template builder and related tests --- README.md | 4 ++-- src/main/java/rife/bld/extension/GeneratedVersion.java | 6 ++---- .../{version.txt => default_generated_version.txt} | 0 .../java/rife/bld/extension/GeneratedVersionTest.java | 10 ++++++++-- .../{other_version_test.txt => foo/version_test.txt} | 0 5 files changed, 12 insertions(+), 8 deletions(-) rename src/main/resources/templates/{version.txt => default_generated_version.txt} (100%) rename src/test/resources/{other_version_test.txt => foo/version_test.txt} (100%) diff --git a/README.md b/README.md index 734cee4..bf89ce1 100755 --- a/README.md +++ b/README.md @@ -66,12 +66,12 @@ public void genver() throws Exception { .projectName("My App") .packageName("com.example.myapp") .className("MyAppVersion") - .classTemplate("myversion.txt") + .classTemplate("my_app_version.txt") .execute(); } ``` ```java -// myversion.txt +// my_app_version.txt package {{v packageName/}}; diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 9a79e86..3a79c9d 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -19,7 +19,6 @@ package rife.bld.extension; import rife.bld.BaseProject; import rife.resources.ResourceFinderDirectories; import rife.template.Template; -import rife.template.TemplateConfig; import rife.template.TemplateFactory; import rife.tools.FileUtils; @@ -61,7 +60,7 @@ public class GeneratedVersion { Template template; var version = project_.version(); if (template_ == null) { - template = TemplateFactory.TXT.get("version.txt"); + template = TemplateFactory.TXT.get("default_generated_version"); } else { File parent; if (template_.getParentFile() != null) { @@ -70,8 +69,7 @@ public class GeneratedVersion { parent = new File(template_.getAbsolutePath()).getParentFile(); } var dirs = new ResourceFinderDirectories(parent); - template = new TemplateFactory(TemplateConfig.TXT, "txt", TemplateFactory.TXT) - .setResourceFinder(dirs).get(template_.getName()); + template = TemplateFactory.TXT.setResourceFinder(dirs).get(template_.getName()); } if (packageName_ == null) { diff --git a/src/main/resources/templates/version.txt b/src/main/resources/templates/default_generated_version.txt similarity index 100% rename from src/main/resources/templates/version.txt rename to src/main/resources/templates/default_generated_version.txt diff --git a/src/test/java/rife/bld/extension/GeneratedVersionTest.java b/src/test/java/rife/bld/extension/GeneratedVersionTest.java index 7b9ded5..af7e864 100644 --- a/src/test/java/rife/bld/extension/GeneratedVersionTest.java +++ b/src/test/java/rife/bld/extension/GeneratedVersionTest.java @@ -134,14 +134,20 @@ class GeneratedVersionTest { .fromProject(PROJECT) .directory(tmpDir.getAbsolutePath()) .extension(".java") - .classTemplate("src/test/resources/other_version_test.txt") + .classTemplate("src/test/resources/foo/version_test.txt") .packageName("") .className("MyVersion") .execute(); deleteOnExit(tmpDir); - assertThat(new File(tmpDir, "MyVersion.java")).exists(); + var template = new File(tmpDir, "MyVersion.java"); + assertThat(template).exists(); + + var content = Files.readString(template.toPath()); + assertThat(content).contains("class MyVersion") + .contains("PROJECT = \"MyExample\";").contains("MAJOR = 2").contains("MINOR = 1") + .contains("REVISION = 3").contains("QUALIFIER = \"\"").contains("private MyVersion"); } @Test diff --git a/src/test/resources/other_version_test.txt b/src/test/resources/foo/version_test.txt similarity index 100% rename from src/test/resources/other_version_test.txt rename to src/test/resources/foo/version_test.txt From e8a12857b84872b3b5822063de45e5a0912779ee Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:25:35 -0700 Subject: [PATCH 18/60] Cleaned up alternate example class template --- examples/my_app_version.txt | 30 +++++++++++++++++++ examples/myversion.txt | 17 ----------- .../src/bld/java/com/example/SampleBuild.java | 4 +-- 3 files changed, 32 insertions(+), 19 deletions(-) create mode 100644 examples/my_app_version.txt delete mode 100644 examples/myversion.txt diff --git a/examples/my_app_version.txt b/examples/my_app_version.txt new file mode 100644 index 0000000..3d4c223 --- /dev/null +++ b/examples/my_app_version.txt @@ -0,0 +1,30 @@ +package {{v packageName/}}; + +import java.util.Date; + +public final class {{v className/}} implements Comparable<{{v className/}}> { + public static final String PROJECT = "{{v project/}}"; + public static final Date BUILD_DATE = new Date({{v epoch/}}L); + public static final int MAJOR = {{v major/}}; + public static final int MINOR = {{v minor/}}; + public static final int REVISION = {{v revision/}}; + public static final String QUALIFIER = "{{v qualifier/}}"; + public static final String VERSION = "{{v version/}}"; + + private {{v className/}}() { + // no-op + } + + @Override + public int compareTo({{v className/}} other) { + if (MAJOR != other.MAJOR) { + return Integer.compare(MAJOR, other.MAJOR); + } else if (MINOR != other.MINOR) { + return Integer.compare(MINOR, other.MINOR); + } else if (REVISION != other.REVISION) { + return Integer.compare(REVISION, other.REVISION); + } else { + return QUALIFIER.compareTo(other.QUALIFIER); + } + } +} \ No newline at end of file diff --git a/examples/myversion.txt b/examples/myversion.txt deleted file mode 100644 index 8d27e1f..0000000 --- a/examples/myversion.txt +++ /dev/null @@ -1,17 +0,0 @@ -package {{v packageName/}}; - -import java.util.Date; - -public final class {{v className/}} { - public static final String PROJECT = "{{v project/}}"; - public static final Date BUILD_DATE = new Date({{v epoch/}}L); - public static final int MAJOR = {{v major/}}; - public static final int MINOR = {{v minor/}}; - public static final int REVISION = {{v revision/}}; - public static final String QUALIFIER = "{{v qualifier/}}"; - public static final String VERSION = "{{v version/}}"; - - private {{v className/}}() { - // no-op - } -} \ No newline at end of file diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index 0069f8d..d2e3c19 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -45,8 +45,8 @@ public class SampleBuild extends Project { public void genver() throws Exception { new GeneratedVersionOperation() .fromProject(this) -// .projectName("My App") -// .classTemplate("myversion.txt") + .projectName("My App") + .classTemplate("my_app_version.txt") .execute(); } } From 6b80d9a1046bc96278ca11ccb7a53a36cd8e3e0c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:32:23 -0700 Subject: [PATCH 19/60] Bumped JaCoCo extension to version 0.9.6 --- lib/bld/bld-wrapper.properties | 2 +- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 0a58fab..4dadca8 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6 bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index cffa6bd..dfb8b49 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -22,7 +22,6 @@ import rife.bld.publish.PublishDeveloper; import rife.bld.publish.PublishLicense; import rife.bld.publish.PublishScm; -import java.io.IOException; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -97,7 +96,7 @@ public class GeneratedVersionOperationBuild extends Project { } @BuildCommand(summary = "Generates JaCoCo Reports") - public void jacoco() throws IOException { + public void jacoco() throws Exception { new JacocoReportOperation() .fromProject(this) .execute(); From 4ee818deab9e776b0f090ba6d51bfa5d0c4834b3 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:33:35 -0700 Subject: [PATCH 20/60] Bumped bld to version 2.0.0-SNAPSHOT --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 29229 bytes examples/lib/bld/bld-wrapper.properties | 4 ++-- lib/bld/bld-wrapper.jar | Bin 27319 -> 29229 bytes lib/bld/bld-wrapper.properties | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index a2969be..2fb5ff0 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index d136e4d..33a9922 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", "lib/**/*.jar" ] } diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index a2969be..2fb5ff0 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index d136e4d..33a9922 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 18ecfd46dab1a4629e6b18f4322a1aea5e9a8a8c..2c979029887f1687c3ddc6825a49554d3f8ece6b 100644 GIT binary patch delta 27205 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 Mr@H80GZfVS1Fg;H$^ZZW delta 25278 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 diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 6699dfd..f3f1373 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7 +bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.8-SNAPSHOT bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES -bld.version=1.9.1 +bld.version=2.0.0-SNAPSHOT diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index b4504b34a6e5b21abd142a61f1e22c871974c617..8f71d64fcfbffb32fa8e1090e3ff59e62003506e 100644 GIT binary patch delta 27205 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 Mr@H80GZfVS1Lxo8iU0rr delta 25278 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 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 4dadca8..5bcff75 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -4,4 +4,4 @@ bld.downloadLocation= bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6 bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES -bld.version=1.9.1 +bld.version=2.0.0-SNAPSHOT From 61d723b5896848ea7f0728712c01e6df59e8d849 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:34:09 -0700 Subject: [PATCH 21/60] Version 0.9.8-SNAPSHOT --- .../src/bld/java/com/example/SampleBuild.java | 4 +-- .../java/com/example/GeneratedVersion.java | 36 ++++++++++--------- .../GeneratedVersionOperationBuild.java | 4 +-- .../bld/extension/GeneratedVersionTest.java | 13 ++++--- 4 files changed, 31 insertions(+), 26 deletions(-) diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index d2e3c19..f4f6603 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -45,8 +45,8 @@ public class SampleBuild extends Project { public void genver() throws Exception { new GeneratedVersionOperation() .fromProject(this) - .projectName("My App") - .classTemplate("my_app_version.txt") +// .projectName("My App") +// .classTemplate("my_app_version.txt") .execute(); } } diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index a06f874..e8dbf5f 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -1,28 +1,30 @@ -/* - * This file is automatically generated. - * Do not modify! -- ALL CHANGES WILL BE ERASED! - */ - package com.example; import java.util.Date; -/** - * Provides project version information. - */ -public final class GeneratedVersion { - public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1720056110519L); +public final class GeneratedVersion implements Comparable { + public static final Date BUILD_DATE = new Date(1720371304587L); public static final int MAJOR = 1; public static final int MINOR = 0; - public static final int REVISION = 1; + public static final String PROJECT = "My App"; public static final String QUALIFIER = "rc1"; + public static final int REVISION = 1; public static final String VERSION = "1.0.1-rc1"; - /** - * Disables the default constructor. - */ private GeneratedVersion() { - throw new UnsupportedOperationException("Illegal constructor call."); + // no-op } -} + + @Override + public int compareTo(GeneratedVersion other) { + if (MAJOR != other.MAJOR) { + return Integer.compare(MAJOR, other.MAJOR); + } else if (MINOR != other.MINOR) { + return Integer.compare(MINOR, other.MINOR); + } else if (REVISION != other.REVISION) { + return Integer.compare(REVISION, other.REVISION); + } else { + return QUALIFIER.compareTo(other.QUALIFIER); + } + } +} \ No newline at end of file diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index dfb8b49..ac920e0 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -35,7 +35,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 7); + version = version(0, 9, 8, "SNAPSHOT"); javaRelease = 17; @@ -49,7 +49,7 @@ public class GeneratedVersionOperationBuild extends Project { scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) - .include(dependency("org.assertj", "assertj-core", version(3, 26, 0))); + .include(dependency("org.assertj", "assertj-core", version(3, 26, 3))); precompileOperation() .templateTypes(TXT); diff --git a/src/test/java/rife/bld/extension/GeneratedVersionTest.java b/src/test/java/rife/bld/extension/GeneratedVersionTest.java index af7e864..2c2a35f 100644 --- a/src/test/java/rife/bld/extension/GeneratedVersionTest.java +++ b/src/test/java/rife/bld/extension/GeneratedVersionTest.java @@ -16,8 +16,7 @@ package rife.bld.extension; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.*; import rife.bld.BaseProject; import rife.bld.Project; import rife.bld.dependencies.VersionNumber; @@ -39,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Erik C. Thauvin * @since 1.0 */ +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) class GeneratedVersionTest { private final BaseProject PROJECT = new Project() { @Override @@ -108,6 +108,7 @@ class GeneratedVersionTest { } @Test + @Order(1) void testBuildTemplate() { var gv = new GeneratedVersion(); gv.setProject(PROJECT); @@ -127,7 +128,7 @@ class GeneratedVersionTest { @Test void testExecute() throws Exception { - var tmpDir = Files.createTempDirectory("bld-generated-version-").toFile(); + var tmpDir = Files.createTempDirectory("bld-generated-version-execute-").toFile(); tmpDir.deleteOnExit(); new GeneratedVersionOperation() @@ -147,7 +148,8 @@ class GeneratedVersionTest { var content = Files.readString(template.toPath()); assertThat(content).contains("class MyVersion") .contains("PROJECT = \"MyExample\";").contains("MAJOR = 2").contains("MINOR = 1") - .contains("REVISION = 3").contains("QUALIFIER = \"\"").contains("private MyVersion"); + .contains("REVISION = 3").contains("QUALIFIER = \"\"").contains("private MyVersion") + .doesNotContain("package"); } @Test @@ -171,8 +173,9 @@ class GeneratedVersionTest { } @Test + @Order(2) void testWriteTemplate() throws IOException { - var tmpDir = Files.createTempDirectory("bld-generated-version-").toFile(); + var tmpDir = Files.createTempDirectory("bld-generated-version-write-").toFile(); tmpDir.deleteOnExit(); var gv = new GeneratedVersion(); From 07c23883c1819728387950c62b2c31aa54d63d23 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 16:25:54 -0700 Subject: [PATCH 22/60] Improved template search path, again --- .../src/bld/java/com/example/SampleBuild.java | 1 + .../java/com/example/GeneratedVersion.java | 36 +++++++++---------- examples/version.txt | 17 +++++++++ .../rife/bld/extension/GeneratedVersion.java | 10 ++++-- .../bld/extension/GeneratedVersionTest.java | 31 +++++++++++++--- 5 files changed, 69 insertions(+), 26 deletions(-) create mode 100644 examples/version.txt diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index f4f6603..ab58414 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -47,6 +47,7 @@ public class SampleBuild extends Project { .fromProject(this) // .projectName("My App") // .classTemplate("my_app_version.txt") +// .classTemplate("version.txt") .execute(); } } diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index e8dbf5f..7ebcd6b 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -1,30 +1,28 @@ +/* + * This file is automatically generated. + * Do not modify! -- ALL CHANGES WILL BE ERASED! + */ + package com.example; import java.util.Date; -public final class GeneratedVersion implements Comparable { - public static final Date BUILD_DATE = new Date(1720371304587L); +/** + * Provides project version information. + */ +public final class GeneratedVersion { + public static final String PROJECT = "Sample"; + public static final Date BUILD_DATE = new Date(1720742175167L); public static final int MAJOR = 1; public static final int MINOR = 0; - public static final String PROJECT = "My App"; - public static final String QUALIFIER = "rc1"; public static final int REVISION = 1; + public static final String QUALIFIER = "rc1"; public static final String VERSION = "1.0.1-rc1"; + /** + * Disables the default constructor. + */ private GeneratedVersion() { - // no-op + throw new UnsupportedOperationException("Illegal constructor call."); } - - @Override - public int compareTo(GeneratedVersion other) { - if (MAJOR != other.MAJOR) { - return Integer.compare(MAJOR, other.MAJOR); - } else if (MINOR != other.MINOR) { - return Integer.compare(MINOR, other.MINOR); - } else if (REVISION != other.REVISION) { - return Integer.compare(REVISION, other.REVISION); - } else { - return QUALIFIER.compareTo(other.QUALIFIER); - } - } -} \ No newline at end of file +} diff --git a/examples/version.txt b/examples/version.txt new file mode 100644 index 0000000..8d27e1f --- /dev/null +++ b/examples/version.txt @@ -0,0 +1,17 @@ +package {{v packageName/}}; + +import java.util.Date; + +public final class {{v className/}} { + public static final String PROJECT = "{{v project/}}"; + public static final Date BUILD_DATE = new Date({{v epoch/}}L); + public static final int MAJOR = {{v major/}}; + public static final int MINOR = {{v minor/}}; + public static final int REVISION = {{v revision/}}; + public static final String QUALIFIER = "{{v qualifier/}}"; + public static final String VERSION = "{{v version/}}"; + + private {{v className/}}() { + // no-op + } +} \ No newline at end of file diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 3a79c9d..c7f4bc1 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -17,7 +17,9 @@ package rife.bld.extension; import rife.bld.BaseProject; +import rife.resources.ResourceFinderClasspath; import rife.resources.ResourceFinderDirectories; +import rife.resources.ResourceFinderGroup; import rife.template.Template; import rife.template.TemplateFactory; import rife.tools.FileUtils; @@ -59,8 +61,10 @@ public class GeneratedVersion { public Template buildTemplate() { Template template; var version = project_.version(); + TemplateFactory.TXT.resetClassLoader(); if (template_ == null) { - template = TemplateFactory.TXT.get("default_generated_version"); + var group = new ResourceFinderGroup().add(ResourceFinderClasspath.instance()); + template = TemplateFactory.TXT.setResourceFinder(group).get("default_generated_version"); } else { File parent; if (template_.getParentFile() != null) { @@ -68,8 +72,8 @@ public class GeneratedVersion { } else { parent = new File(template_.getAbsolutePath()).getParentFile(); } - var dirs = new ResourceFinderDirectories(parent); - template = TemplateFactory.TXT.setResourceFinder(dirs).get(template_.getName()); + var group = new ResourceFinderGroup().add(new ResourceFinderDirectories(parent)); + template = TemplateFactory.TXT.setResourceFinder(group).get(template_.getName()); } if (packageName_ == null) { diff --git a/src/test/java/rife/bld/extension/GeneratedVersionTest.java b/src/test/java/rife/bld/extension/GeneratedVersionTest.java index 2c2a35f..7762290 100644 --- a/src/test/java/rife/bld/extension/GeneratedVersionTest.java +++ b/src/test/java/rife/bld/extension/GeneratedVersionTest.java @@ -16,15 +16,18 @@ package rife.bld.extension; -import org.junit.jupiter.api.*; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import rife.bld.BaseProject; import rife.bld.Project; +import rife.bld.blueprints.BaseProjectBlueprint; import rife.bld.dependencies.VersionNumber; import rife.tools.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.util.Objects; import java.util.logging.ConsoleHandler; import java.util.logging.Level; @@ -38,7 +41,6 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Erik C. Thauvin * @since 1.0 */ -@TestMethodOrder(MethodOrderer.OrderAnnotation.class) class GeneratedVersionTest { private final BaseProject PROJECT = new Project() { @Override @@ -108,7 +110,6 @@ class GeneratedVersionTest { } @Test - @Order(1) void testBuildTemplate() { var gv = new GeneratedVersion(); gv.setProject(PROJECT); @@ -126,6 +127,29 @@ class GeneratedVersionTest { .contains("private GeneratedVersion"); } + @Test + void testExample() throws Exception { + var tmpDir = Files.createTempDirectory("bld-generated-version-example-").toFile(); + tmpDir.deleteOnExit(); + + new GeneratedVersionOperation() + .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", "Example")) + .directory(tmpDir.getAbsolutePath()) + //.classTemplate(new File("examples", "my_app_version.txt")) + .classTemplate(new File("examples", "version.txt")) + .execute(); + + deleteOnExit(tmpDir); + + var template = Path.of(tmpDir.getAbsolutePath(), "com", "example", "GeneratedVersion.java"); + assertThat(template).exists(); + + var content = Files.readString(template); + assertThat(content).contains("class GeneratedVersion").contains("PROJECT = \"Example\";") + .contains("MAJOR = 0").contains("MINOR = 0").contains("REVISION = 1").contains("QUALIFIER = \"\"") + .doesNotContain("ERASED!"); // only in default template + } + @Test void testExecute() throws Exception { var tmpDir = Files.createTempDirectory("bld-generated-version-execute-").toFile(); @@ -173,7 +197,6 @@ class GeneratedVersionTest { } @Test - @Order(2) void testWriteTemplate() throws IOException { var tmpDir = Files.createTempDirectory("bld-generated-version-write-").toFile(); tmpDir.deleteOnExit(); From 06c0a73924f1fd880a9b733958add0e4cfa4134d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 10:21:07 -0700 Subject: [PATCH 23/60] Added Kotlin matrix to GitHub workflow --- .github/workflows/bld.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index c0ba763..7d224f6 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -2,6 +2,9 @@ name: bld-ci on: [push, pull_request, workflow_dispatch] +env: + KOTLIN_HOME: /usr/share/kotlinc + jobs: build-bld-project: runs-on: ubuntu-latest @@ -9,6 +12,7 @@ jobs: strategy: matrix: java-version: [17, 21, 22] + kotlin-version: [ 1.19.24, 2.0.0 ] steps: - name: Checkout source repository @@ -22,11 +26,8 @@ jobs: distribution: "zulu" java-version: ${{ matrix.java-version }} - - name: Grant execute permission for bld - run: chmod +x bld - - - name: Download the dependencies + - name: Download dependencies run: ./bld download - - name: Run tests with bld + - name: Run tests run: ./bld compile test From e1b526a72393143fd98187437d0a793b7a2f21ee Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 22 Jul 2024 09:26:42 -0700 Subject: [PATCH 24/60] Bumped bld to version 2.0.0-SNAPSHOT --- examples/lib/bld/bld-wrapper.jar | Bin 29229 -> 29769 bytes lib/bld/bld-wrapper.jar | Bin 29229 -> 29778 bytes .../GeneratedVersionOperationBuild.java | 5 +++-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 2c979029887f1687c3ddc6825a49554d3f8ece6b..5b8a2481ce3190d583a530c1752765950d730437 100644 GIT binary patch delta 15077 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 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index ac920e0..cd84e29 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -26,6 +26,7 @@ import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; import static rife.bld.dependencies.Repository.RIFE2_RELEASES; +import static rife.bld.dependencies.Repository.RIFE2_SNAPSHOTS; import static rife.bld.dependencies.Scope.compile; import static rife.bld.dependencies.Scope.test; import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING; @@ -42,10 +43,10 @@ public class GeneratedVersionOperationBuild extends Project { downloadSources = true; autoDownloadPurge = true; - repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1))); + .include(dependency("com.uwyn.rife2", "bld", version(2, 0, 0, "SNAPSHOT"))); scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) From bd5b55f1b72bd82e8c7ec43f0a2a8970a597a83e Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 28 Jul 2024 23:41:36 -0700 Subject: [PATCH 25/60] Bumped bld to version 2.0.1 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 29769 -> 29577 bytes examples/lib/bld/bld-wrapper.properties | 2 +- .../java/com/example/GeneratedVersion.java | 4 ++-- lib/bld/bld-wrapper.jar | Bin 29778 -> 29577 bytes lib/bld/bld-wrapper.properties | 5 ++--- .../GeneratedVersionOperationBuild.java | 13 ++----------- .../templates/default_generated_version.txt | 2 +- 12 files changed, 15 insertions(+), 25 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 2fb5ff0..4dd96bf 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 33a9922..5b2667b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", + "${HOME}/.bld/dist/bld-2.0.1.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index bf89ce1..0ce3a69 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/2.0.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-generated-version) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-generated-version) [![GitHub CI](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 2fb5ff0..4dd96bf 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 33a9922..5b2667b 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", + "${HOME}/.bld/dist/bld-2.0.1.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 5b8a2481ce3190d583a530c1752765950d730437..d986fd0b6eb2e81f494463ce7f81fbc661ac4455 100644 GIT binary patch delta 27511 zcmV)OK(@ch=mCl60S!<~0|XQR2nYxOy^#Eo4SoZ?ko=L3JAdR(k_&`{Eg%p!30Vad zB>^;qAi*q<1TcWcA(_BPG81PeEaFzHw$^&hF~p5<%0NhX-W>Stt!znifT=SMl)ZZ;Ad!0YJG#tXz(Jg|G zF06BPiG~Bgb(J#)R%KBpjbIc<3L2Si$cju7G}@vulz)#Y+Iz!ce=xc*5N;DRw9bug zWhRZIqf8oa(FB?(Xv$!OnOf)T4YseZ4|Vvl^y;pFplNkS(7BQ^nPkyqhMwJ(sBh!? zsTNJ6qd~7wXJ=O+=m&aYl}UwyMrb5^qk*n+hdKd&B#Wk#hsPCLR6?a#%UK({lg$`C zsxI9)jekSAMaS@%TnAUzIBuS0(XmXdQ3INpOl>9|4}vCv*9C$b{2hyZk@d~~Xcir3 z<8`7%bErblkg&fe6bVE_VH>SsF0{~J<1^QydE7VKzd7m;MgpOrjmSwBoy;`J?+9%Q zc7=Q$HSzZ5P;a>1L3e>g)#-aJ!Au>YcHOJSqJKqniXd}sZ)c~UcVDhvkc9@Y_!2>R zNvx{EVc(XzKm=>4qk5AXENY~sagI%Pi9i5+5$=fnFI-*MUq0g8>JTXs1+Ugp6Z2{_ zuq|}8R)@N}FajupUm2<87OkL_m@^QJM15UdRlyFMkAP`mf3P!ZS+-g&T1Be`8UD=y zV1Hy3*4m&>x9AMQa!0p^{l2JwW&b?|qZg*iK{_E~NIr|!Qag}JfwaUI7Bsvch#4!q z1mVc+3akzLc;`)8mn!obu$Kb7BV8S3o4dQRX#;hc)NN6aLSRnaIS7cIfLOlN7scXb zs8dj78ZlozsIo|bP|1^=ZBdx8Zf`VXcYlS96%L|WdU?Cr_-m6zn+bX;1N4nVBU