diff --git a/.github/workflows/buildAndTest.yml b/.github/workflows/buildAndTest.yml index bebf389..4a4927a 100644 --- a/.github/workflows/buildAndTest.yml +++ b/.github/workflows/buildAndTest.yml @@ -11,13 +11,23 @@ jobs: runs-on: self-hosted steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK 21 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' + architecture: x64 + + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.8.2 + + - name: Run the Maven verify phase + run: mvn --batch-mode --update-snapshots verify + working-directory: Backend - name: Build with Maven run: mvn -B package --file pom.xml diff --git a/.github/workflows/relaseNewVersion.yml b/.github/workflows/relaseNewVersion.yml new file mode 100644 index 0000000..8201007 --- /dev/null +++ b/.github/workflows/relaseNewVersion.yml @@ -0,0 +1,66 @@ +name: Release new Version +on: + pull_request: + branches: + - 'release/*' + types: + - closed + create: + branches: + - 'release/*' + workflow_dispatch: + +jobs: + build: + name: Build and Release + runs-on: self-hosted + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + architecture: x64 + + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.8.2 + + - name: Run the Maven verify phase + run: mvn --batch-mode --update-snapshots verify + working-directory: Backend + + - name: Build with Maven + run: mvn -B package --file pom.xml + working-directory: Backend + + - name: Archive dist folder + run: cp Backend/target/schafkopf-backend-build-jar-with-dependencies.jar release && zip -r dist.zip release/* + + - name: Get current Version Number + run: echo "version=$(node -p "require('./fcf-frontend/package.json').version")" >> $GITHUB_ENV + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.PAT }} + with: + tag_name: ${{ env.version }} + release_name: Release ${{ env.version }} + body: "Test" + draft: false + prerelease: false + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.PAT }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: dist.zip + asset_name: release_files.zip + asset_content_type: application/zip diff --git a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar b/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar deleted file mode 100644 index 3f959a8..0000000 Binary files a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar and /dev/null differ diff --git a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar.md5 b/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar.md5 deleted file mode 100644 index 0ec9815..0000000 --- a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -171ab3333078fd908c878b85563a5ccc \ No newline at end of file diff --git a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar.sha1 b/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar.sha1 deleted file mode 100644 index 8e962bd..0000000 --- a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2bf9f8b279977cb5511cb075f4f2cd316e2bfa62 \ No newline at end of file diff --git a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom b/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom deleted file mode 100644 index 0390562..0000000 --- a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom +++ /dev/null @@ -1,11 +0,0 @@ - - - pn532-sdk - POM was created from install:install-file - pn532 - 4.0.0 - 1.0.2 - diff --git a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom.md5 b/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom.md5 deleted file mode 100644 index 6c7d5a3..0000000 --- a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -c0332fdac981cf53dc426b4fb6a173df \ No newline at end of file diff --git a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom.sha1 b/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom.sha1 deleted file mode 100644 index a62fa61..0000000 --- a/Backend/lib/pn532/pn532-sdk/1.0.2/pn532-sdk-1.0.2.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -d6d7adcafc0119db3ec26d1bf8522fff1e78160c \ No newline at end of file diff --git a/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml b/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml deleted file mode 100644 index 0faba88..0000000 --- a/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - pn532-sdk - pn532 - - 20231116111447 - 1.0.2 - - 1.0.2 - - - diff --git a/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml.md5 b/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml.md5 deleted file mode 100644 index cabf41c..0000000 --- a/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -324d2ea359305a5cdef2fd48169e4c6d \ No newline at end of file diff --git a/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml.sha1 b/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml.sha1 deleted file mode 100644 index 7badd75..0000000 --- a/Backend/lib/pn532/pn532-sdk/maven-metadata-local.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -68b60db960171920acbf8b33283396ded102e64e \ No newline at end of file diff --git a/Backend/pom.xml b/Backend/pom.xml index 1e87780..9016530 100644 --- a/Backend/pom.xml +++ b/Backend/pom.xml @@ -2,7 +2,21 @@ + schafkopf-backend-java + org.example + 4.0.0 + 1.0-SNAPSHOT + + + 3.5.1 + 21 + 21 + 2.4.0 + UTF-8 + 1.7.32 + + schafkopf-backend-build @@ -12,6 +26,20 @@ + + + maven-clean-plugin + 3.1.0 + + + clean-initial + pre-clean + + clean + + + + maven-checkstyle-plugin @@ -43,7 +71,6 @@ 3.3.0 - maven-compiler-plugin @@ -54,24 +81,49 @@ 3.11.0 + + + + + + + + + + + + + + + + + + + + + - maven-shade-plugin + maven-assembly-plugin + 3.3.0 - - - + + jar-with-dependencies + + + + org.schafkopf.BackendServer + + - - shade - + make-assembly package + + single + - org.apache.maven.plugins - 3.5.1 @@ -102,12 +154,12 @@ websocket-jetty-server org.eclipse.jetty.websocket - 11.0.15 + 11.0.20 jetty-servlets org.eclipse.jetty - 11.0.15 + 11.0.19 @@ -125,32 +177,6 @@ io.github.cdimascio 3.0.0 - - - - pi4j-core - com.pi4j - ${pi4j.version} - - - - - pi4j-plugin-raspberrypi - com.pi4j - ${pi4j.version} - - - pi4j-plugin-pigpio - com.pi4j - ${pi4j.version} - - - - - pn532-sdk - pn532 - 1.0.2 - org.openjfx javafx-controls @@ -162,26 +188,4 @@ 17 - org.example - - 4.0.0 - - 3.5.1 - 21 - 21 - - 2.4.0 - UTF-8 - 1.7.32 - - - - - in-project - In Project Repo - file://${project.basedir}/lib - - - - 1.0-SNAPSHOT \ No newline at end of file diff --git a/Backend/src/main/java/org/schafkopf/BackendServer.java b/Backend/src/main/java/org/schafkopf/BackendServer.java index a0381cf..97329af 100644 --- a/Backend/src/main/java/org/schafkopf/BackendServer.java +++ b/Backend/src/main/java/org/schafkopf/BackendServer.java @@ -24,7 +24,6 @@ import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlets.CrossOriginFilter; import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; import org.schafkopf.cardreader.CardReader; -import org.schafkopf.cardreader.GpioReader; import org.schafkopf.cardreader.UsbCardReader; /** Main Class that represents the Backend Server. */ @@ -53,19 +52,8 @@ public class BackendServer { schafkopfGame = new Schafkopf(this); - String osName = System.getProperty("os.name").toLowerCase(); - if (osName.contains("win")) { - // Windows - nfcLeser = new UsbCardReader(this); - } else if (osName.contains("nix") || osName.contains("nux") || osName.contains("mac")) { - // Unix/Linux/Mac - // You can add additional checks for specific Linux distributions or macOS versions if needed - // For now, assuming Raspberry Pi is running Linux - nfcLeser = new GpioReader(this); - } else { - // Other OS - throw new RuntimeException("Unsupported OS: " + osName); - } + + nfcLeser = new UsbCardReader(this); // Setup the basic application "context" for this application at "/" // This is also known as the handler tree (in jetty speak) diff --git a/Backend/src/main/java/org/schafkopf/cardreader/GpioReader.java b/Backend/src/main/java/org/schafkopf/cardreader/GpioReader.java deleted file mode 100644 index 7b8d225..0000000 --- a/Backend/src/main/java/org/schafkopf/cardreader/GpioReader.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.schafkopf.cardreader; - -import com.pi4j.io.i2c.I2C; -import java.io.IOException; -import mk.hsilomedus.pn532.Pn532ContextHelper; -import mk.hsilomedus.pn532.Pn532I2c; -import mk.hsilomedus.pn532.Pn532SamThread; -import mk.hsilomedus.pn532.Pn532SamThread.Pn532SamThreadListener; -import org.schafkopf.BackendServer; - -/** Class that represents the NFC Reader. */ -public final class GpioReader extends CardReader { - - /** - * Creates an Instance of the KartenLeser. - * - * @param server Backend Server to call methods on. - */ - public GpioReader(BackendServer server) { - super(server); - - new Thread( - () -> { - new KartenListener().run(); - }) - .start(); - } - - public static final void main(String[] args) throws IOException {} - - private static class KartenListener implements Pn532SamThreadListener { - - @SuppressWarnings("rawtypes") - Pn532SamThread i2cThread = new Pn532SamThread<>(this, new Pn532I2c()); - - public void run() { - Pn532ContextHelper.initialize(); - i2cThread.start(); - } - - public void close() { - closeThread(i2cThread); - Pn532ContextHelper.shutdown(); - } - - @Override - public void receiveMessage(String message) { - System.out.println(message); - } - - @Override - public void uidReceived(String displayName, byte[] uid) { - server.nfcGelesen(Pn532SamThreadListener.getUidString(uid)); - } - - @SuppressWarnings("rawtypes") - private void closeThread(Pn532SamThread thread) { - if (thread != null && thread.isAlive()) { - thread.close(); - - try { - thread.join(); - } catch (InterruptedException e) { - System.out.println("Error closing thread: " + e.getMessage()); - Thread.currentThread().interrupt(); - } - } - } - } -}