diff --git a/.forgejo/workflows/publish.yml b/.forgejo/workflows/publish.yml new file mode 100644 index 0000000..f2107ae --- /dev/null +++ b/.forgejo/workflows/publish.yml @@ -0,0 +1,22 @@ +on: [ push ] + +jobs: + publish: + name: Build & Publish + + runs-on: 'docker' + + steps: + - name: Setup Java + uses: https://github.com/actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: 8 + - name: Checkout + uses: actions/checkout@v4 + - name: Initialize Gradle + uses: https://github.com/gradle/actions/setup-gradle@v3 + - name: Build + run: ./gradlew build + - name: Publish + run: ./gradlew publish diff --git a/.gitignore b/.gitignore index 36f1f2d..f911397 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,7 @@ -/build/classes/ -/build/generated/ -/build/libs/ -/build/tmp/ -/build/reports +/build /.gradle -/build/test-results /.idea *.png deployToGitlab *.jar -*.zip \ No newline at end of file +*.zip diff --git a/build.gradle b/build.gradle index 651d150..4b9d59a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,5 @@ import java.nio.file.Paths +import java.nio.file.Files import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream @@ -56,26 +57,32 @@ jar { doLast { File jar = new File("build/libs/tuddylib.jar") File loc = new File("TuddyLIB.jar") - jar.renameTo(loc) + loc.delete() + Files.copy(jar.toPath(), loc.toPath()) } } //jar.dependsOn("javadoc") publishing { + publications { - maven(MavenPublication) { - artifact('TuddyLIB.jar') + mavenJava(MavenPublication) { + groupId = "de.tudbut" + from components.java } } + repositories { maven { - url = "${System.getenv('CI_API_V4_URL')}/groups//-/packages/maven" - name = "GitLab" + name = "Forgejo" + url = uri("https://git.tudbut.de/api/packages/TudbuT/maven") + credentials(HttpHeaderCredentials) { - name = 'Job-Token' - value = System.getenv("CI_JOB_TOKEN") + name = "Authorization" + value = "token " + System.getenv("GITHUB_TOKEN") } + authentication { header(HttpHeaderAuthentication) } diff --git a/src/main/java/de/tudbut/tools/Lock.java b/src/main/java/de/tudbut/tools/Lock.java index c436d8e..d6eeb43 100644 --- a/src/main/java/de/tudbut/tools/Lock.java +++ b/src/main/java/de/tudbut/tools/Lock.java @@ -5,6 +5,7 @@ package de.tudbut.tools; */ public class Lock extends SimpleLock { + private boolean isTimed = false; private long startTime = 0, lockTime = 0; /** @@ -31,18 +32,22 @@ public class Lock extends SimpleLock { } /** - * @return The time left (or MAX_VALUE) + * @return The time left (or MAX_VALUE if not timed) */ public synchronized long timeLeft() { - if(lockTime == 0) + if(!isTimed) return Long.MAX_VALUE; - return waitTime(); + return timeLeft0(); } /** - * @return The time left + * @return The time left (or 0 if not timed) */ - public synchronized long waitTime() { + public synchronized long timeLeft0() { + if(!super.isLocked()) + return 0; + if(!isTimed) + return 0; return Math.max(lockTime - timeLocked(), 0); } @@ -50,9 +55,18 @@ public class Lock extends SimpleLock { * Wait until unlocked, either by a timer or manually */ public synchronized void waitHere() { - long wt = waitTime(); - if(wt == 0 && lockTime != 0) + if(!isTimed) { + super.waitHere(); + return; + } + + if(!super.isLocked()) + return; + long wt = timeLeft0(); + if(wt == 0) { unlock(); + return; + } super.waitHere(wt); } @@ -61,19 +75,21 @@ public class Lock extends SimpleLock { * @param timeout Timeout */ public synchronized void waitHere(int timeout) { - if(timeout == 0 || !super.isLocked()) + if(timeout == 0) return; - - if(lockTime == 0) { + if(!isTimed) { super.waitHere(timeout); - } else { - long timeLeft = lockTime - (System.currentTimeMillis() - startTime); - if (timeLeft == 0) { - unlock(); - return; - } - super.waitHere(Math.min(timeLeft, timeout)); + return; } + + if(!super.isLocked()) + return; + long wt = timeLeft0(); + if(wt == 0) { + unlock(); + return; + } + super.waitHere(Math.min(wt, timeout)); } /** @@ -90,7 +106,7 @@ public class Lock extends SimpleLock { */ public synchronized void lock() { startTime = System.currentTimeMillis(); - lockTime = 0; + isTimed = false; super.lock(); } @@ -104,6 +120,7 @@ public class Lock extends SimpleLock { startTime = System.currentTimeMillis(); lockTime = time; + isTimed = true; super.lock(); }