diff --git a/.github/settings.xml b/.github/settings.xml
new file mode 100644
index 0000000..da1b7ba
--- /dev/null
+++ b/.github/settings.xml
@@ -0,0 +1,66 @@
+
+
+
+ maven2.releases.levigo.de
+ ${REPOSITORY_RELEASE_USERID}
+ ${REPOSITORY_RELEASE_CREDENTIALS}
+
+
+
+
+
+
+ central-nexus
+
+ true
+
+
+
+ maven-central
+ https://repo.maven.apache.org/maven2/
+
+ false
+
+
+ true
+
+
+
+ maven2.releases.levigo.de
+ ${REPOSITORY_URL}
+
+ true
+
+
+ true
+
+
+
+
+
+ maven-central
+ https://repo.maven.apache.org/maven2/
+
+ false
+
+
+ true
+
+
+
+ maven2.releases.levigo.de
+ ${REPOSITORY_URL}
+
+ true
+
+
+ true
+
+
+
+
+
+
diff --git a/.github/workflows/continuous-delivery.yml b/.github/workflows/continuous-delivery.yml
new file mode 100644
index 0000000..d24da14
--- /dev/null
+++ b/.github/workflows/continuous-delivery.yml
@@ -0,0 +1,133 @@
+name: Continuous Delivery
+
+on:
+ push:
+ branches:
+ - 'main'
+ paths-ignore:
+ - '.github/workflows/continuous-integration.yml'
+
+env:
+ # This will suppress any download for dependencies and plugins or upload messages which would clutter the console log.
+ # `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
+ MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
+ # As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
+ # when running from the command line.
+ # `installAtEnd` and `deployAtEnd` are only effective with recent version of the corresponding plugins.
+ MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
+ TAG_PREFIX: 'jadice-dss-utils-'
+
+jobs:
+
+ build:
+ runs-on: ubuntu-22.04
+ timeout-minutes: 15
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ ## compute the string of the next version
+ - name: Bump version and create tag
+ id: semanticversion
+ uses: mathieudutour/github-tag-action@v6.2
+ with:
+ release_branches: master
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ fetch_all_tags: true
+ tag_prefix: ${{ env.TAG_PREFIX }}
+
+ ## check if the computed string of the next version is conform to our regex
+ - name: Verify and print new build number
+ run: |
+ if echo '${{ steps.semanticversion.outputs.new_tag }}' |grep -Eq '^${{ env.TAG_PREFIX }}[0-9]+[.][0-9]+[.][0-9]+$'; then
+ echo Tag '${{ steps.semanticversion.outputs.new_tag }}', New version '${{ steps.semanticversion.outputs.new_version }}', Changelog '${{ steps.semanticversion.outputs.changelog }}'
+ else
+ echo 'unexpected tag format - aborting'
+ exit -1
+ fi
+
+ - name: Set version and tag variables
+ run: |
+ echo "NEW_VERSION=${{ steps.semanticversion.outputs.new_version }}" >> $GITHUB_ENV \
+ && echo "NEW_TAG=${{ env.TAG_PREFIX }}${{ steps.semanticversion.outputs.new_version }}" >> $GITHUB_ENV
+
+ ## Configure JDK
+ - name: Set up JDK
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: '11'
+
+ ## Enable Caching
+ - uses: actions/cache@v3
+ id: cache
+ with:
+ path: |
+ ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ ## Configure maven settings
+ - name: Prepare maven settings
+ env:
+ REPOSITORY_URL: ${{ secrets.LEVIGO_NEXUS_REPO_RELEASES }}
+ REPOSITORY_RELEASE_USERID: ${{ secrets.PUB_NEXUS2_USERNAME_RW }}
+ REPOSITORY_RELEASE_CREDENTIALS: ${{ secrets.PUB_NEXUS2_PASSWORD_RW}}
+ run: |
+ echo NEXUS2_REPO_RELEASES ${{ secrets.NEXUS2_REPO_RELEASES }}
+ mkdir -p ~/.m2
+ envsubst < ./.github/settings.xml > ~/.m2/settings.xml
+
+ ## Build with maven
+ - name: Set version
+ id: version
+ run: |
+ echo Releasing as ${{ env.NEW_VERSION }}
+ mvn ${{ env.MAVEN_CLI_OPTS }} versions:set -DnewVersion=${{ env.NEW_VERSION }}
+
+ - name: Perform build
+ run: mvn -B verify -Dmaven.test.failure.ignore=true
+
+ ## Publish test report
+ - name: Publish Test Report for JDK 11
+ id: test-report
+ uses: scacap/action-surefire-report@v1
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ fail_on_test_failures: true
+ check_name: Test Report for JDK 11
+
+ ## Deploy
+ - name: Deploy packages
+ run: mvn ${{ env.MAVEN_CLI_OPTS }} deploy -Dmaven.install.skip=true
+
+ ## Create Release
+ - name: Create Release
+ id: create_release
+ uses: softprops/action-gh-release@v2
+ with:
+ name: Release ${{ env.NEW_VERSION }}
+ tag_name: ${{ steps.semanticversion.outputs.new_tag }}
+ draft: false
+ prerelease: false
+ files: |
+ ./target/documentplatform-standard14-fonts-${{ steps.semanticversion.outputs.new_version }}.jar
+ ./target/documentplatform-standard14-fonts-${{ steps.semanticversion.outputs.new_version }}-javadoc.jar
+ ./target/documentplatform-standard14-fonts-${{ steps.semanticversion.outputs.new_version }}-sources.jar
+
+ ## Notify developers
+ - name: Notify developers
+ uses: 8398a7/action-slack@v3
+ with:
+ username: GitHub
+ icon_emoji: octocat
+ channel: ci_docp
+ status: ${{ job.status }}
+ fields: repo,message,commit,author,action,eventName,ref
+ text: Released new version `${{ env.NEW_VERSION }}` of *${{ github.repository }}*
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+ if: failure()
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
new file mode 100644
index 0000000..c4053b7
--- /dev/null
+++ b/.github/workflows/continuous-integration.yml
@@ -0,0 +1,88 @@
+name: Continuous Integration
+
+on:
+ push:
+ branches-ignore:
+ - 'main'
+ paths-ignore:
+ # !! Attention!! removing the following line may produce an endless loop on the build system!!
+ - '**/README.md'
+ - '.github/workflows/continuous-delivery.yml'
+
+env:
+ # This will suppress any download for dependencies and plugins or upload messages which would clutter the console log.
+ # `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
+ MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
+ # As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
+ # when running from the command line.
+ # `installAtEnd` and `deployAtEnd` are only effective with recent version of the corresponding plugins.
+ MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
+
+jobs:
+ build:
+ runs-on: ubuntu-22.04
+ timeout-minutes: 15
+
+ strategy:
+ fail-fast: false
+ matrix:
+ jdk: [ 11 ]
+
+
+ steps:
+ - uses: actions/checkout@v4
+
+ ## Configure JDK
+ - name: Set up JDK
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+
+ ## Enable Caching
+ # Reduce cache size by excluding artifacts with the project.groupId
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ ## Configure maven settings
+ - name: Prepare maven settings
+ env:
+ REPOSITORY_URL: ${{ secrets.LEVIGO_NEXUS_REPO_RELEASES }}
+ REPOSITORY_RELEASE_USERID: ${{ secrets.PUB_NEXUS2_USERNAME_RW }}
+ REPOSITORY_RELEASE_CREDENTIALS: ${{ secrets.PUB_NEXUS2_PASSWORD_RW}}
+ run: |
+ echo NEXUS2_REPO_RELEASES ${{ secrets.NEXUS2_REPO_RELEASES }}
+ mkdir -p ~/.m2
+ envsubst < ./.github/settings.xml > ~/.m2/settings.xml
+
+ ## Build with maven
+ - name: Perform build
+ run: mvn ${{ env.MAVEN_CLI_OPTS }} verify -Dmaven.test.failure.ignore=true
+
+ ## Publish test report
+ - name: Publish Test Report for JDK 11
+ id: test-report
+ uses: scacap/action-surefire-report@v1
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ fail_on_test_failures: true
+ check_name: Test Report for JDK 11
+
+ ## Notify developers
+ - name: Notify developers
+ uses: 8398a7/action-slack@v3
+ with:
+ username: GitHub
+ icon_emoji: octocat
+ channel: ci_docp
+ status: ${{ job.status }}
+ fields: repo,message,commit,author,action,eventName,ref
+ text: ${{ github.workflow }} ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+ if: ${{ failure() &&github.actor != 'dependabot[bot]' }}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fd2d743
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,22 @@
+# exclude target directories
+target
+**/target/
+**/git.properties
+
+release.properties
+pom.xml.releaseBackup
+
+# eclipse project files and directories
+.classpath
+.project
+.settings
+.recommenders
+.metadata
+
+# exclude IntelliJ IDEA files
+.idea
+**/*.iml
+.run
+
+/.expected-vs-actual/
+/.failed/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..8b74298
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,94 @@
+
+ 4.0.0
+ org.jadice.util
+ jadice-dss-utils
+ pom
+ jadice dss signature utils
+ 7.0.0-SNAPSHOT
+
+
+ 1.2.13
+ org.jadice.util
+ 6.1
+
+
+
+
+ ${project.groupId}
+ signature-base
+
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-validation
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-tsl-validation
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-utils-google-guava
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-pades-pdfbox
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-crl-parser-stream
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-service
+
+
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-xades
+
+
+
+
+
+
+ eu.europa.ec.joinup.sd-dss
+ dss-bom
+ ${dss.version}
+ pom
+ import
+
+
+
+
+
+ scm:git:ssh://git@github.com:levigo/jadice-dss-utils.git
+
+
+ scm:git:ssh://git@github.com:levigo/jadice-dss-utils.git
+
+ HEAD
+
+ https://github.com/levigo/jadice-dss-utils
+
+
+
+
+ maven2.releases.levigo.de
+ https://levigo.de/maven2/content/repositories/levigo-releases/
+
+
+ maven2.snapshots.levigo.de
+ https://levigo.de/maven2/content/repositories/levigo-snapshots/
+
+
+