Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
96fc578
simple dependency bumps
GGoetzelmann May 2, 2025
8b7af21
upgrade spring boot + gradle + jena
GGoetzelmann May 2, 2025
4f321f6
add jdk 21 to workflows
GGoetzelmann May 5, 2025
e63f5f2
Merge branch 'development' into dev_bump-dependencies
GGoetzelmann May 7, 2025
33cf710
Bump net.researchgate.release from 3.0.2 to 3.1.0
dependabot[bot] Jun 13, 2025
786b20b
Bump com.github.java-json-tools:json-schema-validator
dependabot[bot] Jun 13, 2025
64716cd
initialize next snapshot version
GGoetzelmann Jun 13, 2025
d880eaf
Merge pull request #17 from kit-data-manager/dev_bump-dependencies
GGoetzelmann Jun 13, 2025
d059efb
Bump io.spring.dependency-management from 1.1.0 to 1.1.7
dependabot[bot] Jun 13, 2025
f7d8092
Bump com.nimbusds:nimbus-jose-jwt from 9.24.3 to 10.3
dependabot[bot] Jun 13, 2025
5276e6c
Minor workflow update
GGoetzelmann Jun 13, 2025
d40ec04
Merge pull request #29 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 13, 2025
dd1886f
Merge pull request #28 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 13, 2025
83639c0
Merge pull request #26 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 13, 2025
8310dc3
Merge pull request #25 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 13, 2025
51685d4
Bump io.specto:hoverfly-java-junit5 from 0.20.0 to 0.20.2
dependabot[bot] Jun 16, 2025
a3b5e19
Bump org.springframework.boot from 3.4.5 to 3.5.0
dependabot[bot] Jun 16, 2025
f3ef90e
Merge pull request #30 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 16, 2025
c132edb
Merge pull request #31 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 16, 2025
110a99f
Workaround for hurl issue in github action
GGoetzelmann Jun 23, 2025
029cdee
Bump com.h2database:h2 from 2.2.220 to 2.3.232
dependabot[bot] Jun 23, 2025
ce3a70f
Bump io.freefair.maven-publish-java from 6.5.1 to 8.14
dependabot[bot] Jun 23, 2025
e2d4e5f
Merge pull request #36 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 23, 2025
f4d4d76
gradle linting
GGoetzelmann Jun 24, 2025
c07a52d
gradle linting
GGoetzelmann Jun 24, 2025
58833f1
Bump org.asciidoctor.jvm.convert from 3.3.2 to 4.0.4
dependabot[bot] Jun 24, 2025
7bb96d7
Merge pull request #37 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 24, 2025
ff7cb07
Merge pull request #38 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 24, 2025
b866aa9
github action: fail fast on gradle task
GGoetzelmann Jun 24, 2025
05d7f8a
Bump com.github.kt3k.coveralls from 2.12.0 to 2.12.2
dependabot[bot] Jun 24, 2025
bf9d761
Merge pull request #39 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Jun 24, 2025
ef6d014
Bump org.owasp.dependencycheck from 7.3.0 to 12.1.3
dependabot[bot] Jun 30, 2025
7dca920
Merge pull request #44 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Aug 13, 2025
2fde098
Bump com.gorylenko.gradle-git-properties from 2.4.1 to 2.5.2
dependabot[bot] Aug 13, 2025
3bd6d5c
Merge pull request #45 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Aug 13, 2025
9565a65
Bump org.apache.commons:commons-collections4 from 4.1 to 4.5.0
dependabot[bot] Aug 18, 2025
d51485b
Adding repo metadata (now maintained via somesy)
GGoetzelmann Aug 21, 2025
344cb5f
Bump org.springframework.boot from 3.5.0 to 3.5.5
dependabot[bot] Aug 26, 2025
4960151
Merge pull request #51 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Sep 17, 2025
35bd809
Dependabot: set minimal package age to 3 days
GGoetzelmann Sep 22, 2025
4ebfa49
Bump org.owasp.dependencycheck from 12.1.3 to 12.1.5
dependabot[bot] Sep 22, 2025
9593164
Merge pull request #54 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Sep 22, 2025
f65fce9
Merge pull request #48 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Sep 22, 2025
6be61cc
Bump org.postgresql:postgresql from 42.7.2 to 42.7.8
dependabot[bot] Sep 29, 2025
a4a7536
Bump org.springframework.boot from 3.5.5 to 3.5.7
dependabot[bot] Oct 27, 2025
32e0c80
Merge pull request #63 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Oct 29, 2025
37743a1
Bump org.mockito:mockito-inline from 4.10.0 to 5.2.0
dependabot[bot] Nov 3, 2025
0f199b5
Create PR for #65
github-actions[bot] Nov 3, 2025
f38302e
Test added for put with new via field
GGoetzelmann Nov 3, 2025
1c18d0d
Put for annotations now checks existance of canonical and via field b…
GGoetzelmann Nov 3, 2025
136c7df
Merge pull request #66
GGoetzelmann Nov 3, 2025
fe735a3
Merge pull request #64 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Dec 1, 2025
70ee50e
Merge pull request #58 from kit-data-manager/dependabot/gradle/develo…
GGoetzelmann Dec 1, 2025
2de2d39
allow for context path config
GGoetzelmann Dec 10, 2025
ea71cac
allow setting WapBasePath (for proxy / docker)
GGoetzelmann Dec 10, 2025
3c649bc
config cleanup
GGoetzelmann Dec 10, 2025
bf3399c
Test extended for context path and proxied path
GGoetzelmann Dec 10, 2025
f63b115
Documentation update for WapBasePath
GGoetzelmann Dec 10, 2025
6e0a457
WapBasePath renamed to WapBaseUrl
GGoetzelmann Dec 10, 2025
9f41b3a
make proxy base path check more robust
GGoetzelmann Dec 10, 2025
31b679d
Merge pull request #69 from kit-data-manager/dev_enhance_url_config
GGoetzelmann Dec 10, 2025
9af9eb4
Starting dockerization.
GGoetzelmann Nov 17, 2023
ccd8310
Fixes on dockerfile
GGoetzelmann Nov 18, 2023
6a29c63
Moved Dockerfile to subfolder
GGoetzelmann Mar 19, 2024
8fe78d3
align docker default port with application default port
GGoetzelmann Dec 10, 2025
a5e64a3
Readme updated for docker usage
GGoetzelmann Dec 10, 2025
7abc2fa
Workflow for docker test (same as bootjar test)
GGoetzelmann Dec 10, 2025
ae19dd9
Workflow: check docker startup more transparently
GGoetzelmann Dec 10, 2025
e223141
exclude linter from printProjectName task
GGoetzelmann Apr 5, 2024
724edc2
workflow for docker publish
GGoetzelmann Dec 10, 2025
390d324
Merge pull request #70 from kit-data-manager/dev_dockerize
GGoetzelmann Dec 10, 2025
168a1c4
changelog and version update
GGoetzelmann Dec 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#git
.git
.gitattributes
.gitignore
.github/
#IDE
.idea
#build
.gradle/
build
#data
production_db
#misc
CHANGELOG
LICENSE
temp
docker
2 changes: 2 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ updates:
target-branch: "development"
schedule:
interval: "weekly"
cooldown:
default-days: 3
6 changes: 3 additions & 3 deletions .github/workflows/bootjar_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
java: [17]
java: [17, 21]

steps:
- name: Checkout code
Expand All @@ -38,8 +38,8 @@ jobs:
sleep 20 # Give the server time to start

- name: hurl install
uses: gacts/install-hurl@v1

uses: gacts/install-hurl@v1.3.0
with: {disable-cache: true} # hurl installation sometimes fails on cache restore, trying to disable it as a workaround https://github.com/gacts/install-hurl/issues/93
- name: hurl CRUD tests (windows)
if: runner.os == 'Windows'
shell: bash
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/docker_publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Create and publish a Docker image

# Configures this workflow to run every time a change is pushed to the branch called `release`.
on:
push:
branches: ['main']

# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./docker
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64

# This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see [Using artifact attestations to establish provenance for builds](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v3
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true
86 changes: 86 additions & 0 deletions .github/workflows/docker_testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Build and Test Dockerized App

on:
push:
pull_request:
branches: [ main, development ]

jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
java: [17, 21]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}

- name: Grant execute permission for Gradle wrapper (Unix)
if: runner.os != 'Windows'
run: chmod +x gradlew

# Build Docker image instead of bootable JAR
- name: Build Docker image
run: |
docker build -f docker/Dockerfile -t wap-server:${{ matrix.os }}-${{ matrix.java }} .

# Run Docker container (detached, expose port 8080)
- name: Run Docker container
run: |
docker run -d -p 8080:8080 --name wap-server \
wap-server:${{ matrix.os }}-${{ matrix.java }}
echo "Wait for wap server to be healthy before proceeding to tests"
while true; do
docker ps -a
if ! docker ps | grep -q wap-server; then
echo "Docker container stopped unexpectedly. Aborting."
exit 1
fi
if curl -f http://localhost:8080; then
echo "Service is running."
break
fi
echo "Waiting for the service to be ready..."
docker logs --tail 20 wap-server
sleep 5
done

- name: hurl install
uses: gacts/[email protected]
with: {disable-cache: true}

- name: hurl CRUD tests (windows)
if: runner.os == 'Windows'
shell: bash
run: |
for file in ./integration_tests/CRUD/*.hurl; do
hurl --variable host=http://localhost:8080 --test "$file" --verbose --error-format=long --continue-on-error --report-html hurlreports
done

- name: hurl tests (other)
if: runner.os != 'Windows'
run: hurl --variable host=http://localhost:8080 --test ./integration_tests/CRUD/*.hurl --verbose --error-format=long --continue-on-error --report-html hurlreports

# Stop and clean up container
- name: Stop Docker container
if: always()
run: |
docker logs wap-server
docker stop wap-server
docker rm wap-server

# Upload artifacts (optional: you may want to upload Docker logs instead of JARs)
- name: Upload Docker logs
if: always()
uses: actions/upload-artifact@v4
with:
name: docker_logs_jdk${{ matrix.java }}_${{ matrix.os }}
path: ./hurlreports
12 changes: 6 additions & 6 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
matrix:
operating-system: [ubuntu-latest, macOS-latest]
# Use both LTS releases and latest one for tests
jdk: [ 17 ]
jdk: [ 17, 21 ]
steps:
- name: Checkout repo
uses: actions/checkout@v4
Expand All @@ -32,11 +32,11 @@ jobs:
- name: Build with Gradle
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
./gradlew clean build
./gradlew clean build test --fail-fast
elif [ "$RUNNER_OS" == "macOS" ]; then
./gradlew clean build
./gradlew clean build test --fail-fast
elif [ "$RUNNER_OS" == "Windows" ]; then
./gradlew.bat clean build
./gradlew.bat clean build test --fail-fast
else
echo "$RUNNER_OS not supported"
exit 1
Expand All @@ -51,12 +51,12 @@ jobs:
- name: Set up OpenJDK version ...
uses: actions/setup-java@v2
with:
distribution: 'zulu'
distribution: 'temurin'
java-version: ${{ env.currentBuildVersion }}
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle (JDK ${{ env.currentBuildVersion }})
run: ./gradlew clean check jacocoTestReport
run: ./gradlew clean check jacocoTestReport test --fail-fast
- name: Codecov
uses: codecov/codecov-action@v1
with:
Expand Down
44 changes: 43 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,49 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [1.2.0] - 2025-12-11
### Added
- Docker version
- configurable context path
- configurable proxy URL

### Changed

### Removed

### Deprecated

### Fixed
- PUT Annotation with added via field results in erronous HTTP 409

### Security

### Full changelog

* Bump dependencies by @GGoetzelmann in https://github.com/kit-data-manager/wap-server/pull/17
* Bump com.github.java-json-tools:json-schema-validator from 2.2.8 to 2.2.14 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/29
* Bump io.spring.dependency-management from 1.1.0 to 1.1.7 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/28
* Bump net.researchgate.release from 3.0.2 to 3.1.0 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/26
* Bump com.nimbusds:nimbus-jose-jwt from 9.24.3 to 10.3 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/25
* Bump io.specto:hoverfly-java-junit5 from 0.20.0 to 0.20.2 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/30
* Bump org.springframework.boot from 3.4.5 to 3.5.0 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/31
* Bump com.h2database:h2 from 2.2.220 to 2.3.232 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/36
* Bump org.asciidoctor.jvm.convert from 3.3.2 to 4.0.4 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/37
* Bump io.freefair.maven-publish-java from 6.5.1 to 8.14 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/38
* Bump com.github.kt3k.coveralls from 2.12.0 to 2.12.2 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/39
* Bump org.owasp.dependencycheck from 7.3.0 to 12.1.3 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/44
* Bump com.gorylenko.gradle-git-properties from 2.4.1 to 2.5.2 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/45
* Bump org.springframework.boot from 3.5.0 to 3.5.5 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/51
* Bump org.owasp.dependencycheck from 12.1.3 to 12.1.5 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/54
* Bump org.apache.commons:commons-collections4 from 4.1 to 4.5.0 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/48
* Bump org.springframework.boot from 3.5.5 to 3.5.7 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/63
* PUT Annotation with added via field results in erronous HTTP 409 by @github-actions[bot] in https://github.com/kit-data-manager/wap-server/pull/66
* Bump org.mockito:mockito-inline from 4.10.0 to 5.2.0 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/64
* Bump org.postgresql:postgresql from 42.7.2 to 42.7.8 by @dependabot[bot] in https://github.com/kit-data-manager/wap-server/pull/58
* Extend URL configuration options by @GGoetzelmann in https://github.com/kit-data-manager/wap-server/pull/69
* Dockerization by @GGoetzelmann in https://github.com/kit-data-manager/wap-server/pull/70

**Full Changelog**: https://github.com/kit-data-manager/wap-server/compare/v1.1.0...v1.2.0

## [1.1.0] - 2025-06-13
### Added
Expand Down
43 changes: 43 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
type: software
title: kitdatamanager/wap-server
abstract: This project contains a server for creating and managing annotations
based on the Web Annotation Data Model (WADM) implementing the complete Web
Annotation Protocol (WAP). The service is realized as microservice using
Spring Boot and can be operated standalone.
version: v1.2.0-SNAPSHOT
keywords:
- kit-data-manager
- metadata
- SPARQL
- RDF
- WADM
- Web Annotation
- jena-fuseki
- restful
authors:
- given-names: Germaine
orcid: https://orcid.org/0000-0003-3974-3728
affiliation: Karlsruhe Institute of Technology (KIT)
family-names: Götzelmann
- given-names: Thomas
orcid: https://orcid.org/0000-0003-2804-688X
affiliation: Karlsruhe Institute of Technology (KIT)
family-names: Jejkal
- given-names: Danah
orcid: https://orcid.org/0000-0001-6296-7282
affiliation: Karlsruhe Institute of Technology (KIT)
family-names: Tonne
contact:
- given-names: Germaine
orcid: https://orcid.org/0000-0003-3974-3728
affiliation: Karlsruhe Institute of Technology (KIT)
family-names: Götzelmann
- given-names: Thomas
orcid: https://orcid.org/0000-0003-2804-688X
affiliation: Karlsruhe Institute of Technology (KIT)
family-names: Jejkal
license: Apache-2.0
url: https://kit-data-manager.github.io/webpage/wap-server/
repository-code: https://github.com/kit-data-manager/wap-server
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,21 @@ This project contains a server for creating and managing annotations based on th
the complete Web Annotation Protocol (WAP). The service is realized as microservice using Spring Boot and can be operated standalone.


## How to build
## How to build and use

### Docker

```
docker build -f docker/Dockerfile -t wap-server .
```

To run the application at `http://localhost:<host port>`, use:

```
docker run -d -p <host port>:8080 -e WAPBASEPATH=http://localhost:<host port> wap-server
```

### From source

To install the application from source, see [howtos](howtos/summary.md).

Expand Down
Loading
Loading