diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 72cc2ff46a1..9e04bbc4c73 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -136,6 +136,10 @@ jobs:
cd examples/maven-okhttp3 && mvn verify --no-transfer-progress
cd ../maven-okhttp4 && mvn verify --no-transfer-progress
cd ../split-packages && mvn verify --no-transfer-progress
+ env:
+ CTP_CLIENT_ID: ${{ secrets.CTP_CLIENT_ID }}
+ CTP_CLIENT_SECRET: ${{ secrets.CTP_CLIENT_SECRET }}
+ CTP_PROJECT_KEY: ${{ secrets.CTP_PROJECT_KEY }}
- name: Collect code coverage
run: ./gradlew codeCoverageReport
diff --git a/commercetools/commercetools-sdk-java-api/build.gradle b/commercetools/commercetools-sdk-java-api/build.gradle
index d24e0030032..56f54ab9a72 100644
--- a/commercetools/commercetools-sdk-java-api/build.gradle
+++ b/commercetools/commercetools-sdk-java-api/build.gradle
@@ -21,14 +21,25 @@ sourceSets.main.java.srcDirs += "src/main/java-generated"
sourceSets.main.java.srcDirs += "src/main/java-predicates-generated"
sourceSets.test.java.srcDirs += "src/test/java-generated"
-
projectDir.toPath().resolve("src/main/java-generated/com/commercetools/api/models/").eachDir { dir ->
def dirname = dir.toFile().name
- def modelTask = tasks.register("models_${dirname}Jar", Jar) {
- from sourceSets.main.output
- include "**/models/$dirname/**"
- archiveBaseName = project.name + "-models-$dirname"
+ def modelTask
+ if (dirname != "common") {
+ modelTask = tasks.register("models_${dirname}Jar", Jar) {
+ from sourceSets.main.output
+
+ include "**/models/$dirname/**"
+ exclude "**/models/**/*ReferenceBuilder*", "**/models/**/*ResourceIdentifierBuilder*"
+ archiveBaseName = project.name + "-models-$dirname"
+ }
+ } else {
+ modelTask = tasks.register("models_${dirname}Jar", Jar) {
+ from sourceSets.main.output
+
+ include "**/models/$dirname/**", "**/models/**/*ReferenceBuilder*", "**/models/**/*ResourceIdentifierBuilder*"
+ archiveBaseName = project.name + "-models-$dirname"
+ }
}
def modelSourcesTask = tasks.register("sources_${dirname}Jar", Jar) {
archiveClassifier = 'sources'
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/client/ByProjectKeyCustomersRequestBuilderMixin.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/client/ByProjectKeyCustomersRequestBuilderMixin.java
index f688f10fbe5..bc964902138 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/client/ByProjectKeyCustomersRequestBuilderMixin.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/client/ByProjectKeyCustomersRequestBuilderMixin.java
@@ -5,7 +5,12 @@
import java.util.function.UnaryOperator;
import com.commercetools.api.models.Versioned;
-import com.commercetools.api.models.customer.*;
+import com.commercetools.api.models.customer.Customer;
+import com.commercetools.api.models.customer.CustomerDraft;
+import com.commercetools.api.models.customer.CustomerDraftBuilder;
+import com.commercetools.api.models.customer.CustomerUpdate;
+import com.commercetools.api.models.customer.CustomerUpdateAction;
+import com.commercetools.api.models.customer.CustomerUpdateActionBuilder;
public interface ByProjectKeyCustomersRequestBuilderMixin {
public ByProjectKeyCustomersByIDRequestBuilder withId(String ID);
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/defaultconfig/ApiRootBuilder.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/defaultconfig/ApiRootBuilder.java
index 286ea2779dc..7a63789d13c 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/defaultconfig/ApiRootBuilder.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/defaultconfig/ApiRootBuilder.java
@@ -13,7 +13,12 @@
import javax.annotation.Nullable;
-import com.commercetools.api.client.*;
+import com.commercetools.api.client.ApiCorrelationIdProvider;
+import com.commercetools.api.client.ApiInternalLoggerFactory;
+import com.commercetools.api.client.ApiRoot;
+import com.commercetools.api.client.ByProjectKeyRequestBuilder;
+import com.commercetools.api.client.ConcurrentModificationMiddleware;
+import com.commercetools.api.client.ProjectApiRoot;
import com.commercetools.api.client.error.ApiHttpExceptionFactory;
import io.vrap.rmf.base.client.*;
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/AttributeDeserializer.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/AttributeDeserializer.java
index e1e75511973..9073fa0d9a0 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/AttributeDeserializer.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/AttributeDeserializer.java
@@ -12,7 +12,9 @@
import com.commercetools.api.models.common.LocalizedString;
import com.commercetools.api.models.common.Reference;
import com.commercetools.api.models.common.TypedMoney;
-import com.commercetools.api.models.product.*;
+import com.commercetools.api.models.product.Attribute;
+import com.commercetools.api.models.product.AttributeBuilder;
+import com.commercetools.api.models.product.AttributeImpl;
import com.commercetools.api.models.product_type.AttributeLocalizedEnumValue;
import com.commercetools.api.models.product_type.AttributePlainEnumValue;
import com.fasterxml.jackson.core.JsonParser;
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/CustomFieldDeserializer.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/CustomFieldDeserializer.java
index a33554402e1..e134a7adcd6 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/CustomFieldDeserializer.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/json/CustomFieldDeserializer.java
@@ -12,7 +12,10 @@
import com.commercetools.api.models.common.LocalizedString;
import com.commercetools.api.models.common.Reference;
import com.commercetools.api.models.common.TypedMoney;
-import com.commercetools.api.models.type.*;
+import com.commercetools.api.models.type.CustomFieldEnumValue;
+import com.commercetools.api.models.type.CustomFieldLocalizedEnumValue;
+import com.commercetools.api.models.type.FieldContainerBuilder;
+import com.commercetools.api.models.type.FieldContainerImpl;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/custom_object/GenericCustomObject.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/custom_object/GenericCustomObject.java
index 6c0b8dde1e7..22422efd143 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/custom_object/GenericCustomObject.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/custom_object/GenericCustomObject.java
@@ -7,7 +7,10 @@
import javax.annotation.Nullable;
import com.commercetools.api.models.Referencable;
-import com.commercetools.api.models.common.*;
+import com.commercetools.api.models.common.BaseResource;
+import com.commercetools.api.models.common.CreatedBy;
+import com.commercetools.api.models.common.LastModifiedBy;
+import com.commercetools.api.models.common.Reference;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/order/OrderLike.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/order/OrderLike.java
index 73d93638007..c11cc4f54b3 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/order/OrderLike.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/order/OrderLike.java
@@ -9,9 +9,24 @@
import javax.money.MonetaryAmount;
-import com.commercetools.api.models.cart.*;
+import com.commercetools.api.models.cart.CartOrigin;
+import com.commercetools.api.models.cart.CustomLineItem;
+import com.commercetools.api.models.cart.DiscountCodeInfo;
+import com.commercetools.api.models.cart.InventoryMode;
+import com.commercetools.api.models.cart.LineItem;
+import com.commercetools.api.models.cart.RoundingMode;
+import com.commercetools.api.models.cart.ShippingInfo;
+import com.commercetools.api.models.cart.ShippingRateInput;
+import com.commercetools.api.models.cart.TaxCalculationMode;
+import com.commercetools.api.models.cart.TaxMode;
+import com.commercetools.api.models.cart.TaxedPrice;
import com.commercetools.api.models.cart_discount.CartDiscountReference;
-import com.commercetools.api.models.common.*;
+import com.commercetools.api.models.common.Address;
+import com.commercetools.api.models.common.CreatedBy;
+import com.commercetools.api.models.common.LastModifiedBy;
+import com.commercetools.api.models.common.MonetaryAmountConvertable;
+import com.commercetools.api.models.common.Money;
+import com.commercetools.api.models.common.TypedMoney;
import com.commercetools.api.models.customer_group.CustomerGroupReference;
import com.commercetools.api.models.store.StoreKeyReference;
import com.commercetools.api.models.type.CustomFields;
diff --git a/examples/maven-okhttp3/pom.xml b/examples/maven-okhttp3/pom.xml
index d80a7b75cea..2723affb38d 100644
--- a/examples/maven-okhttp3/pom.xml
+++ b/examples/maven-okhttp3/pom.xml
@@ -11,9 +11,10 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.13.0
- 8
- 8
+ 11
+ 11
diff --git a/examples/maven-okhttp3/src/test/java/com/commercetools/sdk/examples/GettingStarted.java b/examples/maven-okhttp3/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
similarity index 96%
rename from examples/maven-okhttp3/src/test/java/com/commercetools/sdk/examples/GettingStarted.java
rename to examples/maven-okhttp3/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
index 72130149edc..8f436b99d95 100644
--- a/examples/maven-okhttp3/src/test/java/com/commercetools/sdk/examples/GettingStarted.java
+++ b/examples/maven-okhttp3/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
@@ -10,7 +10,7 @@
import java.util.Optional;
-public class GettingStarted {
+public class GettingStartedTests {
@Test
public void project() {
diff --git a/examples/maven-okhttp4/pom.xml b/examples/maven-okhttp4/pom.xml
index 73cce4d2d51..01e74995e3a 100644
--- a/examples/maven-okhttp4/pom.xml
+++ b/examples/maven-okhttp4/pom.xml
@@ -11,9 +11,10 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.13.0
- 8
- 8
+ 11
+ 11
diff --git a/examples/maven-okhttp4/src/test/java/com/commercetools/sdk/examples/GettingStarted.java b/examples/maven-okhttp4/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
similarity index 96%
rename from examples/maven-okhttp4/src/test/java/com/commercetools/sdk/examples/GettingStarted.java
rename to examples/maven-okhttp4/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
index 72130149edc..8f436b99d95 100644
--- a/examples/maven-okhttp4/src/test/java/com/commercetools/sdk/examples/GettingStarted.java
+++ b/examples/maven-okhttp4/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
@@ -10,7 +10,7 @@
import java.util.Optional;
-public class GettingStarted {
+public class GettingStartedTests {
@Test
public void project() {
diff --git a/examples/split-packages/pom.xml b/examples/split-packages/pom.xml
index 7c22e09935b..72ed56efb2a 100644
--- a/examples/split-packages/pom.xml
+++ b/examples/split-packages/pom.xml
@@ -11,9 +11,10 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.13.0
- 8
- 8
+ 11
+ 11
@@ -40,6 +41,31 @@
commercetools-sdk-java-api-models_customer
${commercetools.version}
+
+ com.commercetools.sdk
+ commercetools-sdk-java-api-models_cart
+ ${commercetools.version}
+
+
+ com.commercetools.sdk
+ commercetools-sdk-java-api-models_category
+ ${commercetools.version}
+
+
+ com.commercetools.sdk
+ commercetools-sdk-java-api-models_common
+ ${commercetools.version}
+
+
+ com.commercetools.sdk
+ commercetools-sdk-java-api-models_error
+ ${commercetools.version}
+
+
+ com.commercetools.sdk
+ commercetools-sdk-java-api-predicates
+ ${commercetools.version}
+
com.commercetools.sdk
commercetools-http-client
diff --git a/examples/split-packages/src/test/java/com/commercetools/sdk/examples/GettingStarted.java b/examples/split-packages/src/test/java/com/commercetools/sdk/examples/GettingStarted.java
deleted file mode 100644
index 72130149edc..00000000000
--- a/examples/split-packages/src/test/java/com/commercetools/sdk/examples/GettingStarted.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.commercetools.sdk.examples;
-
-import com.commercetools.api.client.ProjectApiRoot;
-import com.commercetools.api.defaultconfig.ApiRootBuilder;
-import com.commercetools.api.defaultconfig.ServiceRegion;
-import com.commercetools.api.models.project.Project;
-import io.vrap.rmf.base.client.oauth2.ClientCredentials;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-import java.util.Optional;
-
-public class GettingStarted {
-
- @Test
- public void project() {
- ProjectApiRoot apiRoot = ApiRootBuilder.of().defaultClient(
- ClientCredentials.of().withClientId(System.getenv("CTP_CLIENT_ID"))
- .withClientSecret(System.getenv("CTP_CLIENT_SECRET"))
- .build(),
- ServiceRegion.valueOf(Optional.ofNullable(System.getenv("CTP_SERVICE_REGION")).orElse("GCP_EUROPE_WEST1"))).build(System.getenv("CTP_PROJECT_KEY"));
-
- Project response = apiRoot
- .get()
- .executeBlocking().getBody();
-
- Assertions.assertEquals(System.getenv("CTP_PROJECT_KEY"), response.getKey());
- }
-}
diff --git a/examples/split-packages/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java b/examples/split-packages/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
new file mode 100644
index 00000000000..78b5ef162f1
--- /dev/null
+++ b/examples/split-packages/src/test/java/com/commercetools/sdk/examples/GettingStartedTests.java
@@ -0,0 +1,79 @@
+package com.commercetools.sdk.examples;
+
+import com.commercetools.api.client.ProjectApiRoot;
+import com.commercetools.api.defaultconfig.ApiRootBuilder;
+import com.commercetools.api.defaultconfig.ServiceRegion;
+import com.commercetools.api.models.category.Category;
+import com.commercetools.api.models.category.CategoryPagedQueryResponse;
+import com.commercetools.api.models.project.Project;
+import com.commercetools.api.models.common.LocalizedString;
+import io.vrap.rmf.base.client.oauth2.ClientCredentials;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.Random;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+public class GettingStartedTests {
+
+ @Test
+ public void project() {
+ ProjectApiRoot apiRoot = ApiRootBuilder.of().defaultClient(
+ ClientCredentials.of().withClientId(System.getenv("CTP_CLIENT_ID"))
+ .withClientSecret(System.getenv("CTP_CLIENT_SECRET"))
+ .build(),
+ ServiceRegion.valueOf(Optional.ofNullable(System.getenv("CTP_SERVICE_REGION")).orElse("GCP_EUROPE_WEST1"))).build(System.getenv("CTP_PROJECT_KEY"));
+
+ Project response = apiRoot
+ .get()
+ .executeBlocking().getBody();
+
+ Assertions.assertEquals(System.getenv("CTP_PROJECT_KEY"), response.getKey());
+ }
+
+ @Test
+ public void category() {
+ ProjectApiRoot apiRoot = ApiRootBuilder.of().defaultClient(
+ ClientCredentials.of().withClientId(System.getenv("CTP_CLIENT_ID"))
+ .withClientSecret(System.getenv("CTP_CLIENT_SECRET"))
+ .build(),
+ ServiceRegion.valueOf(Optional.ofNullable(System.getenv("CTP_SERVICE_REGION")).orElse("GCP_EUROPE_WEST1")))
+ .addNotFoundExceptionMiddleware()
+ .build(System.getenv("CTP_PROJECT_KEY"));
+
+ Category cat1 = apiRoot.categories().withKey("cat1").get().executeBlocking().getBody();
+ if (cat1 == null) {
+ cat1 = apiRoot.categories().create(b -> b
+ .key("cat1")
+ .name(LocalizedString.ofEnglish("cat1"))
+ .slug(LocalizedString.ofEnglish("cat1" + UUID.randomUUID().toString()))
+ ).executeBlocking().getBody();
+ }
+ Category cat2 = apiRoot.categories().withKey("cat2").get().executeBlocking().getBody();
+ if (cat2 == null) {
+ Category finalCat1 = cat1;
+ apiRoot.categories().create(b -> b
+ .key("cat2")
+ .name(LocalizedString.ofEnglish("cat2"))
+ .slug(LocalizedString.ofEnglish("cat2" + UUID.randomUUID().toString()))
+ .parent(finalCat1.toResourceIdentifier())
+ ).executeBlocking();
+ }
+
+ CategoryPagedQueryResponse response = apiRoot
+ .categories()
+ .get()
+ .addLimit(500)
+ .withWhere("key = \"cat1\" or key = \"cat2\"")
+ .executeBlocking().getBody();
+
+ Assertions.assertNotNull(response);
+
+ List categories = response.getResults().stream().map(Category::getKey).collect(Collectors.toList());
+ Assertions.assertTrue(categories.contains("cat1"));
+ Assertions.assertTrue(categories.contains("cat2"));
+ }
+}