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")); + } +}