diff --git a/build.gradle.kts b/build.gradle.kts index a26929b..ad72c9c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,68 +10,45 @@ plugins { group = "org.eclipse.dataplane-core" version = "0.0.11-SNAPSHOT" -repositories { - mavenCentral() -} - -dependencies { - implementation("com.fasterxml.jackson.core:jackson-databind:2.21.3") - implementation("com.nimbusds:nimbus-jose-jwt:10.9") - implementation("jakarta.ws.rs:jakarta.ws.rs-api:4.0.0") - - testImplementation(platform("org.junit:junit-bom:6.1.0")) - testImplementation("org.junit.jupiter:junit-jupiter") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation("io.rest-assured:rest-assured:6.0.0") - testImplementation("org.assertj:assertj-core:3.27.7") - testImplementation("org.awaitility:awaitility:4.3.0") - testImplementation("org.eclipse.jetty.ee10:jetty-ee10-servlet:12.1.9") - testImplementation("org.eclipse.jetty:jetty-server:12.1.9") - val jerseyVersion = "4.0.2" - testImplementation("org.glassfish.jersey.containers:jersey-container-servlet:${jerseyVersion}") - testImplementation("org.glassfish.jersey.inject:jersey-hk2:${jerseyVersion}") - testImplementation("org.glassfish.jersey.media:jersey-media-json-jackson:${jerseyVersion}") - testImplementation("org.mockito:mockito-core:5.23.0") - testImplementation("org.slf4j:slf4j-simple:2.0.18") - testImplementation("org.wiremock:wiremock-jetty12:3.13.2") - testImplementation("org.testcontainers:testcontainers-junit-jupiter:2.0.5") - testImplementation("org.testcontainers:testcontainers-postgresql:2.0.5") - testImplementation("org.postgresql:postgresql:42.7.11") -} +subprojects { + apply(plugin = "signing") + apply(plugin = "maven-publish") + apply(plugin = "com.vanniktech.maven.publish") -tasks.test { - useJUnitPlatform() -} + tasks.withType().configureEach { + useJUnitPlatform() + } -signing { - useGpgCmd() - sign(publishing.publications) -} + signing { + useGpgCmd() + sign(publishing.publications) + } -mavenPublishing { - publishToMavenCentral(true) + mavenPublishing { + publishToMavenCentral(true) - signAllPublications() + signAllPublications() - pom { - name.set(project.name) - description.set("Dataplane Signaling SDK library") - url.set("https://github.com/eclipse-dataplane-core/dataplane-sdk-java") - licenses { - license { - name.set("The Apache License, Version 2.0") - url.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + pom { + name.set(project.name) + description.set("Dataplane Signaling SDK library") + url.set("https://github.com/eclipse-dataplane-core/dataplane-sdk-java") + licenses { + license { + name.set("The Apache License, Version 2.0") + url.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + } } - } - developers { - developer { - name = "Dataplane Core Dev" - email = "dataplane-core-dev@eclipse.org" + developers { + developer { + name = "Dataplane Core Dev" + email = "dataplane-core-dev@eclipse.org" + } + } + scm { + url.set("https://github.com/eclipse-dataplane-core/dataplane-sdk-java") + connection.set("scm:git:git@github.com:eclipse-dataplane-core/dataplane-sdk-java.git") } - } - scm { - url.set("https://github.com/eclipse-dataplane-core/dataplane-sdk-java") - connection.set("scm:git:git@github.com:eclipse-dataplane-core/dataplane-sdk-java.git") } } } diff --git a/dataplane-sdk-core/build.gradle.kts b/dataplane-sdk-core/build.gradle.kts new file mode 100644 index 0000000..d27ac03 --- /dev/null +++ b/dataplane-sdk-core/build.gradle.kts @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2026 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. - initial API and implementation + * + */ + +plugins { + `java-library` +} + +dependencies { + implementation(libs.jackson.databind) + implementation(libs.nimbus.jwt) + + compileOnly(libs.jakarta.rsApi) + + testImplementation(platform(libs.junit.bom)) + testImplementation(libs.junit.jupiter) + testRuntimeOnly(libs.junit.launcher) + testImplementation(libs.restAssured) + testImplementation(libs.assertJ) + testImplementation(libs.awaitility) + + testImplementation(libs.mockito.core) + testImplementation(libs.slf4j.simple) + + testImplementation(libs.testcontainers.junit.jupiter) + testImplementation(libs.testcontainers.postgresql) + testImplementation(libs.postgresql) +} diff --git a/src/main/java/org/eclipse/dataplane/Dataplane.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/Dataplane.java similarity index 97% rename from src/main/java/org/eclipse/dataplane/Dataplane.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/Dataplane.java index 94a3185..10c01e2 100644 --- a/src/main/java/org/eclipse/dataplane/Dataplane.java +++ b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/Dataplane.java @@ -40,13 +40,12 @@ import org.eclipse.dataplane.logic.OnStarted; import org.eclipse.dataplane.logic.OnSuspend; import org.eclipse.dataplane.logic.OnTerminate; -import org.eclipse.dataplane.port.DataPlaneRegistrationApiController; -import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.eclipse.dataplane.port.exception.AuthorizationNotSupported; import org.eclipse.dataplane.port.exception.ControlPlaneNotRegistered; import org.eclipse.dataplane.port.exception.DataFlowNotifyControlPlaneFailed; import org.eclipse.dataplane.port.exception.DataplaneNotRegistered; import org.eclipse.dataplane.port.exception.ResourceNotFoundException; +import org.eclipse.dataplane.port.exception.UnauthorizedException; import org.eclipse.dataplane.port.store.ControlPlaneStore; import org.eclipse.dataplane.port.store.DataFlowStore; import org.eclipse.dataplane.port.store.InMemoryControlPlaneStore; @@ -92,14 +91,6 @@ public static Builder newInstance() { return new Builder(); } - public DataPlaneSignalingApiController controller() { - return new DataPlaneSignalingApiController(this, authorizations); - } - - public DataPlaneRegistrationApiController registrationController() { - return new DataPlaneRegistrationApiController(this); - } - public Result getById(String dataFlowId) { return dataFlowStore.findById(dataFlowId); } @@ -323,6 +314,13 @@ public Result completed(String flowId) { }); } + public Result extractControlplaneId(String authorizationHeader) { + return authorizations.values().stream() + .map(authorization -> authorization.extractCallerId(authorizationHeader)) + .filter(Result::succeeded).findFirst() + .orElseGet(() -> Result.failure(new UnauthorizedException("Authorization method not recognized"))); + } + public Result registerOn(String controlPlaneEndpoint) { var message = new DataPlaneRegistrationMessage(id, endpoint, transferTypes, labels); diff --git a/src/main/java/org/eclipse/dataplane/domain/DataAddress.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/DataAddress.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/DataAddress.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/DataAddress.java diff --git a/src/main/java/org/eclipse/dataplane/domain/Result.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/Result.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/Result.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/Result.java diff --git a/src/main/java/org/eclipse/dataplane/domain/controlplane/ControlPlane.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/controlplane/ControlPlane.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/controlplane/ControlPlane.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/controlplane/ControlPlane.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlow.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlow.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlow.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlow.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowPrepareMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowPrepareMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowPrepareMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowPrepareMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowResumeMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowResumeMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowResumeMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowResumeMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartedNotificationMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartedNotificationMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartedNotificationMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStartedNotificationMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusResponseMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusResponseMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusResponseMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowStatusResponseMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowSuspendMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowSuspendMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowSuspendMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowSuspendMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowTerminateMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowTerminateMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowTerminateMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/dataflow/DataFlowTerminateMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/registration/Authorization.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/Authorization.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/registration/Authorization.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/Authorization.java diff --git a/src/main/java/org/eclipse/dataplane/domain/registration/AuthorizationProfile.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/AuthorizationProfile.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/registration/AuthorizationProfile.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/AuthorizationProfile.java diff --git a/src/main/java/org/eclipse/dataplane/domain/registration/ControlPlaneRegistrationMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/ControlPlaneRegistrationMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/registration/ControlPlaneRegistrationMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/ControlPlaneRegistrationMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/registration/DataPlaneRegistrationMessage.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/DataPlaneRegistrationMessage.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/registration/DataPlaneRegistrationMessage.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/DataPlaneRegistrationMessage.java diff --git a/src/main/java/org/eclipse/dataplane/domain/registration/Oauth2ClientCredentialsAuthorization.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/Oauth2ClientCredentialsAuthorization.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/domain/registration/Oauth2ClientCredentialsAuthorization.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/domain/registration/Oauth2ClientCredentialsAuthorization.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnCompleted.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnCompleted.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnCompleted.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnCompleted.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnPrepare.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnPrepare.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnPrepare.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnPrepare.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnResume.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnResume.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnResume.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnResume.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnStart.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnStart.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnStart.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnStart.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnStarted.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnStarted.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnStarted.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnStarted.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnSuspend.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnSuspend.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnSuspend.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnSuspend.java diff --git a/src/main/java/org/eclipse/dataplane/logic/OnTerminate.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnTerminate.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/logic/OnTerminate.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/logic/OnTerminate.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/AuthorizationNotSupported.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/AuthorizationNotSupported.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/AuthorizationNotSupported.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/AuthorizationNotSupported.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/ControlPlaneNotRegistered.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/ControlPlaneNotRegistered.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/ControlPlaneNotRegistered.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/ControlPlaneNotRegistered.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/DataFlowNotifyControlPlaneFailed.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/DataFlowNotifyControlPlaneFailed.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/DataFlowNotifyControlPlaneFailed.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/DataFlowNotifyControlPlaneFailed.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/DataplaneNotRegistered.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/DataplaneNotRegistered.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/DataplaneNotRegistered.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/DataplaneNotRegistered.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/IllegalAttributeTypeException.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/IllegalAttributeTypeException.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/IllegalAttributeTypeException.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/IllegalAttributeTypeException.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/PersistenceException.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/PersistenceException.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/PersistenceException.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/PersistenceException.java diff --git a/src/main/java/org/eclipse/dataplane/port/exception/ResourceNotFoundException.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/ResourceNotFoundException.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/exception/ResourceNotFoundException.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/ResourceNotFoundException.java diff --git a/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/UnauthorizedException.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/UnauthorizedException.java new file mode 100644 index 0000000..bd2af1e --- /dev/null +++ b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/exception/UnauthorizedException.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2026 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. - initial API and implementation + * + */ + +package org.eclipse.dataplane.port.exception; + +public class UnauthorizedException extends RuntimeException { + + public UnauthorizedException(String message) { + super(message); + } + +} diff --git a/src/main/java/org/eclipse/dataplane/port/store/ControlPlaneStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/ControlPlaneStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/ControlPlaneStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/ControlPlaneStore.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/DataFlowStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/DataFlowStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/DataFlowStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/DataFlowStore.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/InMemoryControlPlaneStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/InMemoryControlPlaneStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/InMemoryControlPlaneStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/InMemoryControlPlaneStore.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/InMemoryDataFlowStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/InMemoryDataFlowStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/InMemoryDataFlowStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/InMemoryDataFlowStore.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/Stores.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/Stores.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/Stores.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/Stores.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/sql/AbstractSqlStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/sql/AbstractSqlStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/sql/AbstractSqlStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/sql/AbstractSqlStore.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/sql/PostgresControlPlaneStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/sql/PostgresControlPlaneStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/sql/PostgresControlPlaneStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/sql/PostgresControlPlaneStore.java diff --git a/src/main/java/org/eclipse/dataplane/port/store/sql/PostgresDataFlowStore.java b/dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/sql/PostgresDataFlowStore.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/store/sql/PostgresDataFlowStore.java rename to dataplane-sdk-core/src/main/java/org/eclipse/dataplane/port/store/sql/PostgresDataFlowStore.java diff --git a/src/main/resources/sql/control_plane_schema.sql b/dataplane-sdk-core/src/main/resources/sql/control_plane_schema.sql similarity index 100% rename from src/main/resources/sql/control_plane_schema.sql rename to dataplane-sdk-core/src/main/resources/sql/control_plane_schema.sql diff --git a/src/main/resources/sql/data_flow_schema.sql b/dataplane-sdk-core/src/main/resources/sql/data_flow_schema.sql similarity index 100% rename from src/main/resources/sql/data_flow_schema.sql rename to dataplane-sdk-core/src/main/resources/sql/data_flow_schema.sql diff --git a/src/test/java/org/eclipse/dataplane/store/ControlPlaneStoreTestBase.java b/dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/ControlPlaneStoreTestBase.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/store/ControlPlaneStoreTestBase.java rename to dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/ControlPlaneStoreTestBase.java diff --git a/src/test/java/org/eclipse/dataplane/store/DataFlowStoreTestBase.java b/dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/DataFlowStoreTestBase.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/store/DataFlowStoreTestBase.java rename to dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/DataFlowStoreTestBase.java diff --git a/src/test/java/org/eclipse/dataplane/store/InMemoryControlPlaneStoreTest.java b/dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/InMemoryControlPlaneStoreTest.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/store/InMemoryControlPlaneStoreTest.java rename to dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/InMemoryControlPlaneStoreTest.java diff --git a/src/test/java/org/eclipse/dataplane/store/InMemoryDataFlowStoreTest.java b/dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/InMemoryDataFlowStoreTest.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/store/InMemoryDataFlowStoreTest.java rename to dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/InMemoryDataFlowStoreTest.java diff --git a/src/test/java/org/eclipse/dataplane/store/sql/PostgresControlPlaneStoreTest.java b/dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/sql/PostgresControlPlaneStoreTest.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/store/sql/PostgresControlPlaneStoreTest.java rename to dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/sql/PostgresControlPlaneStoreTest.java diff --git a/src/test/java/org/eclipse/dataplane/store/sql/PostgresDataFlowStoreTest.java b/dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/sql/PostgresDataFlowStoreTest.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/store/sql/PostgresDataFlowStoreTest.java rename to dataplane-sdk-core/src/test/java/org/eclipse/dataplane/store/sql/PostgresDataFlowStoreTest.java diff --git a/dataplane-sdk-jakarta-ee/build.gradle.kts b/dataplane-sdk-jakarta-ee/build.gradle.kts new file mode 100644 index 0000000..f3443fb --- /dev/null +++ b/dataplane-sdk-jakarta-ee/build.gradle.kts @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2026 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. - initial API and implementation + * + */ + +plugins { + `java-library` +} + +dependencies { + implementation(project(":dataplane-sdk-core")) + + implementation(libs.jakarta.rsApi) +} diff --git a/src/main/java/org/eclipse/dataplane/port/DataPlaneRegistrationApiController.java b/dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/DataPlaneRegistrationApiController.java similarity index 100% rename from src/main/java/org/eclipse/dataplane/port/DataPlaneRegistrationApiController.java rename to dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/DataPlaneRegistrationApiController.java diff --git a/src/main/java/org/eclipse/dataplane/port/DataPlaneSignalingApiController.java b/dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/DataPlaneSignalingApiController.java similarity index 88% rename from src/main/java/org/eclipse/dataplane/port/DataPlaneSignalingApiController.java rename to dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/DataPlaneSignalingApiController.java index 950f497..cb38413 100644 --- a/src/main/java/org/eclipse/dataplane/port/DataPlaneSignalingApiController.java +++ b/dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/DataPlaneSignalingApiController.java @@ -35,10 +35,8 @@ import org.eclipse.dataplane.domain.dataflow.DataFlowStatusResponseMessage; import org.eclipse.dataplane.domain.dataflow.DataFlowSuspendMessage; import org.eclipse.dataplane.domain.dataflow.DataFlowTerminateMessage; -import org.eclipse.dataplane.domain.registration.Authorization; - -import java.util.Map; +import static jakarta.ws.rs.core.HttpHeaders.AUTHORIZATION; import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON; import static jakarta.ws.rs.core.MediaType.WILDCARD; @@ -48,11 +46,9 @@ public class DataPlaneSignalingApiController { private final Dataplane dataplane; - private final Map authorizations; - public DataPlaneSignalingApiController(Dataplane dataplane, Map authorizations) { + public DataPlaneSignalingApiController(Dataplane dataplane) { this.dataplane = dataplane; - this.authorizations = authorizations; } @POST @@ -125,14 +121,11 @@ public DataFlowStatusResponseMessage status(@PathParam("flowId") String flowId) } private Result extractControlplaneId(ContainerRequestContext requestContext) { - var authorizationHeader = requestContext.getHeaderString("Authorization"); + var authorizationHeader = requestContext.getHeaderString(AUTHORIZATION); if (authorizationHeader == null) { return Result.failure(new NotAuthorizedException("Authorization header missing")); } - return authorizations.values().stream() - .map(authorization -> authorization.extractCallerId(authorizationHeader)) - .filter(Result::succeeded).findFirst() - .orElseGet(() -> Result.failure(new NotAuthorizedException("Authorization method not recognized"))); - } + return dataplane.extractControlplaneId(authorizationHeader); + } } diff --git a/src/main/java/org/eclipse/dataplane/port/ExceptionMapper.java b/dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/ExceptionMapper.java similarity index 83% rename from src/main/java/org/eclipse/dataplane/port/ExceptionMapper.java rename to dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/ExceptionMapper.java index 0e73427..07256bc 100644 --- a/src/main/java/org/eclipse/dataplane/port/ExceptionMapper.java +++ b/dataplane-sdk-jakarta-ee/src/main/java/org/eclipse/dataplane/port/ExceptionMapper.java @@ -9,6 +9,7 @@ * * Contributors: * Think-it GmbH - initial API and implementation + * Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. - move Jakarta to separate module * */ @@ -21,6 +22,7 @@ import org.eclipse.dataplane.port.exception.AuthorizationNotSupported; import org.eclipse.dataplane.port.exception.ControlPlaneNotRegistered; import org.eclipse.dataplane.port.exception.ResourceNotFoundException; +import org.eclipse.dataplane.port.exception.UnauthorizedException; import java.util.function.Function; @@ -43,6 +45,10 @@ public interface ExceptionMapper { return new BadRequestException(exception); } + if (exception instanceof UnauthorizedException unauthorized) { + return new NotAuthorizedException(unauthorized); + } + return new WebApplicationException("unexpected internal server error"); }; diff --git a/e2e-tests/build.gradle.kts b/e2e-tests/build.gradle.kts new file mode 100644 index 0000000..daf2e50 --- /dev/null +++ b/e2e-tests/build.gradle.kts @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2026 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. - initial API and implementation + * + */ + +plugins { + `java-library` +} + +dependencies { + testImplementation(project(":dataplane-sdk-core")) + testImplementation(project(":dataplane-sdk-jakarta-ee")) + + testImplementation(libs.nimbus.jwt) + + testImplementation(platform(libs.junit.bom)) + testImplementation(libs.junit.jupiter) + testRuntimeOnly(libs.junit.launcher) + testImplementation(libs.restAssured) + testImplementation(libs.assertJ) + testImplementation(libs.awaitility) + + testImplementation(libs.jakarta.rsApi) + testImplementation(libs.jersey.servlet) + testImplementation(libs.jersey.hk2) + testImplementation(libs.jersey.jackson) + testImplementation(libs.jetty.ee10.servlet) + testImplementation(libs.jetty.server) + testImplementation(libs.wiremock.jetty12) +} + +tasks.withType().configureEach { + enabled = false +} + +tasks.withType().configureEach { + enabled = false +} diff --git a/src/test/java/org/eclipse/dataplane/ControlPlane.java b/e2e-tests/src/test/java/org/eclipse/dataplane/ControlPlane.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/ControlPlane.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/ControlPlane.java diff --git a/src/test/java/org/eclipse/dataplane/DataplaneClient.java b/e2e-tests/src/test/java/org/eclipse/dataplane/DataplaneClient.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/DataplaneClient.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/DataplaneClient.java diff --git a/src/test/java/org/eclipse/dataplane/DataplaneTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/DataplaneTest.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/DataplaneTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/DataplaneTest.java diff --git a/src/test/java/org/eclipse/dataplane/HttpServer.java b/e2e-tests/src/test/java/org/eclipse/dataplane/HttpServer.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/HttpServer.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/HttpServer.java diff --git a/src/test/java/org/eclipse/dataplane/MessageFactory.java b/e2e-tests/src/test/java/org/eclipse/dataplane/MessageFactory.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/MessageFactory.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/MessageFactory.java diff --git a/src/test/java/org/eclipse/dataplane/api/ControlPlaneRegistrationApiTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/api/ControlPlaneRegistrationApiTest.java similarity index 97% rename from src/test/java/org/eclipse/dataplane/api/ControlPlaneRegistrationApiTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/api/ControlPlaneRegistrationApiTest.java index 0c0086a..b9617c6 100644 --- a/src/test/java/org/eclipse/dataplane/api/ControlPlaneRegistrationApiTest.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/api/ControlPlaneRegistrationApiTest.java @@ -20,6 +20,7 @@ import org.eclipse.dataplane.authorization.TestAuthorization; import org.eclipse.dataplane.domain.registration.AuthorizationProfile; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; +import org.eclipse.dataplane.port.DataPlaneRegistrationApiController; import org.eclipse.dataplane.port.exception.ResourceNotFoundException; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -45,7 +46,7 @@ class ControlPlaneRegistrationApiTest { void setUp() { httpServer.start(); - httpServer.deploy("/runtime/data-plane", sdk.registrationController()); + httpServer.deploy("/runtime/data-plane", new DataPlaneRegistrationApiController(sdk)); } @AfterEach diff --git a/src/test/java/org/eclipse/dataplane/authorization/TestAuthorization.java b/e2e-tests/src/test/java/org/eclipse/dataplane/authorization/TestAuthorization.java similarity index 100% rename from src/test/java/org/eclipse/dataplane/authorization/TestAuthorization.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/authorization/TestAuthorization.java diff --git a/src/test/java/org/eclipse/dataplane/scenario/AuthorizationOauth2Test.java b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/AuthorizationOauth2Test.java similarity index 97% rename from src/test/java/org/eclipse/dataplane/scenario/AuthorizationOauth2Test.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/scenario/AuthorizationOauth2Test.java index 6920c0c..2c3857a 100644 --- a/src/test/java/org/eclipse/dataplane/scenario/AuthorizationOauth2Test.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/AuthorizationOauth2Test.java @@ -35,6 +35,7 @@ import org.eclipse.dataplane.domain.registration.AuthorizationProfile; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; import org.eclipse.dataplane.domain.registration.Oauth2ClientCredentialsAuthorization; +import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -76,7 +77,7 @@ void setUp() { controlPlane.initialize(httpServer, "/data-plane", "/data-plane"); - httpServer.deploy("/data-plane", dataPlane.controller()); + httpServer.deploy("/data-plane", new DataPlaneSignalingApiController(dataPlane)); httpServer.deploy("/oauth2", new Oauth2TokenController(clientId, clientSecret)); } diff --git a/src/test/java/org/eclipse/dataplane/scenario/AuthorizationTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/AuthorizationTest.java similarity index 97% rename from src/test/java/org/eclipse/dataplane/scenario/AuthorizationTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/scenario/AuthorizationTest.java index fa2df60..8a1e60b 100644 --- a/src/test/java/org/eclipse/dataplane/scenario/AuthorizationTest.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/AuthorizationTest.java @@ -21,6 +21,7 @@ import org.eclipse.dataplane.domain.Result; import org.eclipse.dataplane.domain.dataflow.DataFlowStatusMessage; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; +import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.eclipse.dataplane.port.exception.DataFlowNotifyControlPlaneFailed; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -54,7 +55,7 @@ void setUp() { controlPlane.initialize(httpServer, "/data-plane", "/data-plane"); - httpServer.deploy("/data-plane", dataPlane.controller()); + httpServer.deploy("/data-plane", new DataPlaneSignalingApiController(dataPlane)); } @AfterEach diff --git a/src/test/java/org/eclipse/dataplane/scenario/ConsumerPullTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/ConsumerPullTest.java similarity index 97% rename from src/test/java/org/eclipse/dataplane/scenario/ConsumerPullTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/scenario/ConsumerPullTest.java index ee7a929..92f9972 100644 --- a/src/test/java/org/eclipse/dataplane/scenario/ConsumerPullTest.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/ConsumerPullTest.java @@ -25,6 +25,7 @@ import org.eclipse.dataplane.domain.dataflow.DataFlowStatusMessage; import org.eclipse.dataplane.domain.dataflow.DataFlowStatusResponseMessage; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; +import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -138,7 +139,7 @@ private class ConsumerDataPlane { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } private Result onStarted(DataFlow dataFlow) { @@ -170,7 +171,7 @@ private class ProviderDataPlane { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } public void completeStartup(String dataFlowId) { diff --git a/src/test/java/org/eclipse/dataplane/scenario/ProviderPushTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/ProviderPushTest.java similarity index 98% rename from src/test/java/org/eclipse/dataplane/scenario/ProviderPushTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/scenario/ProviderPushTest.java index 27c4629..744b6f4 100644 --- a/src/test/java/org/eclipse/dataplane/scenario/ProviderPushTest.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/ProviderPushTest.java @@ -24,6 +24,7 @@ import org.eclipse.dataplane.domain.dataflow.DataFlowStatusMessage; import org.eclipse.dataplane.domain.dataflow.DataFlowStatusResponseMessage; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; +import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.jspecify.annotations.NonNull; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -184,7 +185,7 @@ private Result onStart(DataFlow dataFlow) { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } } @@ -246,7 +247,7 @@ private Result onCompleted(DataFlow dataFlow) { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } } } diff --git a/src/test/java/org/eclipse/dataplane/scenario/StreamingPullTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/StreamingPullTest.java similarity index 98% rename from src/test/java/org/eclipse/dataplane/scenario/StreamingPullTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/scenario/StreamingPullTest.java index 6926c8b..6498834 100644 --- a/src/test/java/org/eclipse/dataplane/scenario/StreamingPullTest.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/StreamingPullTest.java @@ -28,6 +28,7 @@ import org.eclipse.dataplane.domain.dataflow.DataFlowSuspendMessage; import org.eclipse.dataplane.domain.dataflow.DataFlowTerminateMessage; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; +import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -175,7 +176,7 @@ private static class ConsumerDataPlane { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } private Result onStarted(DataFlow dataFlow) { @@ -234,7 +235,7 @@ private static class ProviderDataPlane { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } private Result onStart(DataFlow dataFlow) { diff --git a/src/test/java/org/eclipse/dataplane/scenario/StreamingPushTest.java b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/StreamingPushTest.java similarity index 98% rename from src/test/java/org/eclipse/dataplane/scenario/StreamingPushTest.java rename to e2e-tests/src/test/java/org/eclipse/dataplane/scenario/StreamingPushTest.java index 8a0b97a..b48f016 100644 --- a/src/test/java/org/eclipse/dataplane/scenario/StreamingPushTest.java +++ b/e2e-tests/src/test/java/org/eclipse/dataplane/scenario/StreamingPushTest.java @@ -26,6 +26,7 @@ import org.eclipse.dataplane.domain.dataflow.DataFlowStatusMessage; import org.eclipse.dataplane.domain.dataflow.DataFlowSuspendMessage; import org.eclipse.dataplane.domain.registration.ControlPlaneRegistrationMessage; +import org.eclipse.dataplane.port.DataPlaneSignalingApiController; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -180,7 +181,7 @@ private Result stopFlow(DataFlow dataFlow) { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } } @@ -230,7 +231,7 @@ private Result onCompleted(DataFlow dataFlow) { } public Object controller() { - return sdk.controller(); + return new DataPlaneSignalingApiController(sdk); } public void assertDataIsFlowing(String consumerProcessId) { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..fa2c3d6 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,45 @@ +[metadata] +format.version = "1.1" + +[versions] +assertJ = "3.27.7" +awaitility = "4.3.0" +jackson = "2.21.3" +jakarta = "4.0.0" +jersey = "4.0.2" +jetty = "12.1.9" +junit = "6.1.0" +mockito = "5.23.0" +nimbusJoseJwt = "10.9" +postgresql = "42.7.11" +restAssured = "6.0.0" +slf4j = "2.0.18" +testcontainers = "2.0.5" +wiremock = "3.13.2" + +[libraries] +jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" } +nimbus-jwt = { module = "com.nimbusds:nimbus-jose-jwt", version.ref = "nimbusJoseJwt" } +jakarta-rsApi = { module = "jakarta.ws.rs:jakarta.ws.rs-api", version.ref = "jakarta" } +jersey-servlet = { module = "org.glassfish.jersey.containers:jersey-container-servlet", version.ref = "jersey" } +jersey-hk2 = { module = "org.glassfish.jersey.inject:jersey-hk2", version.ref = "jersey" } +jersey-jackson = { module = "org.glassfish.jersey.media:jersey-media-json-jackson", version.ref = "jersey" } + +slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" } + +junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } +junit-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit" } + +restAssured = { module = "io.rest-assured:rest-assured", version.ref = "restAssured" } +assertJ = { module = "org.assertj:assertj-core", version.ref = "assertJ" } +awaitility = { module = "org.awaitility:awaitility", version.ref = "awaitility" } +mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" } + +testcontainers-junit-jupiter = { module = "org.testcontainers:testcontainers-junit-jupiter", version.ref = "testcontainers" } +testcontainers-postgresql = { module = "org.testcontainers:testcontainers-postgresql", version.ref = "testcontainers" } +postgresql = { module = "org.postgresql:postgresql", version.ref = "postgresql" } + +jetty-ee10-servlet = { module = "org.eclipse.jetty.ee10:jetty-ee10-servlet", version.ref = "jetty" } +jetty-server = { module = "org.eclipse.jetty:jetty-server", version.ref = "jetty" } +wiremock-jetty12 = { module = "org.wiremock:wiremock-jetty12", version.ref = "wiremock" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 603f502..aa049c5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,12 @@ rootProject.name = "dataplane-sdk" + +dependencyResolutionManagement { + repositories { + mavenCentral() + } +} + +include(":dataplane-sdk-core") +include(":dataplane-sdk-jakarta-ee") + +include(":e2e-tests")