diff --git a/.travis/mvnsettings.xml b/.github/mvnsettings.xml
similarity index 93%
rename from .travis/mvnsettings.xml
rename to .github/mvnsettings.xml
index eb63c75..8ef66fa 100644
--- a/.travis/mvnsettings.xml
+++ b/.github/mvnsettings.xml
@@ -19,7 +19,7 @@
gpg
- ${env.GPG_KEY_NAME}
+ ${env.GPG_KEYNAME}
${env.GPG_PASSPHRASE}
diff --git a/.github/secrets.md b/.github/secrets.md
new file mode 100644
index 0000000..e363253
--- /dev/null
+++ b/.github/secrets.md
@@ -0,0 +1,28 @@
+# Secrets needed for deployment
+
+Secrets are stored in an environment for Github Actions to deploy to the Sonatype OSS repo.
+
+## GPG_KEYNAME
+
+The name of the GPG key used for signing. See `gpg -K` for key names.
+
+## GPG_KEY_BASE64
+
+Base64-encoded key export of the signing key.
+
+```shell
+gpg --export-secret-keys ${GPG_KEYNAME} | base64
+```
+
+## GPG_PASSPHRASE
+
+Passphrase of the GPG key
+
+## OSSRH_JIRA_USERNAME
+
+User name used for authenticating at the Sonatype OSS repo. Same as the Password used to log in
+at https://issues.sonatype.org
+
+## OSSRH_JIRA_PASSWORD
+
+Password used for authenticating at the Sonatype OSS repo.
diff --git a/.github/sign_and_deploy.sh b/.github/sign_and_deploy.sh
new file mode 100755
index 0000000..6d252c7
--- /dev/null
+++ b/.github/sign_and_deploy.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+KEY_FILE='daniel.flassak.open.source.private.key'
+
+echo $GPG_KEY_BASE64 | base64 -d > ${KEY_FILE}
+gpg --passphrase "${GPG_PASSPHRASE}" --batch --yes --fast-import ${KEY_FILE}
+
+if [[ "${REF_TYPE}" == "tag" ]]; then
+ # 'install' cannot be used in addition to 'deploy', because that makes the signatures invalid by re-creating jars
+ # after they have been signed.
+ #
+ # So we can **only** call the 'deploy' target here, which is why 'source:jar' and 'javadoc:jar' are called
+ # explicitly before 'deploy' so that their artifacts are signed, too.
+ #
+ # '-P sign' is used here instead of 'gpg:sign', because 'gpg:sign' seemingly has the same effect as 'install'
+ # (invalid signatures to to re-created jars)
+ #
+ # There may be an easier way to sign and deploy all the artifacts (sources, javadoc, binaries and pom), but after
+ # four hours of debugging this, I'm satisfied that it works at all.
+ mvn --batch-mode -DskipTests=true -Dproject.version=${REF_NAME} -P sign clean source:jar javadoc:jar deploy
+ SUCCESS=$?
+else
+ echo "this should only be run for tags"
+ SUCCESS=1
+fi
+
+# just to be safe, although this deleting these should not be necessary
+rm ${KEY_FILE}
+rm -rf ~/.gnupg
+
+exit ${SUCCESS}
diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml
new file mode 100644
index 0000000..4701d06
--- /dev/null
+++ b/.github/workflows/build-and-deploy.yml
@@ -0,0 +1,25 @@
+name: Build and deploy to Sonatype OSS repo
+
+on:
+ push:
+ tags:
+ - '[0-9]+.[0-9]+.[0-9]+'
+ - '[0-9]+.[0-9]+.[0-9]+-SNAPSHOT'
+
+jobs:
+ build:
+ uses: ./.github/workflows/run-with-maven.yml
+ with:
+ COMMAND: mvn --batch-mode -Dmaven.compiler.showDeprecation=true -Dmaven.compiler.showWarnings=true clean verify
+ deploy:
+ needs: build
+ uses: ./.github/workflows/run-with-maven.yml
+ with:
+ ENVIRONMENT: sonatype-oss
+ COMMAND: ./.github/sign_and_deploy.sh
+ secrets:
+ GPG_KEYNAME: ${{ secrets.GPG_KEYNAME }}
+ GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
+ GPG_KEY_BASE64: ${{ secrets.GPG_KEY_BASE64 }}
+ OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }}
+ OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME}}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..42524c3
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,11 @@
+name: Build
+
+on:
+ push:
+
+jobs:
+ build:
+ uses: ./.github/workflows/run-with-maven.yml
+ with:
+ COMMAND: >
+ mvn --batch-mode -Dmaven.compiler.showDeprecation=true -Dmaven.compiler.showWarnings=true -Dproject.version=0.0.0-SNAPSHOT clean install
diff --git a/.github/workflows/run-with-maven.yml b/.github/workflows/run-with-maven.yml
new file mode 100644
index 0000000..d3acbad
--- /dev/null
+++ b/.github/workflows/run-with-maven.yml
@@ -0,0 +1,61 @@
+name: Java CI with Maven
+
+on:
+ workflow_call:
+ inputs:
+ COMMAND:
+ description: command to execute in mvn context
+ type: string
+ required: true
+ ENVIRONMENT:
+ type: string
+ required: false
+ secrets:
+ GPG_KEYNAME:
+ required: false
+ GPG_PASSPHRASE:
+ required: false
+ GPG_KEY_BASE64:
+ required: false
+ OSSRH_JIRA_PASSWORD:
+ required: false
+ OSSRH_JIRA_USERNAME:
+ required: false
+
+jobs:
+ run-with-maven:
+ runs-on: ubuntu-latest
+
+ environment: ${{ inputs.ENVIRONMENT }}
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Cache local Maven repository
+ uses: actions/cache@v2
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v2
+ with:
+ java-version: '8'
+ distribution: 'adopt'
+ cache: maven
+
+ - name: Run with mvn context
+ env:
+ GPG_KEYNAME: ${{ secrets.GPG_KEYNAME }}
+ GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
+ GPG_KEY_BASE64: ${{ secrets.GPG_KEY_BASE64 }}
+ OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }}
+ OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME}}
+ COMMAND: ${{ inputs.COMMAND }}
+ REF_TYPE: ${{ github.ref_type }}
+ REF_NAME: ${{ github.ref_name }}
+
+ run:
+ cp .github/mvnsettings.xml ~/.m2/settings.xml && eval "${COMMAND}"
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index 01e6799..0000000
Binary files a/.mvn/wrapper/maven-wrapper.jar and /dev/null differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 7179346..0000000
--- a/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1 +0,0 @@
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 1ea0203..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: java
-env:
- global:
- # OSSRH_JIRA_USERNAME
- - secure: hYuO+7tFHjZ6cajBWYu3jzSMqenwKMu6vdVjJZ8SdDw6XEfqs07oCB9AozbFoyNjAbXQGEKvUYe7gOS6aiy7+xpKyLI55U4IDhdKn0JKWNrI2Xm7Ns3zTe6fsGY4dm8hvIl2hZwFpUYQmQz59s5aiiMzal1Qp8IP2KoNedKDnQsZfwVdvVon6VYJwKm7L48zWyYkHwz9hpo929aOanWDIvTqz//pVP5k8lIOaKP1FbQXvZKL6Wpa1WQdMi4XXhCZSgSiPVUP6C9q8up71FoxTNAbq5k4Ye2E2AOf0DLUXCAKGEr9MMdPe0gmZ9N5rxqWmGi3R7+OigtsqYD5r/d6uzdZg5viXR9DinMwMz9TnDP06j16Aj4DVL741dkN+7RYySTWa7Fv4EAz+ZHHY5pgSfUqSDgzwDgN041SGPg9rrbwtQlWMUosZmwSbPrP165nQi+xSdCyCrUs1fqj0ychJ5wRDPBgMANSDC3ayApRwMutHacaiqRT6QYe2tClx21nJOLzqOLEzumH51nJs3Q8TS44LfGQVVa0uQtSW/vDK6xSDr250vRPMZPERB0LSwSRgrlfczE6PBAmwgLIuPGab8I03agLVerDznzYrH0LZjvkUQgr3x/smjmurmlUUzK89rmCBxAJ2Gaj44R9SEbj1vnAclOT/s3vV8IWyLRir7g=
- # OSSRH_JIRA_PASSWORD
- - secure: XOOxSoj9inpt4v07Qv/FKMhWzcNqDvEBvtK2amiYu5DkDPrlRYUybMfH6YGn0Vi0zZVrzokCLrDN38RdLimOMEPmlMI6gCi+Np+3/mtzP+sQFh8HMdki+kmgxKsNAQsZxr86X8EvQaUtboBvlyC+SikYX+PVBC1mOLsGTXSQnxAf/YZj8JnDnRLA0F0C5KljMwzYzf9rj5ksVwvdzmO+Ou381ifrhrJPv4Zh6teRCa0pSD9jK5CHOgmzjhkMKhY1qEoA3qjvI6z+zBPjoYhg+MxeCYQqpKIm0gT/zH3wAOxPG5SIjUlHSmwkH4qySmFl4/oKwVJi/iRhQoma9Yb5TeeyjqZI7rotkunfeEl4Agi2EzVtFfVwbWXNRoAFb48/PSWm/L73J46XvzeGnDwsUddY6K8jg73qAEi5VCRBv0vrCN82PFyRJ+ZNdM/xVyNDRWixFWxq8VIVsjve6/QuE/Hk2AqUHRdiNn5OkzC7Li+EG7pVTJkMPOsH2xFoGdXRZMA7GIP2VVeGi3rUGaI/J5WIJAlGpW4J6ydREDYB+Rlpl0Uj1PQLFFSBqwe4B+4/iJPMlV8KHRK9mGlroWnvnf/i4vmEa1cseUTuORjWvzZCIezFcrT2hxA7obZqzfFWPKqWhdtmc49HbEEr6CHfAdleyPQOhV1zSM3x2dKsD7g=
- # GPG_KEY_NAME
- - secure: kbc+8UqserUftQS62cPMQ92gk5fJrr/SEWMH/cSL39bIfVN2G34ZaQPn8J28keYi8CLGjgWZGsz6svblmVu0ht4LTVa/G1mCoYrfC381R4mgKscOkDqf4TydXF1oY00wWSUzSpFuHf0JjaJqUzT/Jj1geNCZ5Q+6a4oA7ZQl7Z9W62Zdrj77wP4MG0BNOLy8CmoF1+oY118O9re2Zw3sTMSdGtybSEzZFwthYG+388nJQCbbZ9IPanczM+nnoJF0S5lPtgoEIYp6C5+1edGlGpQ6f5qhRqEHkahjxhzJkbwtzJvNDYdviaQ1FA9xYLt80J1NJA6RTh8oh4ncrLKNKD+zhvdWKDkxNR4PLD5BGoNyRlnJ5TUdo/n3S6ym8DJ/q0QwluIY3uPJWj3Pg31swQ3Q/c3b5Vavazlh4eFOLda57LX5uxytr93EpHUepEuWH0b3+8SrJjUHcf14H/zeeEZ7UXB1v3fUZiZNMffvwH5OEaJtV8MfDVHuc8aUoBlAbe3HjZKYvmJbUdBPaw5TInuIkGadRd8jLqd8zKzEvwt6yb766EIjcEH5+cDSz0hIViglhKIWShXWSc2KTuQ7FQuzmH2NuALxwz80QwzH19w0cW+F5K5BpyjfFNyFonMXDSUIj0ZRYlnPlOtN8Wim4dt+eVxGehHv0CRSki238SE=
- # GPG_PASSPHRASE
- - secure: IPx18pkp+mSe/+AmJ9bY1ezhC2AgSWioJNaTFvUQet0haqWVrXZzvmw7qobd9SFlZMJ1nMqQGqmrhxLZxCF5DBvM296W3fjGymAFoTovZBUfUuBsYHma6E3X/zhUZqvszdHRKVp9104QnoOcm+lsF3h/2REKolCDC/MwJARCNPJSo9410z1Kdz+gvJaEAbw+yF+R4qlTn61lK4e7h/20VPtQW4VzQP1tAqOqzmri1Ufw4zfRJWa04IStJOoPUawh/qXwg/UfEWKzX3dbwwyYD9+UpGfRU+iAgnu4BWd/UsHdshzrvFg5BsquTW4wJax6hBkt2dZxa6O8iWLBBtgt+zyOy/dFIvgaNy8sF1het68DfaCxEGReV+b5i6VJXwmidNLgOkDYklnaKlwLonUuYAt1xn0oD2CxE2dewMa+b0HlpPFxyOArTNV4rmn/KRPaDwGA9wUedk7zU6DKnUxljvbNJ5ol2maUnj3c6Cqvs7H/sWuMxQI88yjyQGqCWykBJbr2JaBL60CZ8S7WPYFDra2WXyVjwN3+yhEeA6Pf94c8mkyjBIdGUWz8vV6sXIJ4XqqyboIgFrpl3M07ho3/PZ4NbxY6TbmhjtDQHCS4R35wmqH4p1M/vB6YrWcEUpv29uFd3mwXbaRsn/mj7t/f7iAP9zCIzJatUrUbuV827lM=
-jdk: openjdk11
-install: mvn install -P !build-extras -DskipTests=true -Dmaven.javadoc.skip=true -B
- -V
-script: mvn test -P !build-extras -B
-cache:
- directories:
- - "~/.m2/repository"
-after_success: ".travis/deploy_to_maven_central.sh"
diff --git a/.travis/codesigning.asc.enc b/.travis/codesigning.asc.enc
deleted file mode 100644
index a6433ce..0000000
Binary files a/.travis/codesigning.asc.enc and /dev/null differ
diff --git a/.travis/deploy_to_maven_central.sh b/.travis/deploy_to_maven_central.sh
deleted file mode 100755
index ddeb803..0000000
--- a/.travis/deploy_to_maven_central.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-if [ "$TRAVIS_BRANCH" = 'master' ] && [ "$TRAVIS_PULL_REQUEST" == 'false' ] || [ ! -z "$TRAVIS_TAG" ]; then
- openssl aes-256-cbc -K $encrypted_1bd4eaf46f33_key -iv $encrypted_1bd4eaf46f33_iv -in .travis/codesigning.asc.enc -out .travis/codesigning.asc -d
- gpg --fast-import .travis/codesigning.asc
-
- if [ ! -z "$TRAVIS_TAG" ]
- then
- echo "on a tag -> set pom.xml to $TRAVIS_TAG"
- mvn --settings .travis/mvnsettings.xml org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=$TRAVIS_TAG 1>/dev/null 2>/dev/null
- else
- echo "not on a tag -> keep snapshot version in pom.xml"
- fi
-
- mvn deploy -P sign,build-extras --settings .travis/mvnsettings.xml -DskipTests=true -B -U
-fi
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index 6e64b52..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,60 +0,0 @@
-pipeline {
-
- agent any
-
- libraries {
- lib('pac-pipeline-libraries@1.23.0')
- }
-
- environment {
- COMMIT_MESSAGE = getCommitMessage()
- }
-
- options {
- buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '0'))
- }
-
- stages {
-
- stage('Build and push to artifactory') {
- when {
- not {
- branch 'master'
- }
- }
- steps {
- mvn 'clean deploy -P instrumentation'
- }
- post {
- success {
- junit '**/target/surefire-reports/TEST-*.xml'
- runSonar()
- }
- }
- }
-
- stage('Release Artifact') {
- when {
- expression {
- BRANCH_NAME == 'master' && !COMMIT_MESSAGE.startsWith('[maven-release-plugin]')
- }
- }
- steps {
- generateChangelog()
- mvnRelease()
- }
- post {
- success {
- junit '**/target/surefire-reports/TEST-*.xml'
- runSonar()
- }
- }
- }
- }
-
- post {
- always {
- cleanWs()
- }
- }
-}
diff --git a/checkstyle.xml b/checkstyle.xml
index 0da26f2..bf77e46 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -126,7 +126,7 @@
-
+
@@ -210,6 +210,7 @@
+
diff --git a/pom.xml b/pom.xml
index ee64cd9..ff63184 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
de.dm.infrastructure
structured-logging
- 2.0.2-SNAPSHOT
+ ${project.version}
structured-logging
Structured logging and log testing
@@ -29,6 +29,8 @@
+ 2.0.2-SNAPSHOT
+
1.8
UTF-8
7.2
@@ -41,15 +43,15 @@
3.17.2
3.5.13
3.5.0
- 3.8.1
- 3.2.0
+ 3.10.1
+ 3.3.2
3.2.1
3.1.1
2.22.2
2.5.3
- 1.6
- ${maven-gpg-plugin.version}.8
- 8.36.2
+ 3.0.1
+ 1.6.8
+ 8.45.1
@@ -239,14 +241,6 @@
org.apache.maven.plugins
maven-source-plugin
${maven-source-plugin.version}
-
-
- attach-sources
-
- jar-no-fork
-
-
-
org.apache.maven.plugins
@@ -256,7 +250,8 @@
${java.version}
${encoding}
-
+
attach-javadocs