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();
- }
- }
- }
- }
-}