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 2120d4c..e191f6d 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 diff --git a/config/pmd.xml b/config/pmd.xml index c60ff7e..3d3203c 100644 --- a/config/pmd.xml +++ b/config/pmd.xml @@ -19,12 +19,13 @@ + - + @@ -34,8 +35,9 @@ - + + @@ -51,8 +53,6 @@ - - @@ -106,4 +106,4 @@ - \ No newline at end of file + diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index bce2521..89f7a72 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.sourceDirectories= diff --git a/src/bld/java/rife/bld/extension/ExecOperationBuild.java b/src/bld/java/rife/bld/extension/ExecOperationBuild.java index e2d1cad..9d29282 100644 --- a/src/bld/java/rife/bld/extension/ExecOperationBuild.java +++ b/src/bld/java/rife/bld/extension/ExecOperationBuild.java @@ -35,13 +35,14 @@ public class ExecOperationBuild extends Project { public ExecOperationBuild() { pkg = "rife.bld.extension"; name = "ExecOperation"; - version = version(0, 9, 2); + version = version(0, 9, 3); javaRelease = 17; + downloadSources = true; autoDownloadPurge = true; - repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 0))); scope(test) @@ -73,7 +74,7 @@ public class ExecOperationBuild 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() diff --git a/src/main/java/rife/bld/extension/ExecOperation.java b/src/main/java/rife/bld/extension/ExecOperation.java index 07743c3..56e9658 100644 --- a/src/main/java/rife/bld/extension/ExecOperation.java +++ b/src/main/java/rife/bld/extension/ExecOperation.java @@ -38,6 +38,7 @@ public class ExecOperation extends AbstractOperation { private final List args_ = new ArrayList<>(); private final Set fail_ = new HashSet<>(); private BaseProject project_; + private int timeout = 30; private String workDir_; /** @@ -98,7 +99,7 @@ public class ExecOperation extends AbstractOperation { } var proc = pb.start(); - var err = proc.waitFor(30, TimeUnit.SECONDS); + var err = proc.waitFor(timeout, TimeUnit.SECONDS); var stdout = readStream(proc.getInputStream()); var stderr = readStream(proc.getErrorStream()); @@ -180,6 +181,17 @@ public class ExecOperation extends AbstractOperation { return lines; } + /** + * Configure the command timeout. + * + * @param timeout The timeout in seconds + * @return this operation instance + */ + public ExecOperation timeout(int timeout) { + this.timeout = timeout; + return this; + } + /** * Configures the working directory. * diff --git a/src/test/java/rife/bld/extension/ExecOperationTest.java b/src/test/java/rife/bld/extension/ExecOperationTest.java index 0746988..207caf9 100644 --- a/src/test/java/rife/bld/extension/ExecOperationTest.java +++ b/src/test/java/rife/bld/extension/ExecOperationTest.java @@ -50,6 +50,7 @@ class ExecOperationTest { tmpFile.deleteOnExit(); new ExecOperation() .fromProject(new Project()) + .timeout(10) .command("touch", tmpFile.getName()) .fail(ExecFail.NORMAL) .execute();