- 🐞 Bug Fixes (1)
- Fix images not being returned by variant resolution utils (commercetools/commercetools-project-sync#555)
- 🐞 Bug Fixes (1)
- Fix getting a wrong JSON Object mapper (#1138)
- 🐞 Bug Fixes (1)
- Fix NullPointerException for products having a category but no category order hints (#1134)
- 🐞 Bug Fixes (4)
- Product Sync - Sync now supports syncing of products with attributes referencing themselves. #478
- State Sync - Fix NPE thrown by
StateDraftBuilder.build()
when required fields are missing. TheStateTransformUtils.toStateDrafts
utility returns an empty draft when key is null or empty. - Inventory Sync - Fix NPE thrown by
InventoryEntryDraftBuilder.build()
when required fields are missing. TheInventoryTransformUtils.toInventoryEntryDrafts
utility returns an empty draft when sku is null or empty. - ProductType Sync - Fix ReferenceResolution of product-type attributes to avoid sync errors.
- 🐞 Bug fixes (1)
- Make commercetools-sdk-java-v2 available as a transitive dependency
- 🚧 Breaking Changes (1)
- commercetools-sync-java is now fully migrated to
commercetools-sdk-java-v2
. See Migration Guide on how to use this library version.
- commercetools-sync-java is now fully migrated to
- 🐞 Bug Fixes
- Fix the problem when switching master variants #918
-
🐞 Bug Fixes
- Fix rich type reference issue in product type #893
-
🛠️ Dependency Updates
- Migrated
com.commercetools.sdk.jvm.core
to2.12.0
- Migrated
-
✨ Enhancements (2)
-
Display Github tag instead of Github commit hash in Benchmarks chart #867
-
Run Bechmarks test in every commit #868
To help developers to review the performance change before creating new release, benchmarks test now executes not only during making new release, but also pushing new commit in branches. The test result of commit is displayed in the build in Github Action. It shows whether benchmarks of current commit over the pre-defined threshold, while the benchmarks chart keeps displaying
the test result of each library version.
-
-
🐞 Bug Fixes
- Fix NPE in ProductSync benchmarks test for SDK-v2 #874
-
🛠️ Dependency Updates
-
✨ Enhancement (1)
-
Java SDK-v2 Compatible layer adaption #859
Commercetools has already developed next generation Java SDK (Java-SDK-v2) for communication between client-side and the platform. As it provides a compatible layer which ease the migration work, we now provide alternative methods in ClientConfigurationUtils for client creation purpose. Meanwhile the original methods keep unchanged and support client creation with existing JAVA SDK.
For details how to create client from Java-SDK-v2, please refer to Important Usage Tips
-
-
🛠️ Dependency Updates
- Added
com.commercetools.sdk
9.4.0
- Migrated
com.diffplug.spotless
plugin from6.9.1
to6.11.0
. - Migrated
com.github.ben-manes.versions
0.42.0
->0.43.0
- Migrated
com.github.spotbugs
5.0.12
->5.0.13
- Migrated
commercetools-jvm-sdk
-> 2.9.0 - Migrated
org.apache.commons:common-text
1.9
->1.10
- Migrated
org.mockito:mockito-junit-jupiter
4.7.0
->4.8.1
- Added
- 🐞 Bug Fixes
- Fix broken link in the github.io documentation #853
- 🐞 Bug Fixes
- Add correct resources to the error callbacks #850
- 🐞 Bug Fixes
- Fix broken links in the github.io documentation #843
- 🛠️ Dependency Updates
-
🚧 Breaking Changes (1)
- Minimum Java 11 or above is required #840
-
✨ Build Tools
-
🛠️ Dependency Updates
-
🐞 Bug Fixes (1)
- Product Sync - Fixed the
AddToCategory
,RemoveFromCategory
action, which creates unnecessary update action when there is no difference and it leads to error. #816
- Product Sync - Fixed the
-
✨ Enhancement (1)
- Resolve warnings and deprecated usages. #808
-
✨ Build Tools
-
🛠️ Dependency Updates
-
✨ Build Tools
-
🛠️ Dependency Updates
commercetools-jvm-sdk
1.64.0
->2.5.0
com.adarshr.test-logger
3.0.0
->3.1.0
ru.vyarus.mkdocs
2.1.2
->2.2.0
org.ajoberstar.grgit
4.1.0
->4.1.1
com.github.spotbugs
4.7.1
->5.0.2
com.diffplug.spotless
5.14.2
->6.0.4
mockito-junit-jupiter
3.11.2
->4.1.0
org.junit.jupiter:junit-jupiter-api
5.7.2
->5.8.2
org.junit.jupiter:junit-jupiter-engine
5.7.2
->5.8.2
org.junit.jupiter:junit-jupiter-params
5.7.2
->5.8.2
org.assertj.assertj-core
3.20.2
->3.21.0
com.github.ben-manes.caffeine
2.9.2
->2.9.3
- (new)
org.apache.commons:common-text
1.9
-
🚧 Breaking Changes (1)
-
✨ Enhancement (1)
- Use the new concurrency keyword on github actions to limit the concurrency of the workflow runs. #772
-
✨ Enhancement (1)
- Dependency management - Migrate Dependabot to Renovate.#767
✨ Documentation (1)
- Update docs and Release notes about the usage of JVM-SDK dependencies.#766
- 🐞 Bug Fixes (1)
- State Sync - State to sync correctly from source to target when no transitions configured.#763
-
🚧 Breaking Changes (1)
- Dependency management: To avoid
commercetools JVM SDK
libraries version mismatch between projects. It is better not to addcommercetools JVM SDK
dependencies explicitly into your project and use them fromcommercetools-Sync-Java
dependencies instead. Check README.md for more details.
✨ Documentation (1)
- Usage documentation on main readme improved, obsolete links is removed. #758
- Dependency management: To avoid
-
🚧 Breaking Changes (1)
- Inventory Sync:
InventoryService.fetchInventoryEntriesBySkus(Set<String> skus)
is renamed toInventoryService.fetchInventoryEntriesByIdentifiers(Set<InventoryEntryIdentifier> inventoryEntryIdentifiers)
. #757
- Inventory Sync:
-
🐞 Bug Fixes (1)
- Inventory Sync - Fixed the
DuplicateField
bug in theInventorySync
related to fetching and syncing inventories with multiple channels. #757
- Inventory Sync - Fixed the
-
🐞 Bug Fixes (1)
- TaxCategory Sync - TaxCategories to sync properly when we have many TaxRates with different states.
-
✨ Enhancements (1)
- Product Sync - After a fix from JVM-SDK(1.64.0), ProductProjection search uses built in predicate to filter resources by the key to avoid issues like #269.
-
🛠️ Dependency Updates (5)
commercetools-jvm-sdk 1.63.0
-> 1.64.0assertjVersion 3.19.0
->3.20.2
caffeineVersion 2.9.1
->2.9.2
mockitoJunitJupiterVersion 3.10.0
->3.11.2
com.diffplug.spotless 5.12.5
->5.14.0
-
🐞 Bug Fixes (1)
- Product Sync - The user is now aware of unresolvable references as the transform service will not skip the products.
-
🛠️ Dependency Updates (3)
com.github.ben-manes.versions 0.38.0
->0.39.0
caffeineVersion 2.8.5
->2.9.1
netty-codec-http 4.1.64.Final
->4.1.65.Final
-
🐞 Bug Fixes (2)
-
🛠️ Dependency Updates (7)
commercetools-jvm-sdk 1.62.0
-> 1.63.0io.codearte.nexus-staging 0.30.0
->io.github.gradle-nexus.publish-plugin 1.11.0
(Adapt new gradle plugin for artifact publishing)com.github.spotbugs 4.7.0
->4.7.1
com.diffplug.spotless 5.12.1
->5.12.5
org.mockito:mockito-junit-jupiter 3.9.0
->3.10.0
org.junit.jupiter 5.7.0
->5.7.2
netty-codec-http 4.1.63.Final
->4.1.64.Final
Build Tools (1)
- Change build script and cd.yml for new gradle publish plugin.
- 🎉 New Features (1)
- Syncing product types with an attribute of type Set of (Set of Set of..) of NestedType attribute is supported. #720
-
🚧 Breaking Changes (2)
- For mapping a
resource
(Product, Category, CartDiscount, ShoppingList, State, InventoryEntry, ProductType, Customer) toresourceDraft
the new util method should be called.
Example for Product Sync: For mapping from
Product
toProductDraft
the util methodProductTransformUtils.toProductDrafts
should be called along withsphereClient
, cache implementation(ReferenceIdToKeyCache
) andproductTypes
parameters.-
Product Sync: The
productProjections
endpoint is used instead ofproducts
endpoint to improve the performance of theproduct Sync
. -
Changes:
- The
callbacks
of theproduct Sync
will now work withproductProjections
instead ofproducts
- The update action (
buildCustomUpdateActions
,buildAssetsUpdateActions
,buildAssetActions
) doesn't require the "old Resource" as parameter anymore. - All update actions of products now working with
ProductProjections
instead ofProducts
- The method
syncFrenchDataOnly
has a new signaturepublic static List<UpdateAction<Product>> syncFrenchDataOnly(@Nonnull final List<UpdateAction<Product>> updateActions, @Nonnull final ProductDraft newProductDraft, @Nonnull final ProductProjection oldProduct)
- The method
keepOtherVariants
has a new signatureList<UpdateAction<Product>> keepOtherVariants( @Nonnull final List<UpdateAction<Product>> updateActions)
- The method
mapToProductDrafts
has a new signaturepublic static List<ProductDraft> mapToProductDrafts(Nonnull final List<ProductProjection> products)
- The method
getDraftBuilderFromStagedProduct
has a new signaturepublic static ProductDraftBuildergetDraft BuilderFromStagedProduct(@Nonnull final ProductProjection product)
- The method
buildProductQuery
has a new signaturepublic static ProductProjectionQuery buildProductQuery()
- The method
buildCategoryActions
has a new signaturepublic static List<UpdateAction<Product>> buildCategoryActions(@Nonnull final ProductProjection oldProduct, @Nonnull final ProductDraft newProduct)
- The class
BaseSyncOptions
has a new generics<A>
, which indicate the resource type to update - The class
BaseSyncOptionsBuilder
has a new generics<A>
, which indicate the resource type to update
- The
- For mapping a
-
✨ Enhancements (2)
-
To improve performance of the library, We are not expanding any references in the query for the resources, Instead library fetches key-id pairs and stores in a cache to reuse them. Example for ProductSync: The util class method
ProductTransformUtils.toProductDrafts
will fetch key-id pairs and stores in a cache. This cache has been used to build theproductDraft
by resolving references. For detailed documentation refer - syncing-from-a-commercetools-project -
Product Sync
-
-
🛠️ Dependency Updates (1) commercetools-jvm-sdk 1.60.0 -> 1.62.0
-
✨ Enhancements (1)
- To avoid 414 request-URI too large error, the services are using chunking on the input list(keys or sku's) to chunk the input considering the length of the request URI and execute the query for these chunks.
-
✨ Build Tools (1)
- Migrated from gradle
v5.6.2
tov6.8.2
.
- Migrated from gradle
-
🛠️ Dependency Updates (1)
- Updated the following transitive dependencies to avoid vulnerability issues of previous versions:
com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
-> Fixed vulnerability issue for DoS attacksio.netty:netty-codec-http
-> Fixed vulnerability issue for Information Disclosureorg.apache.httpcomponents:httpclient
-> Fixed vulnerability issue for Improper Input Validationcommons-codec:commons-codec
-> Fixed vulnerability issue for Information Exposure
- Updated the following transitive dependencies to avoid vulnerability issues of previous versions:
-
🚧 Breaking Changes (1)
- Product Sync:
PriceDraft.getCustomerGroup()
is changed fromReference<CustomerGroup>
toResourceIdentifier<CustomerGroup>
, so as a library user you don't need to provide a key field in the id field of the Reference. (Now API and JVM SDK supportResourceIdentifiers
and it supports id or key as a field). #676
- Product Sync:
-
✨ Enhancements (1)
- Refactored CategorySync to make it consistent with other Sync types (e.g ProductSync). #681
-
🛠️ Dependency Updates (2)
commercetools-jvm-sdk
1.57.0
->1.60.0
commercetools-java-client
->commercetools-java-client-ahc-2_5
-> Upgraded the default http client to avoid "Runtime Access Warnings" because of out of date netty dependencies on jvm-sdk. Note:commercetools-java-client-ahc-2_5
dependency uses async-http-client version 2.5.4
-
✨ Build Tools (1)
- Migrating from JCenter / Bintray to The Maven Central Repository. Additionally, automate the staging process from
OSSRH
frommaven central
. #667
- Migrating from JCenter / Bintray to The Maven Central Repository. Additionally, automate the staging process from
-
🎉 New Features (1)
- Now the categories, which have an unresolvable parent category, are persisted in custom objects, so they can be resolved in different executions / instances of the category sync. #658
-
🐞 Bug Fixes (1)
- To avoid
Error 413 (Request Entity Too Large)
issues, a fix added to unresolved reference custom object fetching. #666
- To avoid
-
🛠️ Dependency Updates (1)
commercetools-jvm-sdk
1.56.0
->1.57.0
-
✨ Build Tools (1)
- Migrate to github actions from travis-ci #664
-
🎉 New Features (1)
- Added clean up implementation for the outdated pending reference resolution custom objects. #650
-
✨ Enhancements (1)
- Added a graphQL pagination utility. #627
-
✨ Documentation (1)
- Documentation added for the cleaning up of the unresolved references, check the cleanup guide for more details.
-
✨ Documentation (2)
- Documentation for the cacheSize sync option is added.
- Prerequisites section of the documentations are clarified and added more code snippets as usage examples.
-
🛠️ Dependency Updates (1)
commercetools-jvm-sdk
1.55.0
->1.56.0
-
✨ Enhancements (1)
- To improve performance of the library, the services are using graphQL API to fetch resource ids only; also the
keyToId
caches evict entries which haven't been used for the longest amount of time beyond a maximum size. The cache size is configurable in the sync options. #582
- To improve performance of the library, the services are using graphQL API to fetch resource ids only; also the
-
🛠️ Dependency Updates (2)
-
🚧 Breaking Changes (1)
- Product Sync:
ProductDraft.getState()
is changed fromReference<State>
toResourceIdentifier<State>
, so as a library user you don't need to provide a key field in the id field of the Reference. (Now API and JVM SDK supportResourceIdentifiers
and it supports id or key as a field). #589
- Product Sync:
-
🐞 Bug Fixes (1)
- Commons - Fixed a bug in the duration calculation of decorated retry sphere client
RetrySphereClientDecorator
created byClientConfigurationUtils
. #610
- Commons - Fixed a bug in the duration calculation of decorated retry sphere client
-
🎉 New Features (4)
- ShoppingList Sync - Added support for syncing shopping lists between ctp projects. #594
- ShoppingList Sync - Introduced
ShoppingListSyncUtils
which calculates all needed update actions after comparing aShoppingList
and aShoppingListDraft
. #594 - ShoppingList Sync - Introduced
ShoppingListUpdateActionUtils
which contains utils for calculating necessary update actions after comparing individual fields of aShoppingList
and aShoppingListDraft
. #594 - ShoppingList Sync - Introduced
ShoppingListReferenceResolutionUtils
which resolves Type references from a ShoppingList to a ShoppingListDraft. #594
-
🛠️ Dependency Updates (1)
- 🎉 New Features (4)
- Customer Sync - Added support for syncing customers between ctp projects. #579
- Customer Sync - Introduced
CustomerSyncUtils
which calculates all needed update actions after comparing aCustomer
and aCustomerDraft
. #579 - Customer Sync - Introduced
CustomerUpdateActionUtils
which contains utils for calculating needed update actions after comparing individual fields of aCustomer
and aCustomerDraft
. #579 - Customer Sync - Introduced
CustomerReferenceResolutionUtils
which resolves CustomerGroup and Type references from a Customer to a CustomerDraft. #579
- 🐞 Bug Fixes (1)
- Product Sync - Fixed a bug in the
ProductSync
related handling of unresolved product references provided in different batches. #580
- Product Sync - Fixed a bug in the
-
🎉 New Features (2)
- Product Sync - Added support for resolving
key-value-document
(custom object) references on attributes of typeReference
,Set
ofReference
,NestedType
orSet
ofNestedType
. #564 - Introduced new concept for the validation of
the drafts in batches
for eachSync
instance, exposed withBaseBatchValidator
implementations (i.e. ProductBatchValidator, CategoryBatchValidator). #233
- Product Sync - Added support for resolving
-
✨ Enhancements (2)
- Category Sync - Passed category keys in batch to
cacheKeysToIds
method ofCategoryService
to avoid fetching all categories for every batch. #235 - Populated
keyToId
caches in services before reference resolution to improve the performance of the library with collecting referenced keys in batches of drafts. #235
- Category Sync - Passed category keys in batch to
-
🛠️ Dependency Updates (1)
mockito-junit-jupiter
3.5.11
->3.5.13
-
🎉 New Features (2)
- CustomObject Sync - Added support for syncing custom objects between ctp projects. #565 For more info how to use it please refer to CustomObject usage doc.
- CustomObject Sync - Exposed
CustomObjectSyncUtils#hasIdenticalValue
which determines whether update process is required after comparing aCustomObject
and aCustomObjectDraft
. #565
-
🛠️ Dependency Updates (3)
-
🚧 Breaking Changes (2)
- Sync options:
- The signatures of the
errorCallback
andwarningCallback
changed and their parameter lists are extended. From now on the resource draft of the source project, the resource of the target project and optionally the failed update actions passed to the callbacks. Refer sync options for more details. #107
- The signatures of the
- Reference resolution utilities:
- Commons - Renamed
replaceCustomTypeIdWithKeys
tomapToCustomFieldsDraft
. #138 - Commons - Renamed
replaceAssetsReferencesIdsWithKeys
tomapToAssetDrafts
. #138 - Category Sync - Renamed
replaceCategoriesReferenceIdsWithKeys
tomapToCategoryDrafts
. #138 - CartDiscount Sync - Renamed
replaceCartDiscountsReferenceIdsWithKeys
tomapToCartDiscountDrafts
. #138 - Inventory Sync - Renamed
replaceInventoriesReferenceIdsWithKeys
tomapToInventoryEntryDrafts
. #138 - Product Sync - Renamed
replaceProductsReferenceIdsWithKeys
tomapToProductDrafts
. #138 - State Sync - Renamed
replaceStateReferenceIdsWithKeys
tomapToStateDrafts
. #138 - ProductType Sync - Renamed
replaceProductTypesReferenceIdsWithKeys
tomapToProductTypeDrafts
. #138
- Commons - Renamed
- Sync options:
-
✨ Enhancements (1)
- The library will fail fast for the non-existing references that found during the reference resolution. #219
-
🛠️ Dependency Updates (4)
- 🐞 Bug Fixes (1)
- Product Sync - Fixed a bug in the
ProductSync
related to publish/unpublish of the product update actions, when a new product draft has publish flag set to true and the existing product is published already then no publish action will be created which was not correct #530
- Product Sync - Fixed a bug in the
-
🎉 New Features (6)
- TaxCategory Sync - Added support for syncing tax categories. #417 For more info how to use it please refer to TaxCategory usage doc.
- TaxCategory Sync - Exposed
TaxCategorySyncUtils#buildActions
which calculates all needed update actions after comparing aTaxCategory
and aTaxCategoryDraft
. #417 - TaxCategory Sync - Exposed
TaxCategoryUpdateActionUtils
which contains utils for calculating needed update actions after comparing individual fields of aTaxCategory
and aTaxCategoryDraft
. #417 - State Sync - Added support for syncing states. #409 For more info how to use it please refer to States usage doc.
- State Sync - Exposed
StateSyncUtils#buildActions
which calculates all needed update actions after comparing aState
and aStateDraft
. #409 - State Sync - Exposed
StateUpdateActionUtils
which contains utils for calculating needed update actions after comparing individual fields of aState
and aStateDraft
. #409 Thanks, @jarzynp for the contributions!
-
🛠️ Dependency Updates (6)
- 🐞 Bug Fixes (2)
- Commons - Fixed a bug in the Sync implementations causing the sync fail with throwing
ClassCastException
. #466 - Product Sync - Fixed a bug in the
ProductSync
related to the ordering of variant update actions, which was not correct when there isSetAttributeInAllVariants
action in update actions. Thanks, @ahmed-ali225, for the contributions! #513
- Commons - Fixed a bug in the Sync implementations causing the sync fail with throwing
-
✨ Enhancements (1)
- Commons - Remove final keyword on interface/abstract method params. #165
-
🐞 Bug Fixes (3)
- CartDiscount Sync - Fixed a bug in the
CartDiscountSync
which generates achangeValue
action when there is no change, causing the sync to fail for that cart discount. Thanks, @michaelbannister, for the contributions! #494 - Product Sync - Fixed a bug in the
ProductSync
whenensurePriceChannels
is enabled in ProductSyncOptions should not create a missing channel used on product variant price draft. #499 - Product/Category Sync - Validate that asset keys are always defined on the supplied drafts and the existing target resources (products/categories). #366
- CartDiscount Sync - Fixed a bug in the
-
🛠️ Dependency Updates (5)
- ✨ Enhancements (1)
-
✨ Enhancements (2)
-
Product Sync - Only cache the needed keys of
Category
,ProductType
andType
references instead of caching all keys of such resources. #418 Note: This might have performance implications on the product sync, since now every non cached key-id entry will be individually fetched. However, issue #235 should address this. -
Commons - Refactor duplicate implementations in concrete services and generalise it in the
BaseService
. Thanks, @jarzynp, for the contributions! #418
-
-
🐞 Bug Fixes (1)
- Product Sync - Fixed a bug in the Product Sync where keys with special characters failed to be saved
for
CustomObject
s, as the characters weren't allowed on the commmercetools platform. #474 Note: 🚧 This is a breaking change. Previously stored custom objects representing product drafts with unresolved references, won't be
synced with this version, since the key is now treated differently. Make sure to sync such drafts again with this version of the library.
- Product Sync - Fixed a bug in the Product Sync where keys with special characters failed to be saved
for
-
🛠️ Dependency Updates (5)
-
🐞 Bug Fixes (3)
- Commons - Fixed a bug in the
CtpQueryUtils
which was overwriting the query input query for every page after the first page is fetched, eventually fetching more than needed. #463 - Product Sync - Fixed a potential bug in reference resolution of attribute references in case a
null
reference is passed in an attribute draft of typeSet
ofReference
. #441 - ProductType Sync - Fixed a bug in the productType sync where the statistics
failed
counter was being counted on failed fetches of missing references. #426
- Commons - Fixed a bug in the
-
🛠️ Dependency Updates (4)
-
🎉 New Features (1)
- Product Sync - Introduced support for syncing products with other product references as attributes in any order. #447
-
🛠️ Dependency Updates (1)
com.adarshr.test-logger
1.7.0 -> 1.7.1 #456
-
🎉 New Features (4)
- Product Sync - Added support for resolving
Product
references on attributes of typeReference
,Set
ofReference
,NestedType
orSet
ofNestedType
. #438 - Product Sync - Added support for resolving
Category
references on attributes of typeReference
,Set
ofReference
,NestedType
orSet
ofNestedType
. #440 - Product Sync - Added support for resolving
ProductType
references on attributes of typeReference
,Set
ofReference
,NestedType
orSet
ofNestedType
. #440 - Commons - Exposed
ResourceIdentifierUtils#isReferenceOfType
utility which checks if a JSON representation of a CTPReference
object is of a certaintypeId
or not. #443
- Product Sync - Added support for resolving
-
🚧 Breaking Changes (1)
- Product Sync - Unexposed the methods
VariantReferenceResolver#resolveAttributeReferences
andVariantReferenceResolver#resolveAttributeReference
to beprivate
as they are only meant for internal use of the library. #440
- Product Sync - Unexposed the methods
-
🛠️ Dependency Updates (5)
-
🐞 Bug Fixes (1)
- Commons - Fixed a bug in the custom fields update actions builders which generated duplicated unnecessary update actions for
null
custom field values. This affected any sync module where the resource contained custom fields (i.e. Product Sync, Category Sync, CartDiscount Sync and Inventory Sync). It also affected any update actions building utility in which the resource/sub-resource contained custom fields. #428
- Commons - Fixed a bug in the custom fields update actions builders which generated duplicated unnecessary update actions for
-
🛠️ Enhancements (1)
-
🎉 New Features (5)
- ProductType Sync - Introduced support for syncing product types with NestedType (or set of NestedType) attributes in any order. #372
- ProductType Sync - Introduced the new
ProductTypeReferenceReplacementUtils#replaceProductTypesReferenceIdsWithKeys
which is a util that replaces the reference ids with keys in a list of productTypes. #372 - ProductType Sync - Introduced the new
ProductTypeReferenceReplacementUtils#buildProductTypeQuery
utils to create a product type query with all needed reference expansions to fetch productTypes from a source CTP project for the sync. #372 - ProductType Sync - Introduced the new
ProductTypeReferenceResolver
which resolves productType references on ProductTypeDrafts. #372 - ProductType Sync - Introduced the new methods
ProductTypeSyncStatistics#getNumberOfProductTypesWithMissingNestedProductTypes
andProductTypeSyncStatistics#getProductTypeKeysWithMissingParents
which represents the nested product types which are still not resolved. #372
-
🛠️ Enhancements (8)
- Commons - Bumped commercetools-jvm-sdk to version 1.45.0.
- Commons - Bumped gradle to version gradle-5.5.1
- Commons - Bumped
org.junit.jupiter:junit-jupiter-api
to 5.5.1. - Commons - Bumped
org.junit.jupiter:junit-jupiter-engine
to 5.5.1. - Commons - Bumped
org.junit.jupiter:junit-jupiter-params
to 5.5.1. - Commons - Bumped
mockito-junit-jupiter
dependency to 3.0.0. - Commons - Bumped
assertj
to 3.13.2. - Commons - Bumped
com.github.ben-manes.versions
to 0.22.0.
-
🎉 New Features (6)
- CartDiscount Sync - Added support for syncing cart discounts. #379 For more info how to use it please refer to CartDiscount usage doc.
- CartDiscount Sync - Introduced the new
CartDiscountSyncUtils#buildActions
which calculates all needed update actions after comparing aCartDiscount
and aCartDiscountDraft
. #379 - CartDiscount Sync - Introduced the new
CartDiscountUpdateActionUtils
which contains utils for calculating needed update actions after comparing individual fields of aCartDiscount
and aCartDiscountDraft
. #379 - CartDiscount Sync - Introduced the new
CartDiscountReferenceResolver
which resolves custom type references on CartDiscountDrafts. #379 - CartDiscount Sync - Introduced the new
CartDiscountReferenceReplacementUtils#replaceCartDiscountsReferenceIdsWithKeys
which is a util that replaces the custom type ids with keys in a list of cartDiscounts. #379 - CartDiscount Sync - Introduced the new
CartDiscountReferenceReplacementUtils#buildCartDiscountQuery
util to create a cart discount query with all needed reference expansions to fetch cart discounts from a source CTP project for the sync. #379.
-
🐞 Bug Fixes (1)
- Commons - Fixed a bug in the
BaseSyncStatistics
which caused a wrong calculation of thelatestBatchProcessingTimeInMinutes
. #378
- Commons - Fixed a bug in the
-
🛠️ Enhancements (6)
- CartDiscount Sync - Added benchmarks for the
cartDiscount
sync to be able to compare the performance of the sync with the future releases. #379 - Commons - Bumped commercetools-jvm-sdk to version 1.44.0.
- Commons - Bumped gradle to version gradle-5.5
- Commons - Bumped
org.junit.jupiter:junit-jupiter-api
to 5.5.0. - Commons - Bumped
org.junit.jupiter:junit-jupiter-engine
to 5.5.0. - Commons - Bumped
org.junit.jupiter:junit-jupiter-params
to 5.5.0.
- CartDiscount Sync - Added benchmarks for the
-
🚧 Breaking Changes (2)
-
🎉 New Features (2)
-
🐞 Bug Fixes (1)
- Commons - Fixed a bug where references and resource identifiers were not being compared correctly. #394
-
🛠️ Enhancements (13)
- Commons - Bumped commercetools-jvm-sdk to version 1.43.0.
- Commons - Bumped
mockito
to 2.27.0. - Commons - Bumped
assertj
to 3.12.2. - Commons - Bumped
org.junit.jupiter:junit-jupiter-api
to 5.4.2. - Commons - Bumped
org.junit.jupiter:junit-jupiter-engine
to 5.4.2. - Commons - Bumped
org.junit.jupiter:junit-jupiter-params
to 5.4.2. - Commons - Bumped
org.ajoberstar.git-publish
to 2.1.1. - Commons - Bumped
org.ajoberstar.grgit
to 3.1.1. - Commons - Bumped
com.github.ben-manes.versions
to 0.21.0. - Commons - Bumped gradle checkstyle plugin to 8.2.
- Commons - Bumped mockito dependency to 2.28.2.
- Commons - Bumped JaCoCo dependency to 0.8.4.
- Commons - Bumped gradle to version gradle-5.4.1
- Commons - Bumped
com.adarshr.test-logger
to 1.7.0.
- 🐞 Bug Fixes (1)
- Product Sync - Fixed a bug in the
product
sync which would fail on syncing attributes of typeSet
that has an empty set as a value.
- Product Sync - Fixed a bug in the
-
🎉 New Features (4)
- Product Sync - Added support for syncing assets of newly added variants. #357.
- Product Sync -
ProductSyncUtils#buildActions
andProductUpdateActionUtils#buildVariantsUpdateActions
now buildAddAsset
actions for every new asset on every new variant on the newProductDraft
. #357. - ProductType Sync - Added support for syncing changes to an
AttributeDefinition
with aSetType
of a subtypeLocalizableEnumType
orEnumType
#313 - Type Sync - Added support for syncing changes to a
FieldDefinition
with aSetType
of a subtypeLocalizableEnumType
orEnumType
#313
-
🐞 Bug Fixes (3)
- ProductType Sync - Fixed a bug in the
productType
sync which would try to unsetisSearchable
,inputHint
andattributeConstraint
values tonull
instead of their default values. #354 - ProductType Sync -
ProductTypeSyncUtils#buildActions
,ProductTypeUpdateActionUtils#buildAttributesUpdateActions
now treat the values of the optional fieldsisSearchable
,inputHint
andattributeConstraint
as (true
,SingleLine
andNone
respectivley) if they arenull
or not passed. #354 - Commons - Fixed a bug in the
beforeUpdateCallback
which caused the callback to be called even on an empty list of update actions. #359
- ProductType Sync - Fixed a bug in the
-
🛠️ Enhancements (1)
- Commons - Benchmarks are now run once on every merge to
master
with a lower number of resources for faster benchmarking. #246
- Commons - Benchmarks are now run once on every merge to
-
📋 Documentation (2)
- Commons - Added link to documentation pages in README of the github repo.
- Commons - Fixed link of
beforeUpdateCallback
for keeping other variants example in the Sync Options doc page. #360
We're happy to announce that the commercetools-sync-java is finally out of beta! Big thanks to all the users
who were using it when it was still in beta. Your feedback was definitely valuable for us to reach the current state of
the library. 1.0.0
is here for you to use with all new features, enhancements and bug fixes including:
- The library now supports importing/syncing
types
into a CTP project from an external feed or another CTP project. Read more. - The library now handles concurrency modification exceptions for the
productType
sync. - All new documentation pages including a quick start guide.
- Many more improvements and bug fixes.
-
🎉 New Features (4)
- Type Sync - Added support for syncing types. #300 For more info how to use it please refer to Type usage doc.
- Type Sync - Exposed
TypeSyncUtils#buildActions
which calculates all needed update actions after comparing aType
and aTypeDraft
. #300 - Type Sync - Exposed
TypeUpdateActionUtils
which contains utils for calculating needed update actions after comparing individual fields of aType
and aTypeDraft
. #300 - Commons - Added
OptionalUtils#filterEmptyOptionals
which are utility methods that filter out the empty optionals in a supplied list (with a varargs variation) returning a list of the contents of the non-empty optionals. #255
-
🛠️ Enhancements (17)
- ProductType Sync - Added concurrency modification exception handling. #325
- Commons -
ProductSyncUtils#buildActions
,CategorySyncUtils#buildActions
,InventorySyncUtils#buildActions
andProductTypeSyncUtils#buildActions
now don't apply thebeforeUpdateCallback
implicitly. If you want, you can apply it explicitly on the result of the..#buildActions
method. #302 - Product Sync - Reference keys are not validated if they are in UUID format anymore. #166
- Category Sync - Reference keys are not validated if they are in UUID format anymore. #166
- Inventory Sync - Reference keys are not validated if they are in UUID format anymore. #166
- ProductType Sync - Added benchmarks for the
productType
sync to be able to compare the performance of the sync with the future releases. #301 - Commons - Bumped commercetools-jvm-sdk to version 1.37.0.
- Commons - Bumped
mockito
to 2.23.4. - Commons - Bumped
com.adarshr.test-logger
to 1.6.0. - Commons - Bumped
org.junit.jupiter:junit-jupiter-api
to 5.3.2. - Commons - Bumped
org.junit.jupiter:junit-jupiter-engine
to 5.3.2. - Commons - Bumped
org.junit.jupiter:junit-jupiter-params
to 5.3.2. - Commons - Bumped
org.ajoberstar.git-publish
to 2.0.0. - Commons - Bumped
org.ajoberstar.grgit
to 3.0.0. - Commons - Bumped gradle to version gradle-5.0
- Type Sync - Added benchmarks for the
type
sync to be able to compare the performance of the sync with the future releases. #300
-
🚧 Breaking Changes (9)
- Product Sync -
allowUuid
option is now removed. #166 - Category Sync -
allowUuid
option is now removed. #166 - Inventory Sync -
allowUuid
option is now removed. #166 - ProductType Sync -
allowUuid
option is now removed. #166 - ProductType Sync - Renamed
ProductTypeUpdateAttributeDefinitionActionUtils
toAttributeDefinitionsUpdateActionUtils
. It is also now meant to be only used internally by the library. Its behaviour is not guaranteed if used externally. #302 - ProductType Sync -
AttributeDefinitionUpdateActionUtils
is now meant to be only used internally by the library. Its behaviour is not guaranteed if used externally. #302 - ProductType Sync -
EnumsUpdateActionUtils
is nowEnumValuesUpdateActionUtils
and is meant to be only used internally by the library. Its behaviour is not guaranteed if used externally. #300 - ProductType Sync - Utils that were in
ProductTypeUpdateLocalizedEnumActionUtils
andLocalizedEnumsUpdateActionUtils.
are moved toLocalizedEnumValueUpdateActionUtils
. #300 - ProductType Sync - Utils that were in
ProductTypeUpdatePlainEnumActionUtils
andPlainEnumUpdateActionsUtils.
are moved toPlainEnumValueUpdateActionUtils
. #300
- Product Sync -
-
🐞 Bug Fixes (3)
- Product Sync - Fixed a bug that caused the statistics not to be updated correctly on fetch failure. #331
- Category Sync - Fixed a bug that caused the statistics not to be updated correctly on fetch failure. #331
- ProductType Sync - Fixed a bug that caused the sync process to continue after failed fetch. #331
-
📋 Documentation (4)
- Commons - Added the documentation github pages. https://commercetools.github.io/commercetools-sync-java
- Commons - Added a Quick Start Guide for a convenient entry into the library.
- Commons - Moved documentation of sync options to a separate doc.
- Commons - Added a the earliest compatible version of the commercetools-jvm-sdk](https://github.com/commercetools/commercetools-jvm-sdk) as a prerequisite for using the library.
-
🐞 Bug Fixes (1)
- Product Sync - Fixed a bug where the removed attributes in the source product variant draft were not being removed from the target variant. #238
-
🛠 Enhancements (8)
- Product Sync - Products create and update requests are now issued in parallel. This should lead to a performance improvement. #238
- Commons - Bumped
com.adarshr.test-logger
to 1.5.0. - Commons - Bumped
mockito
to 2.22.0. - Commons - Bumped
org.junit.jupiter:junit-jupiter-api
to 5.3.1. - Commons - Bumped
org.junit.jupiter:junit-jupiter-engine
to 5.3.1. - Commons - Bumped
org.junit.jupiter:junit-jupiter-params
to 5.3.1. - Commons -
UnorderedCollectionSyncUtils#buildRemoveUpdateActions ensures no
nullelements in the resulting list and ignores
null` keys now. #238 - Commons - Bumped gradle to version gradle-4.10.2.
-
🚧 Breaking Changes (2)
-
🎉 New Features (15)
- ProductType Sync - Support for syncing productTypes. #286 For more info how to use it please refer to ProductType usage doc.
- Product Sync - Support for syncing product prices. #101
- Product Sync -
ProductSyncUtils#buildActions
now also calculates variants' all price update actions needed. #101 - Product Sync -
ProductUpdateActionUtils#buildVariantsUpdateActions
now also calculates variants' all price update actions needed. #101 - Product Sync - Introduced new update action build utility for building all needed update actions between two variants' prices
ProductVariantUpdateActionUtils#buildProductVariantPricesUpdateActions
. #101 - ProductSync -
PriceReferenceResolver
now resolves prices' CustomerGroup references on prices. #101 - InventoryEntry Sync -
InventoryReferenceReplacementUtils#replaceInventoriesReferenceIdsWithKeys
now supports replacing channel reference ids with keys. #101 - ProductType Sync - Exposed
ProductTypeSyncUtils#buildActions
which calculates all needed update actions after comparing aProductType
and aProductTypeDraft
. #286 - ProductType Sync - Exposed
ProductTypeUpdateActionUtils
which contains utils for calculating needed update actions after comparing individual fields of aProductType
and aProductTypeDraft
. #286 - ProductType Sync - Exposed
ProductTypeUpdateAttributeDefinitionActionUtils
which contains utils for calculating needed update actions after comparing a list ofAttributeDefinition
s and a list ofAttributeDefinitionDraft
s. #286 - ProductType Sync - Exposed
ProductTypeUpdateLocalizedEnumActionUtils
which contains utils for calculating needed update actions after comparing two lists ofLocalizedEnumValue
s. #286 - ProductType Sync - Exposed
ProductTypeUpdatePlainEnumActionUtils
which contains utils for calculating needed update actions after comparing two lists ofEnumValue
s. #286 - ProductType Sync - Exposed
AttributeDefinitionUpdateActionUtils
which contains utils for calculating needed update actions after comparing anAttributeDefinition
and anAttributeDefinitionDraft
. #286 - ProductType Sync - Exposed
LocalizedEnumUpdateActionsUtils
which contains utils for calculating needed update actions after comparing twoLocalizedEnumValue
s. #286 - ProductType Sync - Exposed
PlainEnumUpdateActionsUtils
which contains utils for calculating needed update actions after comparing twoEnumValue
s. #286
-
🛠️ Enhancements (7)
- Commons - Bumped gradle to version gradle-4.10.
- Commons - Bumped
com.jfrog.bintray
to 1.8.4. - Commons - Bumped
assertj
to 3.11.1. - Commons - Bumped
mockito
to 2.21.0. - Commons - Bumped
org.ajoberstar.grgit
to 2.3.0. - Commons - Bumped
com.adarshr.test-logger
to 1.4.0. - Commons - Switched to Junit5 using both
junit-jupiter-engine
andjunit-vintage-engine
for backward compatibility.
-
🛠️ Breaking Changes (3)
- Product Sync - Removed redundant
ProductUpdateActionUtils#buildRemoveVariantUpdateActions
. #3 - Commons - Moved
SyncUtils#replaceCustomTypeIdWithKeys
toCustomTypeReferenceReplacementUtils#replaceCustomTypeIdWithKeys
. #101. - Commons - Moved
SyncUtils#replaceAssetsReferencesIdsWithKeys
toAssetReferenceReplacementUtils#replaceAssetsReferencesIdsWithKeys
. #101.
- Product Sync - Removed redundant
- 🛠️ Enhancements (13)
- Product Sync - Support for syncing price custom fields. #277
- Product Sync -
VariantReferenceResolver
now resolves prices' custom type references on all variants. #277 - Product Sync -
ProductReferenceReplacementUtils#buildProductQuery
now expands custom types on prices. #277 - Product Sync -
VariantReferenceReplacementUtils#replacePricesReferencesIdsWithKeys
now supports replacing price custom reference ids with keys. #277 - Commons - Bumped commercetools-jvm-sdk to version 1.32.0.
- Commons - Bumped gradle to version gradle-4.8.
- Commons - Bumped
com.jfrog.bintray
to 1.8.0. - Commons - Bumped
org.ajoberstar.git-publish
to 1.0.0. - Commons - Bumped
com.adarshr.test-logger
to 1.2.0. - Commons - Bumped
org.ajoberstar.grgit
to 2.2.1. - Commons - Bumped gradle checkstyle plugin to 8.10.1.
- Commons - Bumped mockito dependency to 2.18.3.
- Commons - Bumped JaCoCo dependency to 0.8.1.
-
🎉 New Features (19)
- Category Sync - Support of categories' asset syncing. #3
- Product Sync - Support of product variants' asset syncing. #3
- Category Sync -
CategorySyncUtils#buildActions
now also calculates all asset update actions needed. #3 - Product Sync -
ProductSyncUtils#buildActions
now also calculates variants' all asset update actions needed. #3 - Product Sync -
ProductUpdateActionUtils#buildVariantsUpdateActions
now also calculates variants' all asset update actions needed. #3 - Product Sync - Introduced the new ActionGroup:
ASSETS
which can be used in blacklisting/whitelisting assets syncing during the product sync. #3 - Category Sync - Introduced new update action build utility for building all needed update actions between two categories' assets
ProductVariantUpdateActionUtils#buildProductVariantAssetsUpdateActions
. #3 - Product Sync - Introduced new update action build utility for building all needed update actions between two variants' assets
ProductVariantUpdateActionUtils#buildProductVariantAssetsUpdateActions
. #3 - Category Sync - Introduced new update action granular build utils for category asset fields in
CategoryAssetUpdateActionUtils
. #3 - Product Sync - Introduced new update action granular build utils for product variant assets fields in
ProductVariantAssetUpdateActionUtils
. #3 - Commons - Introduced
AssetReferenceResolver
which is a helper that can resolve all the references of an AssetDraft. #3 - Commons -
VariantReferenceResolver
andCategoryReferenceResolver
now also resolve all the containing AssetDrafts references. #3 - Commons - Support for custom update actions calculation for secondary resources (e.g. prices, product assets and category assets). #3
- Product Sync -
ProductReferenceReplacementUtils#replaceProductsReferenceIdsWithKeys
andVariantReferenceReplacementUtils#replaceVariantsReferenceIdsWithKeys
now support replacing asset custom reference ids with keys. #3 - Category Sync -
CategoryReferenceReplacementUtils#replaceCategoriesReferenceIdsWithKeys
now supports replacing asset custom reference ids with keys. #3 - Commons - Introduced new
SyncUtils#replaceAssetsReferenceIdsWithKeys
which is a util that replaces the custom type ids with keys in a list of assets. #3 - Product Sync -
ProductReferenceReplacementUtils#buildProductQuery
now expands custom types on assets. #3 - Category Sync -
CategoryReferenceReplacementUtils#buildCategoryQuery
now expands custom types on assets. #3 - Commons - Introduced new
ResourceIdentifierUtils#toResourceIdentifierIfNotNull
. #262
-
Changes (5)
- Commons -
CustomUpdateActionUtils#buildCustomUpdateActions
is nowCustomUpdateActionUtils#buildPrimaryResourceCustomUpdateActions
. It now takes a new third parametercustomActionBuilder
which represents the concrete builder of custom update actions. For a list of concrete builder options check the implementors of theGenericCustomActionBuilder
interface. #3 - Commons -
CustomUpdateActionUtils#buildCustomUpdateActions
can now be used to build custom update actions for secondary resources (e.g. assets and prices). #3 - Commons - New Custom Type Id is now validated against being empty/null. #3
- Product Sync -
ProductSyncUtils#buildCoreActions
is now removed.ProductSyncUtils#buildActions
should be used instead. #3 - Category Sync -
CategorySyncUtils#buildCoreActions
is now removed.CategorySyncUtils#buildActions
should be used instead. #3
- Commons -
-
🛠️ Enhancements (1)
-
🐞 Bug Fixes (1)
- Build Tools - Fixed bug where jar and Codecov were triggered on benchmark stages of the build when they should only be triggered on the full build. #249
-
🎉 New Features (1)
- Commons - Added benchmarking setup for the library on every release. #155
-
Changes (3)
- Commons - Statistics counters are now of type
AtomicInteger
instead of int to support concurrency. #242 - Category Sync -
categoryKeysWithMissingParents
in theCategorySyncStatistics
is now of typeConcurrentHashMap<String, Set<String>
instead ofMap<String, List<String>
. #242 - Category Sync -
CategorySyncStatistics
now exposes the methodsremoveChildCategoryKeyFromMissingParentsMap
,getMissingParentKey
andputMissingParentCategoryChildKey
to support manipulatingcategoryKeysWithMissingParents
map. #242
- Commons - Statistics counters are now of type
-
🎉 New Features (1)
- Commons - Added
getSyncOptions
to theProductSync
,CategorySync
andInventorySync
. #230
- Commons - Added
-
Changes (1)
- Product Sync - Added validation for product drafts' SKUs as a required field on the input product drafts since SKUs will be used for product matching in the future. #230
-
🛠️ Enhancements (1)
- Product Sync - Changed the product sync to cache product ids per batch as opposed to caching the entire products ids before syncing products. #230
-
🐞 Bug Fixes (1)
- Commons - Fixed library version in User-Agent headers of JVM SDK clients using the library. Now it is not fetched from the JAR manifest but injected by gradle-scripts/set-release-version.gradle. #227
-
🎉 New Features (1)
- Category Sync - Exposed new method
CategorySyncStatistics#getNumberOfCategoriesWithMissingParents
which gets the total number of categories with missing parents from the statistics instance. #186
- Category Sync - Exposed new method
-
Changes (2)
- Product Sync - Changed product sync statistics report message wording. #186
- Product Sync - Exposed new methods
ProductReferenceResolver#resolveStateReference
,ProductReferenceResolver#resolveTaxCategoryReference
,ProductReferenceResolver#resolveCategoryReferences
andProductReferenceResolver#resolveProductTypeReference
. #218
-
🛠 Enhancements (1)
- Build Tools - Bumped Gradle to version 4.4. #205
- 🐞 Bug Fixes (1)
- Commons - Changed offset-based pagination of querying all elements to a limit-based with sorted ids approach to mitigate problems of previous approach. #210
-
🎉 New Features (3)
- Category Sync - Introduced
beforeCreateCallback
option which is callback applied on a category draft before a request to create it on CTP is issued. #183 - Product Sync - Introduced
beforeCreateCallback
option which is callback applied on a product draft before a request to create it on CTP is issued. #183 - Inventory Sync - Introduced
beforeCreateCallback
option which is callback applied on a inventoryEntry draft before a request to create it on CTP is issued. #183
- Category Sync - Introduced
-
✨ Major Enhancements (2)
-
🐞 Bug Fixes (1)
- Commons - Fixed library version in User-Agent headers of JVM SDK clients using the library. #191
-
📋 Documentation (1)
- Commons - Added Code of Conduct doc.
-
🚧 Migration guide (6)
- Product Sync - Removed
removeOtherVariants
option which is already done by the sync by default. Removal of variants can be prevented through the beforeUpdateCallback. Please check here an example of how this can be done. #26 - Commons - Removed
removeOtherSetEntries
,removeOtherCollectionEntries
andremoveOtherProperties
options which are already done by the sync by default. The aforementioned options (and even more use cases) can now be covered with help of the beforeCreateCallback and beforeUpdateCallback. Please check here an example of how removal of variants can be disabled. #26 - Commons - Removed website and emergency contact e-mail appened in User-Agent headers of JVM SDK clients using the library. #191
- Category Sync -
beforeUpdateCallback
now treats a null return as an empty list of update actions. #183 - Product Sync -
beforeUpdateCallback
now treats a null return as an empty list of update actions. #183 - Inventory Sync -
beforeUpdateCallback
now treats a null return as an empty list of update actions. #183
- Product Sync - Removed
-
🎉 New Features (3)
- Inventory Sync - Introduced
beforeUpdateCallback
which is applied after generation of update actions and before actual InventoryEntry update. #169 - Build Tools - Added
Add Release Notes entry
checkbox in PR template on Github repo. #161 - Commons - Appended library name and version to User-Agent headers of JVM SDK clients using the library. #142
- Inventory Sync - Introduced
-
🛠️ Enhancements (3)
- Commons -
setUpdateActionsCallback
has been renamed tobeforeUpdateCallback
and now takes a TriFunction instead of Function, which adds more information about the generated list of update actions, namely, the old resource being updated and the new resource draft. #169 - Build Tools - Explicitly specified gradle tasks execution order in execution-order.gradle. #161
- Build Tools - Set PMD to run before Integration tests. #161
- Commons - Appended library name and version to User-Agent headers of JVM SDK clients using the library. #142
- Commons -
-
📋 Documentation (1)
- Build Tools - Added Snyk vulnerabilities badge to repo README. #188
-
🚧 Migration guide (8)
- Commons - Renamed
setUpdateActionsCallback
tobeforeUpdateCallback
. #169 - Commons - Renamed
setAllowUuid
toallowUuid
. #169 - Commons - Renamed
setWarningCallBack
towarningCallback
. #169 - Commons - Renamed
setErrorCallBack
toerrorCallback
. #169 - Commons - Renamed
setBatchSize
tobatchSize
. #169 - Commons - Removed
setRemoveOtherLocales
option. #169 - Commons - Renamed
setRemoveOtherSetEntries
,setRemoveOtherCollectionEntries
andsetRemoveOtherProperties
toremoveOtherSetEntries
,removeOtherCollectionEntries
andremoveOtherProperties
. #169 - Product Sync - Renamed
setSyncFilter
tosyncFilter
. #169
- Commons - Renamed
- 🔥 Hotfix (1)
- Product Sync - Fixed an issue with
replaceAttributesReferencesIdsWithKeys
which nullifies localized text attributes due to JSON parsing not throwing exception on parsing it to reference set. #179
- Product Sync - Fixed an issue with
-
🎉 New Features (7)
- ProductSync - Introduced Product TaxCategory reference resolution and syncing. #120.
- ProductSync - Introduced Product State reference resolution and syncing. #120.
- ProductSync - Exposed
ProductReferenceReplacementUtils#buildProductQuery
util to create a product query with all needed reference expansions to fetch products from a source CTP project for the sync. #120. - ProductSync - Exposed
VariantReferenceReplacementUtils#replaceVariantsReferenceIdsWithKeys
which provides utils to replace reference ids with keys on variants (price and attriute references) coming from a source CTP project to make it ready for reference resolution. #160. - ProductSync - Exposed
VariantReferenceResolver
which is a helper that resolves the price and attribute references on a ProductVariantDraft. (Note: This is used now by the already existing ProductReferenceResolver) #160. - CategorySync - Exposed
CategoryReferenceReplacementUtils#buildCategoryQuery
util to create a category query with all needed reference expansions to fetch categories from a source CTP project for the sync. #120. - Commons - Exposed
replaceCustomTypeIdWithKeys
andreplaceReferenceIdWithKey
. #120.
-
🐞 Bug Fixes (1)
- Category Sync - Fixes an issue where retrying on concurrent modification exception wasn't re-fetching the latest Category and rebuilding build update actions. #94
-
📋 Documentation (6)
- Product Sync - Documented the reason behind having the latest batch processing time. #119
- Category Sync - Documented the reason behind having the latest batch processing time. #119
- Category Sync - Fixed the statistics summary string used in the documentation. #119
- Inventory Sync - Documented the reason behind having the latest batch processing time. #119
- Product Sync - Fixed some typos. #172
- Commons - Provided inline example of how to use logging in callbacks. #172
-
🚧 Migration guide (9)
- Product Sync - Moved
replaceProductsReferenceIdsWithKeys
fromSyncUtils
toProductReferenceReplacementUtils
. #120 - Product Sync - Removed
replaceProductDraftsCategoryReferenceIdsWithKeys
which is not needed anymore. #120 - Product Sync - Removed
replaceProductDraftCategoryReferenceIdsWithKeys
which is not needed anymore. #120 - Product Sync - Removed
replaceCategoryOrderHintCategoryIdsWithKeys
which is not needed anymore. #120 - Product Sync - Moved
getDraftBuilderFromStagedProduct
fromSyncUtils
toProductReferenceReplacementUtils
. #120 - Category Sync - Moved
replaceCategoriesReferenceIdsWithKeys
fromSyncUtils
toCategoryReferenceReplacementUtils
. #120 - Inventory Sync - Moved
replaceInventoriesReferenceIdsWithKeys
fromSyncUtils
toInventoryReferenceReplacementUtils
. #120 - Commons - Removed slf4j-simple dependency. #172
- Commons - Used implementation instead of compile configuration for dependencies. #172
- Product Sync - Moved
-
🎉 New Features (3)
- Product Sync - Supported syncing entire product variant images, putting order into consideration. #114
- Product Sync - Exposed
ProductVariantUpdateActionUtils#buildProductVariantImagesUpdateActions
andProductVariantUpdateActionUtils#buildMoveImageToPositionUpdateActions
action build util. #114 - Product Sync - Supported Blacklisting/Whitelisting update action groups on sync. #122
-
🐞 Bug Fixes (4)
- Build Tools - Fixed issue were JavaDoc jar was not built. #117
- Build Tools - Fixed issue were JavaDoc was not published on github. #118
- Product Sync - Fixed a potential bug where an exisitng master variant key could be blank.#122
- Product Sync - Fixed a potential bug where a product draft could be provided with no master variant set. #122
-
🛠 Enhancements (2)️
-
📋 Documentation (5)
- Beta Features (11)
- Product Sync - Introduced syncing products name, categories, categoryOrderHints, description, slug, metaTitle, metaDescription, metaKeywords, masterVariant and searchKeywords. #57
- Product Sync - Exposed update action build utils for products name, categories, categoryOrderHints, description, slug, metaTitle, metaDescription, metaKeywords, masterVariant and searchKeywords. #57
- Product Sync - Introduced reference resolution support for product categories, productType and prices. #95 #96
- Product Sync - Introduced syncing products publish state. #97
- Product Sync - Exposed update action build utils for products publish state. #97
- Product Sync - Introduced syncing products variant attributes. #98
- Product Sync - Exposed update action build utils for products variant attributes. #98
- Product Sync - Introduced syncing products variant prices without update action calculation. #99
- Product Sync - Introduced syncing products variant images. #100
- Product Sync - Exposed update action build utils for products variant images. #100
- Product Sync - Introduced syncing products against staged projection. #93
-
🎉 New Features (16)
- Category Sync - Introduced syncing category name, description, orderHint, metaDescription, metaTitle, customFields and parent category. #2
- Category Sync - Exposed update action build utils for category name, description, orderHint, metaDescription, metaTitle, customFields and parent category. #2
- Category Sync - Introduced sync options builders. #5
- Category Sync - Introduced support of syncing categories in any order. #28
- Category Sync - Added concurrency modification exception repeater. #30
- Category Sync - Used category keys for matching. #45
- Category Sync - Introduced reference resolution support. #47
- Category Sync - Introduced Batch processing support. #73
- Category Sync - Added info about missing parent categories in statistics. #73
- Commons - Introduced sync statistics support. #6
- Commons - Sync ITs should now use client that repeats on 5xx errors. #31
- Commons - Sync only accepts drafts. #46
- Build Tools - Travis setup as CI tool. #1
- Build Tools - Setup Bintray release and publising process. #24
- Build Tools - Setup CheckStyle, PMD, FindBugs, Jacoco and CodeCov. #25
- Build Tools - Setup repo PR and issue templates. #29
-
Beta Features (5)
- Inventory Sync - Introduced syncing inventory supplyChannel, quantityOnStock, restockableInDays, expectedDelivery and customFields. #17
- Inventory Sync - Exposed update action build utils for inventory supplyChannel, quantityOnStock, restockableInDays, expectedDelivery and customFields. #17
- Inventory Sync - Introduced sync options builder support. #15
- Inventory Sync - Introduced reference resolution support. #47
- Inventory Sync - Introduced batch processing support. #73