From d100449e9f3ae5b79b4992299056a0da6280755a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Gonz=C3=A1lez=20Marcos?= Date: Tue, 26 Aug 2025 16:18:48 +0200 Subject: [PATCH 1/3] chore: ignore Max and text editor files --- .gitignore | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a335cd4..bac9cea 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,12 @@ buildNumber.properties # VSCode -.vscode \ No newline at end of file +.vscode + +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store From 0e87b21836bba1e47fc1dd2ab794d8a314384e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Gonz=C3=A1lez=20Marcos?= Date: Tue, 26 Aug 2025 20:42:08 +0200 Subject: [PATCH 2/3] feat: multi module repository with examples --- examples/pom.xml | 23 ++ .../pgmarc/space/examples/SingleService.java | 80 ++++ .../resources/single/2024-03-02-wiremock.yaml | 60 +++ .../resources/single/2025-08-23-wiremock.yaml | 79 ++++ pom.xml | 366 +++++------------- space-client/pom.xml | 197 ++++++++++ .../pgmarc/space/ContractsEndpoint.java | 0 .../io/github/pgmarc/space/SpaceClient.java | 0 .../github/pgmarc/space/contracts/AddOn.java | 0 .../pgmarc/space/contracts/BillingPeriod.java | 0 .../pgmarc/space/contracts/Service.java | 0 .../pgmarc/space/contracts/Subscription.java | 0 .../space/contracts/SubscriptionRequest.java | 0 .../contracts/SubscriptionUpdateRequest.java | 0 .../pgmarc/space/contracts/UsageLevel.java | 0 .../pgmarc/space/contracts/UserContact.java | 0 .../BillingPeriodDeserializer.java | 0 .../deserializers/ErrorDeserializer.java | 0 .../deserializers/JsonDeserializable.java | 0 .../deserializers/ServicesDeserializer.java | 0 .../deserializers/SnapshotsDeserializer.java | 0 .../SubscriptionDeserializer.java | 0 .../deserializers/UsageLevelDeserializer.java | 0 .../UserContactDeserializer.java | 0 .../space/exceptions/SpaceApiError.java | 0 .../space/exceptions/SpaceApiException.java | 0 .../space/serializers/JsonSerializable.java | 0 .../SubscriptionRequestSerializer.java | 0 .../SubscriptionUpdateRequestSerializer.java | 0 .../pgmarc/space/ContractsEndpointTest.java | 0 .../github/pgmarc/space/SpaceClientTest.java | 0 .../space/contracts/BillingPeriodTest.java | 0 .../pgmarc/space/contracts/ServiceTest.java | 0 .../contracts/SubscriptionRequestTest.java | 0 .../space/contracts/UsageLevelTest.java | 0 .../space/contracts/UserContactTest.java | 0 .../BillingPeriodSerializerTest.java | 0 .../SubscriptionSerializerTest.java | 0 .../UserContactSerializerTest.java | 0 .../SubscriptionRequestSerializerTest.java | 0 .../__files/addContracts-response.hbs | 0 .../__files/getContractById-response.json | 0 .../__files/subscription-request.json | 0 43 files changed, 541 insertions(+), 264 deletions(-) create mode 100644 examples/pom.xml create mode 100644 examples/src/main/java/io/github/pgmarc/space/examples/SingleService.java create mode 100644 examples/src/main/resources/single/2024-03-02-wiremock.yaml create mode 100644 examples/src/main/resources/single/2025-08-23-wiremock.yaml create mode 100644 space-client/pom.xml rename {src => space-client/src}/main/java/io/github/pgmarc/space/ContractsEndpoint.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/SpaceClient.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/AddOn.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/BillingPeriod.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/Service.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/Subscription.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/SubscriptionRequest.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/SubscriptionUpdateRequest.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/UsageLevel.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/contracts/UserContact.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/BillingPeriodDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/ErrorDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/JsonDeserializable.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/ServicesDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/SnapshotsDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/SubscriptionDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/UsageLevelDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/deserializers/UserContactDeserializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/exceptions/SpaceApiError.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/exceptions/SpaceApiException.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/serializers/JsonSerializable.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializer.java (100%) rename {src => space-client/src}/main/java/io/github/pgmarc/space/serializers/SubscriptionUpdateRequestSerializer.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/ContractsEndpointTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/SpaceClientTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/contracts/BillingPeriodTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/contracts/ServiceTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/contracts/SubscriptionRequestTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/contracts/UsageLevelTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/contracts/UserContactTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/deserializers/BillingPeriodSerializerTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/deserializers/SubscriptionSerializerTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/deserializers/UserContactSerializerTest.java (100%) rename {src => space-client/src}/test/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializerTest.java (100%) rename {src => space-client/src}/test/resources/__files/addContracts-response.hbs (100%) rename {src => space-client/src}/test/resources/__files/getContractById-response.json (100%) rename {src => space-client/src}/test/resources/__files/subscription-request.json (100%) diff --git a/examples/pom.xml b/examples/pom.xml new file mode 100644 index 0000000..a5caaab --- /dev/null +++ b/examples/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + + io.github.pgmarc.space + space-client-parent + 0.0.1-SNAPSHOT + + + space-client-examples + 1.0.0-SNAPSHOT + space-client-examples + + + + io.github.pgmarc.space + space-client + 0.0.1-SNAPSHOT + + + diff --git a/examples/src/main/java/io/github/pgmarc/space/examples/SingleService.java b/examples/src/main/java/io/github/pgmarc/space/examples/SingleService.java new file mode 100644 index 0000000..c9ff45b --- /dev/null +++ b/examples/src/main/java/io/github/pgmarc/space/examples/SingleService.java @@ -0,0 +1,80 @@ +package io.github.pgmarc.space.examples; + +import java.io.IOException; +import java.util.Objects; + +import io.github.pgmarc.space.SpaceClient; +import io.github.pgmarc.space.contracts.Subscription; +import io.github.pgmarc.space.contracts.SubscriptionRequest; +import io.github.pgmarc.space.contracts.SubscriptionUpdateRequest; +import io.github.pgmarc.space.contracts.UserContact; +import okhttp3.*; + +/** + * In this example you will be subscribing to a service with only a single + * plan available. After that you will update your subscription to the + * lastest available version of the service pricing. + * + *

+ * You have the corresponding Pricing2Yaml files in + * src/main/resources/single folder. + *

+ */ +public class SingleService { + + /** + * Before executing the code snippets you have to do the following: + * + * + * You are free to experiment with the API and adjust the code to your needs. + * Happy Hacking :) + * + * @see + * + */ + public static void main(String[] args) throws IOException { + + String apiKey = Objects.requireNonNull(System.getenv("SPACE_API_KEY"), + "You need to set SPACE_API_KEY env variable") ; + + SpaceClient client = SpaceClient.builder("localhost", apiKey).build(); + + // A subscription at least requires a user id and a username + String userId = "4427d118-073d-4da2-a145-f77a75b52595"; + String username = "alex"; + UserContact contact = UserContact.builder(userId, username).build(); + + // But, you can provide more user contact information if you want + UserContact contact2 = UserContact + .builder("3f5f934c-951b-4a2d-ad10-b1679ac9b7ba", "janedoe") + .firstName("Jane") + .lastName("Doe") + .email("janedoe@example.com") + .phone("280-689-4646").build(); + + SubscriptionRequest subReq = SubscriptionRequest.builder(contact) + .startService("WireMock", "2024") + .plan("Enterprise") + .endService() + .build(); + + Subscription newSubscription = client.contracts().addContract(subReq); + System.out.println(newSubscription); + + Subscription subscription = client.contracts().getContractByUserId(userId); + System.out.println(subscription); + + // Updating (novating) the contract to version of 2025 + SubscriptionUpdateRequest upReq = SubscriptionUpdateRequest.builder() + .service("WireMock", "2025") + .plan("Enterprise") + .add(); + + Subscription updatedSubscription = client.contracts().updateContractByUserId(userId, upReq); + System.out.println(updatedSubscription); + } + +} diff --git a/examples/src/main/resources/single/2024-03-02-wiremock.yaml b/examples/src/main/resources/single/2024-03-02-wiremock.yaml new file mode 100644 index 0000000..c049879 --- /dev/null +++ b/examples/src/main/resources/single/2024-03-02-wiremock.yaml @@ -0,0 +1,60 @@ +saasName: WireMock +syntaxVersion: "3.0" +createdAt: 2025-08-23 +version: "2024" +currency: USD +url: https://web.archive.org/web/20240302003353/https://www.wiremock.io/get-pricing +features: + mockAPI: + type: DOMAIN + valueType: BOOLEAN + defaultValue: true + expression: + pricingContext['features']['mockAPI'] && + (subscriptionContext['mockAPICallsLimit'] < pricingContext['usageLimits']['mockAPICallsLimit']) + RBAC: + type: DOMAIN + valueType: BOOLEAN + defaultValue: false + expression: pricingContext['features']['RBAC'] + gitSync: + type: DOMAIN + valueType: BOOLEAN + defaultValue: false + expression: pricingContext['features']['gitSync'] +usageLimits: + mockAPICallsLimit: + type: RENEWABLE + valueType: NUMERIC + defaultValue: 1000 + period: + value: 1 + unit: MONTH + unit: call/month + linkedFeatures: + - mockAPI + maxUsers: + type: NON_RENEWABLE + valueType: NUMERIC + trackable: true + defaultValue: 1 + unit: user +plans: + Free: + description: $0 free forever. No credit card required. + price: 0 + features: null + usageLimits: null + Enterprise: + description: For larger teams or API Volume + price: Get in touch + features: + RBAC: + value: true + gitSync: + value: true + usageLimits: + mockAPICallsLimit: + value: .inf + maxUsers: + value: .inf diff --git a/examples/src/main/resources/single/2025-08-23-wiremock.yaml b/examples/src/main/resources/single/2025-08-23-wiremock.yaml new file mode 100644 index 0000000..c2767a0 --- /dev/null +++ b/examples/src/main/resources/single/2025-08-23-wiremock.yaml @@ -0,0 +1,79 @@ +saasName: WireMock +syntaxVersion: "3.0" +createdAt: 2025-08-23 +version: "2025" +currency: USD +url: https://web.archive.org/web/20250823073700/https://www.wiremock.io/get-pricing +features: + mockAPI: + description: Get rid of testing environment infrastructure bills. + type: DOMAIN + valueType: BOOLEAN + defaultValue: true + expression: + pricingContext['features']['mockAPI'] && + (subscriptionContext['mockAPICallsLimit'] < pricingContext['usageLimits']['mockAPICallsLimit']) + RBAC: + description: Connect your SSO provider for easy access + type: DOMAIN + valueType: BOOLEAN + defaultValue: false + expression: pricingContext['features']['RBAC'] + gitSync: + description: Use an OpenAPI spec in Git as the source of truth for your mock APis + type: DOMAIN + valueType: BOOLEAN + defaultValue: false + expression: pricingContext['features']['gitSync'] + testDataImport: + description: Connect external data sources to instantly bring your test data into your mock APIs + type: DOMAIN + valueType: BOOLEAN + defaultValue: false + expression: pricingContext['features']['testDataImport'] + fakeDataGeneration: + description: Choose from hundreds of patterns tor randomly generating critical test data + type: DOMAIN + valueType: BOOLEAN + defaultValue: false + expression: pricingContext['features']['fakeDataGeneration'] +usageLimits: + mockAPICallsLimit: + type: RENEWABLE + valueType: NUMERIC + defaultValue: 1000 + period: + value: 1 + unit: MONTH + unit: call/month + linkedFeatures: + - mockAPI + maxUsers: + type: NON_RENEWABLE + valueType: NUMERIC + trackable: true + defaultValue: 1 + unit: user +plans: + Free: + description: $0 free forever. No credit card required. + price: 0 + features: null + usageLimits: null + Enterprise: + description: For larger teams or API Volume + price: Get in touch + features: + RBAC: + value: true + gitSync: + value: true + testDataImport: + value: true + fakeDataGeneration: + value: true + usageLimits: + mockAPICallsLimit: + value: .inf + maxUsers: + value: .inf diff --git a/pom.xml b/pom.xml index 0095308..baf9ca8 100644 --- a/pom.xml +++ b/pom.xml @@ -1,288 +1,126 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 - io.github.pgmarc.space - space-client - 0.0.1-SNAPSHOT - space-client - + io.github.pgmarc.space + space-client-parent + pom + 0.0.1-SNAPSHOT + space-client + A REST client for interacting with the Subscription and Pricing Access Control Engine (SPACE) API https://github.com/pgmarc/space-java-client - - - MIT - https://opensource.org/license/mit/ - repo - - + + examples + space-client + - - ISA Group - https://github.com/isa-group - + + + MIT + https://opensource.org/license/mit/ + repo + + - + + ISA Group + https://github.com/isa-group + + + Pedro González Marcos pgonzalez11@us.es ISA Group - https://github.com/isa-group - - - - - scm:git:git://github.com/pgmarc/space-java-client.git - scm:git:ssh://github.com/pgmarc/space-java-client.git - https://github.com/pgmarc/space-java-client/tree/main - HEAD - + https://github.com/isa-group + + - - pgmarc - https://sonarcloud.io - UTF-8 - 11 - 5.1.0 - 2.1.2 - 20250517 - + + scm:git:git://github.com/pgmarc/space-java-client.git + scm:git:ssh://github.com/pgmarc/space-java-client.git + https://github.com/pgmarc/space-java-client/tree/main + HEAD + - - - - org.json - json - ${org.json.version} - + + pgmarc + https://sonarcloud.io + UTF-8 + 11 + - - - io.socket - engine.io-client - 2.1.0 - - - com.squareup.okhttp3 - okhttp - - - + + - com.squareup.okhttp3 - okhttp-bom - ${okhttp.version} + org.junit + junit-bom + 5.13.4 pom import - - com.squareup.okio - okio-jvm - 3.16.0 + org.assertj + assertj-core + 3.26.3 + test - - org.junit - junit-bom - 5.13.4 - pom - import - - - - - - - org.json - json - - - io.socket - socket.io-client - ${socket.io-client.version} - - - - com.squareup.okhttp3 - okhttp-jvm - ${okhttp.version} - - - org.junit.jupiter - junit-jupiter - test - - - org.wiremock - wiremock - 3.13.1 - test - - - org.assertj - assertj-core - 3.26.3 - test - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.14.0 - - - org.apache.maven.plugins - maven-surefire-plugin - 3.5.3 - - - org.apache.maven.plugins - maven-surefire-report-plugin - 3.5.3 - - - org.apache.maven.plugins - maven-enforcer-plugin - 3.6.1 - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.11.2 - - - org.apache.maven.plugins - maven-source-plugin - 3.3.1 - - - org.apache.maven.plugins - maven-jar-plugin - 3.4.2 - - - org.sonarsource.scanner.maven - sonar-maven-plugin - 5.1.0.4751 - - - org.jacoco - jacoco-maven-plugin - 0.8.13 - - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - attach-javadocs - - jar - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - enforce-versions - - enforce - - - - - - - [3.6,4.0) - - - [11,) - - - - - - - - + + - - - coverage - - - - org.jacoco - jacoco-maven-plugin - - - prepare-agent - - prepare-agent - - - - report - - report - - - - XML - - - - - - - - - + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.3 + + + org.apache.maven.plugins + maven-surefire-report-plugin + 3.5.3 + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.6.1 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.2 + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 5.1.0.4751 + + + org.jacoco + jacoco-maven-plugin + 0.8.13 + + + + diff --git a/space-client/pom.xml b/space-client/pom.xml new file mode 100644 index 0000000..5f5ee6f --- /dev/null +++ b/space-client/pom.xml @@ -0,0 +1,197 @@ + + + 4.0.0 + + + io.github.pgmarc.space + space-client-parent + 0.0.1-SNAPSHOT + + + space-client + 0.0.1-SNAPSHOT + space-client + + + scm:git:git://github.com/pgmarc/space-java-client.git + scm:git:ssh://github.com/pgmarc/space-java-client.git + https://github.com/pgmarc/space-java-client/tree/main + HEAD + + + + 20250517 + 5.1.0 + 2.1.2 + + + + + + com.squareup.okhttp3 + okhttp-bom + ${okhttp.version} + pom + import + + + + io.socket + engine.io-client + 2.1.0 + + + com.squareup.okhttp3 + okhttp + + + + + + com.squareup.okio + okio-jvm + 3.16.0 + + + + + + + org.json + json + ${org.json.version} + + + + + com.squareup.okhttp3 + okhttp-jvm + ${okhttp.version} + + + org.junit.jupiter + junit-jupiter + test + + + org.wiremock + wiremock + 3.13.1 + test + + + org.assertj + assertj-core + test + + + + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-versions + + enforce + + + + + + + [3.6,4.0) + + + [11,) + + + + + + + + + + + + coverage + + + + org.jacoco + jacoco-maven-plugin + + + prepare-agent + + prepare-agent + + + + report + + report + + + + XML + + + + + + + + + + diff --git a/src/main/java/io/github/pgmarc/space/ContractsEndpoint.java b/space-client/src/main/java/io/github/pgmarc/space/ContractsEndpoint.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/ContractsEndpoint.java rename to space-client/src/main/java/io/github/pgmarc/space/ContractsEndpoint.java diff --git a/src/main/java/io/github/pgmarc/space/SpaceClient.java b/space-client/src/main/java/io/github/pgmarc/space/SpaceClient.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/SpaceClient.java rename to space-client/src/main/java/io/github/pgmarc/space/SpaceClient.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/AddOn.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/AddOn.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/AddOn.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/AddOn.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/BillingPeriod.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/BillingPeriod.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/BillingPeriod.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/BillingPeriod.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/Service.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/Service.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/Service.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/Service.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/Subscription.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/Subscription.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/Subscription.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/Subscription.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/SubscriptionRequest.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/SubscriptionRequest.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/SubscriptionRequest.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/SubscriptionRequest.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/SubscriptionUpdateRequest.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/SubscriptionUpdateRequest.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/SubscriptionUpdateRequest.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/SubscriptionUpdateRequest.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/UsageLevel.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/UsageLevel.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/UsageLevel.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/UsageLevel.java diff --git a/src/main/java/io/github/pgmarc/space/contracts/UserContact.java b/space-client/src/main/java/io/github/pgmarc/space/contracts/UserContact.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/contracts/UserContact.java rename to space-client/src/main/java/io/github/pgmarc/space/contracts/UserContact.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/BillingPeriodDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/BillingPeriodDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/BillingPeriodDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/BillingPeriodDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/ErrorDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/ErrorDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/ErrorDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/ErrorDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/JsonDeserializable.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/JsonDeserializable.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/JsonDeserializable.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/JsonDeserializable.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/ServicesDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/ServicesDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/ServicesDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/ServicesDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/SnapshotsDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/SnapshotsDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/SnapshotsDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/SnapshotsDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/SubscriptionDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/SubscriptionDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/SubscriptionDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/SubscriptionDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/UsageLevelDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/UsageLevelDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/UsageLevelDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/UsageLevelDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/deserializers/UserContactDeserializer.java b/space-client/src/main/java/io/github/pgmarc/space/deserializers/UserContactDeserializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/deserializers/UserContactDeserializer.java rename to space-client/src/main/java/io/github/pgmarc/space/deserializers/UserContactDeserializer.java diff --git a/src/main/java/io/github/pgmarc/space/exceptions/SpaceApiError.java b/space-client/src/main/java/io/github/pgmarc/space/exceptions/SpaceApiError.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/exceptions/SpaceApiError.java rename to space-client/src/main/java/io/github/pgmarc/space/exceptions/SpaceApiError.java diff --git a/src/main/java/io/github/pgmarc/space/exceptions/SpaceApiException.java b/space-client/src/main/java/io/github/pgmarc/space/exceptions/SpaceApiException.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/exceptions/SpaceApiException.java rename to space-client/src/main/java/io/github/pgmarc/space/exceptions/SpaceApiException.java diff --git a/src/main/java/io/github/pgmarc/space/serializers/JsonSerializable.java b/space-client/src/main/java/io/github/pgmarc/space/serializers/JsonSerializable.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/serializers/JsonSerializable.java rename to space-client/src/main/java/io/github/pgmarc/space/serializers/JsonSerializable.java diff --git a/src/main/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializer.java b/space-client/src/main/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializer.java rename to space-client/src/main/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializer.java diff --git a/src/main/java/io/github/pgmarc/space/serializers/SubscriptionUpdateRequestSerializer.java b/space-client/src/main/java/io/github/pgmarc/space/serializers/SubscriptionUpdateRequestSerializer.java similarity index 100% rename from src/main/java/io/github/pgmarc/space/serializers/SubscriptionUpdateRequestSerializer.java rename to space-client/src/main/java/io/github/pgmarc/space/serializers/SubscriptionUpdateRequestSerializer.java diff --git a/src/test/java/io/github/pgmarc/space/ContractsEndpointTest.java b/space-client/src/test/java/io/github/pgmarc/space/ContractsEndpointTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/ContractsEndpointTest.java rename to space-client/src/test/java/io/github/pgmarc/space/ContractsEndpointTest.java diff --git a/src/test/java/io/github/pgmarc/space/SpaceClientTest.java b/space-client/src/test/java/io/github/pgmarc/space/SpaceClientTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/SpaceClientTest.java rename to space-client/src/test/java/io/github/pgmarc/space/SpaceClientTest.java diff --git a/src/test/java/io/github/pgmarc/space/contracts/BillingPeriodTest.java b/space-client/src/test/java/io/github/pgmarc/space/contracts/BillingPeriodTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/contracts/BillingPeriodTest.java rename to space-client/src/test/java/io/github/pgmarc/space/contracts/BillingPeriodTest.java diff --git a/src/test/java/io/github/pgmarc/space/contracts/ServiceTest.java b/space-client/src/test/java/io/github/pgmarc/space/contracts/ServiceTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/contracts/ServiceTest.java rename to space-client/src/test/java/io/github/pgmarc/space/contracts/ServiceTest.java diff --git a/src/test/java/io/github/pgmarc/space/contracts/SubscriptionRequestTest.java b/space-client/src/test/java/io/github/pgmarc/space/contracts/SubscriptionRequestTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/contracts/SubscriptionRequestTest.java rename to space-client/src/test/java/io/github/pgmarc/space/contracts/SubscriptionRequestTest.java diff --git a/src/test/java/io/github/pgmarc/space/contracts/UsageLevelTest.java b/space-client/src/test/java/io/github/pgmarc/space/contracts/UsageLevelTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/contracts/UsageLevelTest.java rename to space-client/src/test/java/io/github/pgmarc/space/contracts/UsageLevelTest.java diff --git a/src/test/java/io/github/pgmarc/space/contracts/UserContactTest.java b/space-client/src/test/java/io/github/pgmarc/space/contracts/UserContactTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/contracts/UserContactTest.java rename to space-client/src/test/java/io/github/pgmarc/space/contracts/UserContactTest.java diff --git a/src/test/java/io/github/pgmarc/space/deserializers/BillingPeriodSerializerTest.java b/space-client/src/test/java/io/github/pgmarc/space/deserializers/BillingPeriodSerializerTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/deserializers/BillingPeriodSerializerTest.java rename to space-client/src/test/java/io/github/pgmarc/space/deserializers/BillingPeriodSerializerTest.java diff --git a/src/test/java/io/github/pgmarc/space/deserializers/SubscriptionSerializerTest.java b/space-client/src/test/java/io/github/pgmarc/space/deserializers/SubscriptionSerializerTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/deserializers/SubscriptionSerializerTest.java rename to space-client/src/test/java/io/github/pgmarc/space/deserializers/SubscriptionSerializerTest.java diff --git a/src/test/java/io/github/pgmarc/space/deserializers/UserContactSerializerTest.java b/space-client/src/test/java/io/github/pgmarc/space/deserializers/UserContactSerializerTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/deserializers/UserContactSerializerTest.java rename to space-client/src/test/java/io/github/pgmarc/space/deserializers/UserContactSerializerTest.java diff --git a/src/test/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializerTest.java b/space-client/src/test/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializerTest.java similarity index 100% rename from src/test/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializerTest.java rename to space-client/src/test/java/io/github/pgmarc/space/serializers/SubscriptionRequestSerializerTest.java diff --git a/src/test/resources/__files/addContracts-response.hbs b/space-client/src/test/resources/__files/addContracts-response.hbs similarity index 100% rename from src/test/resources/__files/addContracts-response.hbs rename to space-client/src/test/resources/__files/addContracts-response.hbs diff --git a/src/test/resources/__files/getContractById-response.json b/space-client/src/test/resources/__files/getContractById-response.json similarity index 100% rename from src/test/resources/__files/getContractById-response.json rename to space-client/src/test/resources/__files/getContractById-response.json diff --git a/src/test/resources/__files/subscription-request.json b/space-client/src/test/resources/__files/subscription-request.json similarity index 100% rename from src/test/resources/__files/subscription-request.json rename to space-client/src/test/resources/__files/subscription-request.json From 9c31f3a8fea3446f5ef307648d50b93756ce75fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Gonz=C3=A1lez=20Marcos?= Date: Wed, 27 Aug 2025 10:24:49 +0200 Subject: [PATCH 3/3] ci(sonar): adjust sonar to multi-module project --- .github/workflows/test.yaml | 9 +++++---- pom.xml | 6 ++++-- space-client/pom.xml | 7 ------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f220ac1..7b403c3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -31,8 +31,9 @@ jobs: if: ${{ github.ref == 'refs/heads/main' }} env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: >- - mvn --batch-mode verify sonar:sonar - -Dsonar.java.jdkHome=$JAVA_HOME_11_X64 - -Dsonar.projectKey=pgmarc_space-java-client + run: mvn --projects space-client --batch-mode verify sonar:sonar \ + -Dsonar.host.url=https://sonarcloud.io \ + -Dsonar.organization=pgmarc \ + -Dsonar.projectKey=pgmarc_space-java-client \ + -Dsonar.java.jdkHome=$JAVA_HOME_11_X64 \ -Pcoverage diff --git a/pom.xml b/pom.xml index baf9ca8..628cf8d 100644 --- a/pom.xml +++ b/pom.xml @@ -48,10 +48,12 @@ - pgmarc - https://sonarcloud.io UTF-8 11 + + ${maven.multiModuleProjectDirectory}/space-client/target/site/ + jacoco/jacoco.xml + diff --git a/space-client/pom.xml b/space-client/pom.xml index 5f5ee6f..d007be1 100644 --- a/space-client/pom.xml +++ b/space-client/pom.xml @@ -13,13 +13,6 @@ 0.0.1-SNAPSHOT space-client - - scm:git:git://github.com/pgmarc/space-java-client.git - scm:git:ssh://github.com/pgmarc/space-java-client.git - https://github.com/pgmarc/space-java-client/tree/main - HEAD - - 20250517 5.1.0