Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
d6853a7
Update dependency io.micronaut.micrometer:micronaut-micrometer-regist…
renovate[bot] Apr 21, 2026
c8f08b5
Update dependency org.postgresql:postgresql to v42.7.11
renovate[bot] Apr 28, 2026
68699fd
Merge pull request #890 from kit-data-manager/renovate/development-or…
VolkerHartmann May 26, 2026
c4984d0
Merge pull request #887 from kit-data-manager/renovate/development-io…
VolkerHartmann May 26, 2026
187d60e
Update dependency org.springframework:spring-messaging to v7.0.8
renovate[bot] Jun 8, 2026
ca019d7
Update dependency org.springframework.boot:spring-boot-starter-actuat…
renovate[bot] Jun 13, 2026
2be91be
Merge pull request #894 from kit-data-manager/renovate/development-or…
VolkerHartmann Jun 19, 2026
61f4f9c
Merge pull request #893 from kit-data-manager/renovate/development-or…
VolkerHartmann Jun 22, 2026
6163096
Update dependency jacoco to v0.8.15
renovate[bot] Jun 22, 2026
ef62d77
Mock download tests due to unreliable http connection.
VolkerHartmann Jul 7, 2026
d0c0715
Merge pull request #895 from kit-data-manager/renovate/development-ja…
VolkerHartmann Jul 7, 2026
f85885e
Update dependency org.postgresql:postgresql to v42.7.13
renovate[bot] Jul 7, 2026
db61f39
Update dependency org.springframework.cloud:spring-cloud-gateway-mvc …
renovate[bot] Jul 7, 2026
4fdd53e
Merge pull request #896 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 7, 2026
fc08655
Merge pull request #897 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 7, 2026
3328155
Update dependency org.springframework.boot:spring-boot-starter-actuat…
renovate[bot] Jul 7, 2026
53a88c9
Merge pull request #898 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 7, 2026
2c4f924
Update dependency org.springframework.cloud:spring-cloud-starter-netf…
renovate[bot] Jul 7, 2026
4914c5c
Merge pull request #901 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 8, 2026
f5fa647
Update dependency org.springframework.cloud:spring-cloud-starter-conf…
renovate[bot] Jul 8, 2026
b0fa8e1
Update dependency org.springframework.data:spring-data-elasticsearch …
renovate[bot] Jul 8, 2026
e92992d
Merge pull request #900 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 8, 2026
b9bab1c
Update dependency org.springframework.restdocs:spring-restdocs-mockmv…
renovate[bot] Jul 8, 2026
46f854e
Merge pull request #902 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 8, 2026
9cc3740
Merge pull request #903 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 8, 2026
70c2e24
Update plugin com.gorylenko.gradle-git-properties to v2.5.7
renovate[bot] Jul 8, 2026
3b5f42a
Update plugin org.springframework.boot to v3.5.16
renovate[bot] Jul 8, 2026
161c92a
Merge pull request #904 from kit-data-manager/renovate/development-co…
VolkerHartmann Jul 8, 2026
4ad66fe
Update springDocVersion to v2.8.17
renovate[bot] Jul 8, 2026
8fa6014
Merge pull request #905 from kit-data-manager/renovate/development-or…
VolkerHartmann Jul 8, 2026
5d14033
Update dependency com.google.errorprone:error_prone_core to v2.50.0
renovate[bot] Jul 8, 2026
5a3ab0a
Merge pull request #906 from kit-data-manager/renovate/development-sp…
VolkerHartmann Jul 10, 2026
b1ee50d
Update dependency com.google.guava:guava to v33.6.0-jre
renovate[bot] Jul 10, 2026
982a30d
Update compiler arguments in build.gradle
VolkerHartmann Jul 10, 2026
18ef7ee
Add 'codemeta.json' and contributing documents.
VolkerHartmann Jul 10, 2026
b432671
Change property from 'profile' to 'buildProfile' and add an additiona…
VolkerHartmann Jul 10, 2026
ede1316
Merge pull request #907 from kit-data-manager/renovate/development-er…
VolkerHartmann Jul 10, 2026
c38038d
Merge pull request #908 from kit-data-manager/renovate/development-co…
VolkerHartmann Jul 10, 2026
caebd77
Update dependency commons-io:commons-io to v2.22.0
renovate[bot] Jul 10, 2026
5000223
Update dependency gradle to v9.6.1
renovate[bot] Jul 10, 2026
b211e09
Renovate: Extend the number of pull requests that can be created conc…
VolkerHartmann Jul 10, 2026
6571362
Merge pull request #912 from kit-data-manager/configureRenovate
VolkerHartmann Jul 10, 2026
3c65e42
Merge pull request #910 from kit-data-manager/renovate/development-co…
VolkerHartmann Jul 10, 2026
5bd3f35
Merge pull request #911 from kit-data-manager/renovate/development-gr…
VolkerHartmann Jul 10, 2026
e81536e
Merge pull request #909 from kit-data-manager/addMetadataFiles
VolkerHartmann Jul 10, 2026
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
73 changes: 73 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at webmaster@datamanager.kit.edu. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>

[homepage]: https://www.contributor-covenant.org
16 changes: 16 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

## Pull Request Process

1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.
2. State in the Pull Request details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
3. Pull Requests are merged after successful review of at least one of the project owners.

## Code of Conduct

By participating in this project, you agree to comply with our [Code of Conduct](CODE_OF_CONDUCT.md).
71 changes: 45 additions & 26 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
plugins {
id 'org.springframework.boot' version '3.5.8'
id 'org.springframework.boot' version '3.5.16'
id 'io.spring.dependency-management' version '1.1.7'
id 'io.freefair.lombok' version '9.1.0'
id 'io.freefair.maven-publish-java' version '9.1.0'
id 'org.owasp.dependencycheck' version '12.1.9'
id 'org.asciidoctor.jvm.convert' version '4.0.5'
id 'net.ltgt.errorprone' version '4.3.0'
id 'net.researchgate.release' version '3.1.0'
id 'com.gorylenko.gradle-git-properties' version '2.5.4'
id 'com.gorylenko.gradle-git-properties' version '2.5.7'
id 'java'
id 'jacoco'
}
Expand All @@ -17,10 +17,10 @@ group = 'edu.kit.datamanager'

ext {
// versions of dependencies
springDocVersion = '2.8.14'
springDocVersion = '2.8.17'
javersVersion = '7.9.0'
keycloakVersion = '19.0.0'
errorproneVersion = '2.42.0'
errorproneVersion = '2.50.0'
// directory for generated code snippets during tests
snippetsDir = file("build/generated-snippets")
}
Expand All @@ -42,19 +42,33 @@ java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

if (System.getProperty('profile') == 'minimal') {
println 'Using minimal profile for building ' + project.getName()
apply from: 'gradle/profile-minimal.gradle'
} else {
println 'Using default profile executing all tests for building ' + project.getName()
apply from: 'gradle/profile-complete.gradle'
// The build profile can be specified via command line using -PbuildProfile=<profile>
// For example: ./gradlew build -PbuildProfile=minimal
// Default build profile is "complete" if not specified
// Available profiles:
// - "minimal" Only necessary tests for building online REST documentation will be executed.
// This is useful for building a production ready jar file without executing all tests.
// - "release" Before releasing all tests will be executed.
// If successful, the release task will be executed to create a new release version and tag it in git.
// - "complete" All tests will be executed
// To ensure that the application is working as expected, it is recommended to use this profile for development and testing.
def buildProfile = project.findProperty("buildProfile") ?: "complete"

def profileFile = file("$rootDir/gradle/profile-${buildProfile}.gradle")

// The release task should only be executed with the "release" profile, which is defined in gradle/profile-minimal.gradle
// Throw exception if the release task is executed with a different profile
gradle.taskGraph.whenReady { graph ->
if (graph.allTasks.any { it.name == "release" } &&
findProperty("buildProfile") != "release") {
throw new GradleException("Task 'release' is only available with '-PbuildProfile=release'!" )
}
}

dependencies {
// Spring
implementation 'org.springframework:spring-messaging:7.0.1'
implementation 'org.springframework.cloud:spring-cloud-gateway-mvc:4.3.2'
implementation 'org.springframework:spring-messaging:7.0.8'
implementation 'org.springframework.cloud:spring-cloud-gateway-mvc:4.3.5'

// Spring Boot
implementation "org.springframework.boot:spring-boot-starter-data-rest"
Expand All @@ -73,8 +87,8 @@ dependencies {


// cloud support
implementation "org.springframework.cloud:spring-cloud-starter-config:4.3.0"
implementation "org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:4.3.0"
implementation "org.springframework.cloud:spring-cloud-starter-config:4.3.4"
implementation "org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:4.3.3"

// springdoc
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:${springDocVersion}"
Expand All @@ -98,12 +112,12 @@ dependencies {
implementation "org.javers:javers-core:${javersVersion}"

// driver for postgres
implementation "org.postgresql:postgresql:42.7.8"
implementation "org.postgresql:postgresql:42.7.13"
//driver for h2
implementation "com.h2database:h2:2.4.240"

// apache
implementation "commons-io:commons-io:2.21.0"
implementation "commons-io:commons-io:2.22.0"
implementation "org.apache.tika:tika-core:3.2.3"

// JSON validator
Expand All @@ -117,16 +131,17 @@ dependencies {
implementation "edu.kit.datamanager:service-base:1.3.6"

// elasticsearch (since service-base 1.1.0)
implementation "org.springframework.data:spring-data-elasticsearch:5.5.6"
implementation "org.springframework.data:spring-data-elasticsearch:5.5.13"

// DOIP SDK
implementation "net.dona.doip:doip-sdk:2.2.0"

runtimeOnly "org.apache.httpcomponents:httpclient:4.5.14"

// Additional libraries for tests
testImplementation "com.google.guava:guava:33.5.0-jre"
testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:3.0.5"
testImplementation "org.springframework.cloud:spring-cloud-contract-wiremock:4.3.4"
testImplementation "com.google.guava:guava:33.6.0-jre"
testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:3.0.6"
testImplementation "org.springframework.boot:spring-boot-starter-test"
testImplementation "org.springframework:spring-test"
testImplementation "org.springframework.security:spring-security-test"
Expand All @@ -143,14 +158,14 @@ dependencies {
errorprone "com.google.errorprone:error_prone_core:${errorproneVersion}"

// monitoring
implementation 'io.micronaut.micrometer:micronaut-micrometer-registry-prometheus:5.13.1'
implementation 'org.springframework.boot:spring-boot-starter-actuator:3.5.8'
implementation 'io.micronaut.micrometer:micronaut-micrometer-registry-prometheus:5.13.2'
implementation 'org.springframework.boot:spring-boot-starter-actuator:3.5.16'
}

compileJava {
// options.errorprone.disableAllWarnings = true
options.errorprone.disableWarningsInGeneratedCode = true
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-Xmaxwarns" << "200"
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-XDaddTypeAnnotationsToSymbol=true" << "-Xmaxwarns" << "200"
}

compileTestJava {
Expand Down Expand Up @@ -184,7 +199,7 @@ tasks.withType(Test) {
}

jacoco {
toolVersion = "0.8.14"
toolVersion = "0.8.15"
}

import java.text.SimpleDateFormat
Expand Down Expand Up @@ -238,8 +253,12 @@ bootJar {
launchScript()
}

release {
tagTemplate = 'v${version}'
// Apply profile-specific build configuration at the end of this build script
// to ensure that all settings are available.
if (profileFile.exists()) {
apply from: profileFile
} else {
throw new GradleException("Profile-file missing: $profileFile")
}

// task for printing project name.
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ printInfo "Build microservice of $REPO_NAME at '$INSTALLATION_DIRECTORY'"
# Build service
################################################################################
echo Build service...
./gradlew -Dprofile=minimal clean build
./gradlew -PbuildProfile=minimal clean build


echo "Copy configuration to '$INSTALLATION_DIRECTORY'..."
Expand Down
95 changes: 95 additions & 0 deletions codemeta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
{
"@context": "https://w3id.org/codemeta/3.0",
"type": "SoftwareSourceCode",
"applicationCategory": "Metadata management",
"applicationSubCategory": "JSON & XML Processing",
"codeRepository": "https://github.com/kit-data-manager/metastore2.git",
"name": "MetaStore",
"dateCreated": "2025-12-17",
"description": "JSONPatch is a Java library that implements the JSON Patch standard (RFC 6902) for applying partial modifications to JSON documents. It provides functionality to create, apply, and validate JSON Patch operations, making it easier to manage and manipulate JSON data structures in Java applications.",
"author": [
{
"@type": "Person",
"givenName": "Volker",
"familyName": "Hartmann",
"email": "volker.hartmann@kit.edu",
"@id": "https://orcid.org/0000-0001-6383-5214",
"identifier": "https://orcid.org/0000-0001-6383-5214",
"affiliation": {
"type": "Organization",
"name": "Karlsruhe Institute of Technology (KIT)"
}
},
{
"@type": "Person",
"givenName": "Thomas",
"familyName": "Jejkal",
"email": "thomas.jejkal@kit.edu",
"@id": "https://orcid.org/0000-0003-2804-688X",
"identifier": "https://orcid.org/0000-0003-2804-688X",
"affiliation": {
"type": "Organization",
"name": "Karlsruhe Institute of Technology (KIT)"
}
}
],
"maintainer": [
{
"@type": "Person",
"givenName": "Volker",
"familyName": "Hartmann",
"email": "volker.hartmann@kit.edu",
"@id": "https://orcid.org/0000-0001-6383-5214",
"identifier": "https://orcid.org/0000-0001-6383-5214",
"affiliation": {
"type": "Organization",
"name": "Karlsruhe Institute of Technology (KIT)"
}
},
{
"@type": "Person",
"givenName": "Thomas",
"familyName": "Jejkal",
"email": "thomas.jejkal@kit.edu",
"@id": "https://orcid.org/0000-0003-2804-688X",
"identifier": "https://orcid.org/0000-0003-2804-688X",
"affiliation": {
"type": "Organization",
"name": "Karlsruhe Institute of Technology (KIT)"
}
}
],
"funder": [
{
"@type": "Organization",
"name": "Helmholtz Association of German Research Centers",
"@id": "https://ror.org/0281dp749",
"url": "https://www.helmholtz.de/"
},
{
"@type": "Organization",
"name": "Helmholtz Metadata Collaboration (HMC)",
"@id": "https://ror.org/04v4h0v24",
"url": "https://helmholtz-metadaten.de/"
}
],
"keywords": [
"Java",
"JSON",
"JSON Patch",
"RFC 6902",
"RFC 7396",
"Jackson 3",
"Library"
],
"license": "https://spdx.org/licenses/Apache-2.0",
"runtimePlatform": "JVM",
"softwareRequirements": [
"https://www.oracle.com/java/technologies/downloads/#java21"
],
"developmentStatus": "Production/Stable",
"issueTracker": "https://github.com/kit-data-manager/JSONPatch/issues",
"version": "1.0.0",
"softwareVersion": "1.0.0",
"dateModified": "2026-06-17"
}
16 changes: 8 additions & 8 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
systemProp.jdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"

//-----------------------------
// Properties for build.gradle
//-----------------------------
# -----------------------------
# Properties for build.gradle
# -----------------------------
version=2.1.3-SNAPSHOT

//---------------------------
// Netbeans specific actions
//---------------------------
# ---------------------------
# Netbeans specific actions
# ---------------------------
action.custom-1=releaseNewVersion
action.custom-1.args=--configure-on-demand -w -Dprofile=minimal release
action.custom-1.args=--configure-on-demand -w -DbuidProfile=release release
action.custom-2=testBuildRelease
action.custom-2.args=--configure-on-demand -w -Dprofile=minimal clean build
action.custom-2.args=--configure-on-demand -w -DbuildProfile=release clean build
action.custom-3=asciidoctor
action.custom-3.args=--configure-on-demand -w -x check asciidoctor
action.custom-4=buildRunnableJar
Expand Down
Loading
Loading