Compare commits

...

2 commits

Author SHA1 Message Date
Peter Schuller
fde982f94a [done] adds renovate 2026-02-12 11:37:52 +01:00
Peter Schuller
e4908942f8 [done] migrates to maven 2026-02-12 11:37:36 +01:00
31 changed files with 346 additions and 166 deletions

View file

@ -1,11 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="module" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=opinionated-vertx&amp;ivyXmlPath=ivy.xml&amp;confs=*"/>
<classpathentry kind="output" path="bin"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

197
.gitignore vendored
View file

@ -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

View file

@ -10,9 +10,14 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.apache.ivyde.eclipse.ivynature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

106
build.xml
View file

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<project name="opinionated-vertx" default="runnable-jar" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="source" location="src" />
<property name="doc" location="javadoc" />
<property name="bin" location="bin" />
<property name="source-test" location="test" />
<property name="lib-source" location="lib" />
<property name="ivy-conf-build" value="default" />
<property name="dist-dir" location="dist" />
<property name="reports-dir" location="reports" />
<property name="jar-bin" location="jar" />
<property name="main-verticle" value="de.pzzz.movr.repo.server.MainVerticle" />
<property name="main-class" value="io.vertx.core.Launcher" />
<property name="ivy.install.version" value="2.5.0" />
<condition property="ivy.home" value="${env.IVY_HOME}">
<isset property="env.IVY_HOME" />
</condition>
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<path id="project.class.path">
<pathelement location="${bin}" />
<fileset dir="${lib-source}" includes="*.jar" />
<fileset dir="${lib-source}" includes="**/*.jar" />
</path>
<target name="clean" description="Cleans this project">
<delete dir="${bin}" failonerror="false" />
<delete dir="${reports-dir}" failonerror="false" />
<delete dir="${doc}" failonerror="false" />
</target>
<target name="resolve" description="retrieve dependencies with ivy">
<ivy:retrieve pattern="${lib-source}/[conf]/[artifact]-([classifier]-)[revision].[ext]" sync="true" />
<ivy:report todir="${reports-dir}" graph="false" />
</target>
<target name='javadoc' description='Generate javadoc'>
<javadoc use='true' author='true' version='true' access='package' sourcepath='${source}' packagenames='*.*' destdir='${doc}' windowtitle='${ant.project.name} // ${STAMP}' noqualifier='java.*:javax.*:com.sun.*'>
<classpath refid='project.class.path' />
</javadoc>
</target>
<target name="compile" description="Compile java source to bytecode">
<mkdir dir="${bin}" />
<javac srcdir="${source}" includes="**" encoding="utf-8" destdir="${bin}" source="1.8" target="1.8" nowarn="true" debug="true" debuglevel="lines,vars,source">
<classpath refid="project.class.path" />
</javac>
<copy todir="${bin}">
<fileset dir="${source}" excludes="**/*.java" />
</copy>
</target>
<target name="runnable-jar" depends="compile" description="Create a war file">
<mkdir dir="${jar-bin}" />
<copy todir="${jar-bin}">
<fileset dir="${source}" excludes="**/*.java" />
</copy>
<copy todir="${jar-bin}">
<fileset dir="${bin}" />
</copy>
<jar jarfile="${dist-dir}/dependencies-all.jar">
<zipgroupfileset dir="${lib-source}">
<include name="**/*.jar" />
</zipgroupfileset>
</jar>
<mkdir dir="${dist-dir}" />
<jar destfile="${dist-dir}/${ant.project.name}.jar" basedir="${jar-bin}">
<zipfileset src="${dist-dir}/dependencies-all.jar" excludes="META-INF/*.SF" />
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
<attribute name="Main-Verticle" value="${main-verticle}"/>
</manifest>
</jar>
</target>
<property name="ivy.install.version" value="2.5.0" />
<condition property="ivy.home" value="${env.IVY_HOME}">
<isset property="env.IVY_HOME" />
</condition>
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<target name="download-ivy" unless="offline">
<mkdir dir="${ivy.jar.dir}"/>
<!-- download Ivy from web site so that it can be used even without any special installation -->
<get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ivy.jar.file}" usetimestamp="true"/>
</target>
<target name="init-ivy" depends="download-ivy">
<!-- try to load ivy here from ivy home, in case the user has not already dropped
it into ant's lib dir (note that the latter copy will always take precedence).
We will not fail as long as local lib dir exists (it may be empty) and
ivy is in at least one of ant's lib dir or the local lib dir. -->
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target>
</project>

14
ivy.xml
View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation="de.pzzz"
module="opinionated-vertx">
</info>
<dependencies>
<dependency org="io.vertx" name="vertx-config" rev="4.5.1" conf="*->compile;*->default"/>
<dependency org="io.vertx" name="vertx-web" rev="4.5.1" conf="*->compile;*->default"/>
<dependency org="io.vertx" name="vertx-web-client" rev="4.5.1" conf="*->compile;*->default"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.15.3" conf="*->compile;*->default"/>
</dependencies>
</ivy-module>

96
pom.xml Normal file
View file

@ -0,0 +1,96 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.pzzz</groupId>
<artifactId>opinionated-vertx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version>
<maven-shade-plugin.version>3.6.1</maven-shade-plugin.version>
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
<exec-maven-plugin.version>3.6.3</exec-maven-plugin.version>
<vertx.version>5.0.7</vertx.version>
<junit-jupiter.version>6.0.2</junit-jupiter.version>
</properties>
<scm>
<url>https://git.peter-schuller.de/ps/opinionated-vertx</url>
<connection>scm:git:https://git.peter-schuller.de/ps/opinionated-vertx.git</connection>
<developerConnection>scm:git:https://git.peter-schuller.de/ps/opinionated-vertx.git</developerConnection>
</scm>
<distributionManagement>
<repository>
<id>forgejo-releases</id>
<name>Forgejo Releases Repository</name>
<url>https://git.peter-schuller.de/api/packages/ps/maven</url>
</repository>
<snapshotRepository>
<id>forgejo-snapshots</id>
<name>Forgejo Snapshots Repository</name>
<url>https://git.peter-schuller.de/api/packages/ps/maven</url>
</snapshotRepository>
</distributionManagement>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-stack-depchain</artifactId>
<version>${vertx.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-config</artifactId>
</dependency>
<!--
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.21.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.21</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

6
renovate.json Normal file
View file

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}

View file

@ -36,7 +36,6 @@ public abstract class ProcessExecutionController<T extends ExecutableProcess<V,U
return promise.future();
}
@Override
public void close(final Promise<Void> completion) {
Future.all(getWorker().stream().map(DeployableWorker::undeployWorkers).toList())
.onSuccess(res -> completion.complete())