diff --git a/.classpath b/.classpath
index 04669dc..8d95b91 100644
--- a/.classpath
+++ b/.classpath
@@ -1,11 +1,40 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index a02aea5..432d619 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,185 @@
-# ---> Java
-*.class
-/bin/
-/lib/default/
+### Vert.x ###
+.vertx/
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
+### Eclipse ###
-# Package Files #
-*.jar
-!fallback.jar
-*.war
-*.ear
+.metadata
+bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
+# External tool builders
+.externalToolBuilders/
-# compiled reports
-reports/
-javadoc/
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
+.cproject
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+
+### Intellij+iml ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# CMake
+cmake-buildTool-debug/
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-buildTool.properties
+fabric.properties
+
+### Intellij+iml Patch ###
+# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
+
+*.iml
+modules.xml
+.idea/misc.xml
+*.ipr
+
+### macOS ###
+*.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### Maven ###
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+
+# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
+!/.mvn/wrapper/maven-wrapper.jar
+
+### Gradle ###
+.gradle
+/buildTool/
+
+# Ignore Gradle GUI config
+gradle-app.setting
+
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
+!gradle-wrapper.jar
+
+# Cache of project
+.gradletasknamecache
+
+# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
+# gradle/wrapper/gradle-wrapper.properties
+
+### NetBeans ###
+nbproject/private/
+buildTool/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+
+### VisualStudioCode ###
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
diff --git a/.project b/.project
index 14f128e..0e33de5 100644
--- a/.project
+++ b/.project
@@ -1,18 +1,23 @@
-
-
- opinionated-vertx
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.apache.ivyde.eclipse.ivynature
-
-
+
+
+ opinionated-vertx
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/build.xml b/build.xml
deleted file mode 100755
index 62fd19a..0000000
--- a/build.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ivy.xml b/ivy.xml
deleted file mode 100755
index 9332ef0..0000000
--- a/ivy.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..ce1635d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,96 @@
+
+ 4.0.0
+ de.pzzz
+ opinionated-vertx
+ 0.0.1-SNAPSHOT
+
+
+ UTF-8
+
+ 3.15.0
+ 3.6.1
+ 3.5.4
+ 3.6.3
+
+ 5.0.7
+ 6.0.2
+
+
+
+ https://git.peter-schuller.de/ps/opinionated-vertx
+ scm:git:https://git.peter-schuller.de/ps/opinionated-vertx.git
+ scm:git:https://git.peter-schuller.de/ps/opinionated-vertx.git
+
+
+
+
+ forgejo-releases
+ Forgejo Releases Repository
+ https://git.peter-schuller.de/api/packages/ps/maven
+
+
+ forgejo-snapshots
+ Forgejo Snapshots Repository
+ https://git.peter-schuller.de/api/packages/ps/maven
+
+
+
+
+
+
+ io.vertx
+ vertx-stack-depchain
+ ${vertx.version}
+ pom
+ import
+
+
+
+
+
+
+ io.vertx
+ vertx-web
+
+
+ io.vertx
+ vertx-web-client
+
+
+ io.vertx
+ vertx-config
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.21.0
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.21
+
+
+
+ io.vertx
+ vertx-junit5
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit-jupiter.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit-jupiter.version}
+ test
+
+
+
\ No newline at end of file
diff --git a/src/de/pzzz/vertx/PersistentRestDataAccess.java b/src/main/java/de/pzzz/vertx/PersistentRestDataAccess.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/PersistentRestDataAccess.java
rename to src/main/java/de/pzzz/vertx/PersistentRestDataAccess.java
diff --git a/src/de/pzzz/vertx/RestCommand.java b/src/main/java/de/pzzz/vertx/RestCommand.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/RestCommand.java
rename to src/main/java/de/pzzz/vertx/RestCommand.java
diff --git a/src/de/pzzz/vertx/RestDataAccess.java b/src/main/java/de/pzzz/vertx/RestDataAccess.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/RestDataAccess.java
rename to src/main/java/de/pzzz/vertx/RestDataAccess.java
diff --git a/src/de/pzzz/vertx/RestDataRequest.java b/src/main/java/de/pzzz/vertx/RestDataRequest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/RestDataRequest.java
rename to src/main/java/de/pzzz/vertx/RestDataRequest.java
diff --git a/src/de/pzzz/vertx/SerializableWithId.java b/src/main/java/de/pzzz/vertx/SerializableWithId.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/SerializableWithId.java
rename to src/main/java/de/pzzz/vertx/SerializableWithId.java
diff --git a/src/de/pzzz/vertx/ServerVerticle.java b/src/main/java/de/pzzz/vertx/ServerVerticle.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/ServerVerticle.java
rename to src/main/java/de/pzzz/vertx/ServerVerticle.java
diff --git a/src/de/pzzz/vertx/Startup.java b/src/main/java/de/pzzz/vertx/Startup.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/Startup.java
rename to src/main/java/de/pzzz/vertx/Startup.java
diff --git a/src/de/pzzz/vertx/oauth/OAuthConfig.java b/src/main/java/de/pzzz/vertx/oauth/OAuthConfig.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/oauth/OAuthConfig.java
rename to src/main/java/de/pzzz/vertx/oauth/OAuthConfig.java
diff --git a/src/de/pzzz/vertx/oauth/OAuthToken.java b/src/main/java/de/pzzz/vertx/oauth/OAuthToken.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/oauth/OAuthToken.java
rename to src/main/java/de/pzzz/vertx/oauth/OAuthToken.java
diff --git a/src/de/pzzz/vertx/oauth/OAuthWebClient.java b/src/main/java/de/pzzz/vertx/oauth/OAuthWebClient.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/oauth/OAuthWebClient.java
rename to src/main/java/de/pzzz/vertx/oauth/OAuthWebClient.java
diff --git a/src/de/pzzz/vertx/process/ExecutableProcess.java b/src/main/java/de/pzzz/vertx/process/ExecutableProcess.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/process/ExecutableProcess.java
rename to src/main/java/de/pzzz/vertx/process/ExecutableProcess.java
diff --git a/src/de/pzzz/vertx/process/ItemProcess.java b/src/main/java/de/pzzz/vertx/process/ItemProcess.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/process/ItemProcess.java
rename to src/main/java/de/pzzz/vertx/process/ItemProcess.java
diff --git a/src/de/pzzz/vertx/process/ProcessController.java b/src/main/java/de/pzzz/vertx/process/ProcessController.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/process/ProcessController.java
rename to src/main/java/de/pzzz/vertx/process/ProcessController.java
diff --git a/src/de/pzzz/vertx/process/ProcessExecutionController.java b/src/main/java/de/pzzz/vertx/process/ProcessExecutionController.java
old mode 100755
new mode 100644
similarity index 96%
rename from src/de/pzzz/vertx/process/ProcessExecutionController.java
rename to src/main/java/de/pzzz/vertx/process/ProcessExecutionController.java
index 3655170..92b2186
--- a/src/de/pzzz/vertx/process/ProcessExecutionController.java
+++ b/src/main/java/de/pzzz/vertx/process/ProcessExecutionController.java
@@ -36,7 +36,6 @@ public abstract class ProcessExecutionController completion) {
Future.all(getWorker().stream().map(DeployableWorker::undeployWorkers).toList())
.onSuccess(res -> completion.complete())
diff --git a/src/de/pzzz/vertx/process/ProcessRequest.java b/src/main/java/de/pzzz/vertx/process/ProcessRequest.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/process/ProcessRequest.java
rename to src/main/java/de/pzzz/vertx/process/ProcessRequest.java
diff --git a/src/de/pzzz/vertx/process/ProcessStatus.java b/src/main/java/de/pzzz/vertx/process/ProcessStatus.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/process/ProcessStatus.java
rename to src/main/java/de/pzzz/vertx/process/ProcessStatus.java
diff --git a/src/de/pzzz/vertx/worker/DeployableWorker.java b/src/main/java/de/pzzz/vertx/worker/DeployableWorker.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/DeployableWorker.java
rename to src/main/java/de/pzzz/vertx/worker/DeployableWorker.java
diff --git a/src/de/pzzz/vertx/worker/FileSaveController.java b/src/main/java/de/pzzz/vertx/worker/FileSaveController.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/FileSaveController.java
rename to src/main/java/de/pzzz/vertx/worker/FileSaveController.java
diff --git a/src/de/pzzz/vertx/worker/FileSaveVerticle.java b/src/main/java/de/pzzz/vertx/worker/FileSaveVerticle.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/FileSaveVerticle.java
rename to src/main/java/de/pzzz/vertx/worker/FileSaveVerticle.java
diff --git a/src/de/pzzz/vertx/worker/QueueProcessingStatus.java b/src/main/java/de/pzzz/vertx/worker/QueueProcessingStatus.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/QueueProcessingStatus.java
rename to src/main/java/de/pzzz/vertx/worker/QueueProcessingStatus.java
diff --git a/src/de/pzzz/vertx/worker/QueuedWorker.java b/src/main/java/de/pzzz/vertx/worker/QueuedWorker.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/QueuedWorker.java
rename to src/main/java/de/pzzz/vertx/worker/QueuedWorker.java
diff --git a/src/de/pzzz/vertx/worker/SaveFile.java b/src/main/java/de/pzzz/vertx/worker/SaveFile.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/SaveFile.java
rename to src/main/java/de/pzzz/vertx/worker/SaveFile.java
diff --git a/src/de/pzzz/vertx/worker/WorkerController.java b/src/main/java/de/pzzz/vertx/worker/WorkerController.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/WorkerController.java
rename to src/main/java/de/pzzz/vertx/worker/WorkerController.java
diff --git a/src/de/pzzz/vertx/worker/WorkerVerticle.java b/src/main/java/de/pzzz/vertx/worker/WorkerVerticle.java
old mode 100755
new mode 100644
similarity index 100%
rename from src/de/pzzz/vertx/worker/WorkerVerticle.java
rename to src/main/java/de/pzzz/vertx/worker/WorkerVerticle.java