Skip to content

Commit

Permalink
Support syncing Set of (Set of Set of..) of NestedType (#720)
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmetoz authored Apr 20, 2021
1 parent 9b75d2f commit a9bdd74
Show file tree
Hide file tree
Showing 22 changed files with 236 additions and 187 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# commercetools sync
[![CI](https://github.com/commercetools/commercetools-sync-java/workflows/CI/badge.svg)](https://github.com/commercetools/commercetools-sync-java/actions?query=workflow%3ACI)
[![codecov](https://codecov.io/gh/commercetools/commercetools-sync-java/branch/master/graph/badge.svg)](https://codecov.io/gh/commercetools/commercetools-sync-java)
[![Benchmarks 5.0.0](https://img.shields.io/badge/Benchmarks-5.0.0-orange.svg)](https://commercetools.github.io/commercetools-sync-java/benchmarks/)
[![Download from Maven Central](https://img.shields.io/badge/Maven_Central-5.0.0-blue.svg)](https://search.maven.org/artifact/com.commercetools/commercetools-sync-java/5.0.0/jar)
[![Javadoc](http://javadoc-badge.appspot.com/com.commercetools/commercetools-sync-java.svg?label=Javadoc)](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/)
[![Benchmarks 5.1.0](https://img.shields.io/badge/Benchmarks-5.1.0-orange.svg)](https://commercetools.github.io/commercetools-sync-java/benchmarks/)
[![Download from Maven Central](https://img.shields.io/badge/Maven_Central-5.1.0-blue.svg)](https://search.maven.org/artifact/com.commercetools/commercetools-sync-java/5.1.0/jar)
[![Javadoc](http://javadoc-badge.appspot.com/com.commercetools/commercetools-sync-java.svg?label=Javadoc)](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/)
[![Known Vulnerabilities](https://snyk.io/test/github/commercetools/commercetools-sync-java/4b2e26113d591bda158217c5dc1cf80a88665646/badge.svg)](https://snyk.io/test/github/commercetools/commercetools-sync-java/4b2e26113d591bda158217c5dc1cf80a88665646)

More at https://commercetools.github.io/commercetools-sync-java
Expand Down Expand Up @@ -40,7 +40,7 @@ The library supports synchronising the following entities in commercetools
- [Ivy](#ivy)
- [Roadmap](#roadmap)
- [Release Notes](/docs/RELEASE_NOTES.md)
- [Javadoc](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/)
- [Javadoc](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/)
- [Benchmarks](https://commercetools.github.io/commercetools-sync-java/benchmarks/)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down Expand Up @@ -83,24 +83,24 @@ Here are the most popular ones:
<dependency>
<groupId>com.commercetools</groupId>
<artifactId>commercetools-sync-java</artifactId>
<version>5.0.0</version>
<version>5.1.0</version>
</dependency>
````

#### Gradle

````groovy
implementation 'com.commercetools:commercetools-sync-java:5.0.0'
implementation 'com.commercetools:commercetools-sync-java:5.1.0'
````

#### SBT

````
libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "5.0.0"
libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "5.1.0"
````

#### Ivy

````xml
<dependency org="com.commercetools" name="commercetools-sync-java" rev="5.0.0"/>
<dependency org="com.commercetools" name="commercetools-sync-java" rev="5.1.0"/>
````
16 changes: 8 additions & 8 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# commercetools sync
[![CI](https://github.com/commercetools/commercetools-sync-java/workflows/CI/badge.svg)](https://github.com/commercetools/commercetools-sync-java/actions?query=workflow%3ACI)
[![codecov](https://codecov.io/gh/commercetools/commercetools-sync-java/branch/master/graph/badge.svg)](https://codecov.io/gh/commercetools/commercetools-sync-java)
[![Benchmarks 5.0.0](https://img.shields.io/badge/Benchmarks-5.0.0-orange.svg)](https://commercetools.github.io/commercetools-sync-java/benchmarks/)
[![Download from JCenter](https://img.shields.io/badge/Bintray_JCenter-5.0.0-green.svg) ](https://bintray.com/commercetools/maven/commercetools-sync-java/_latestVersion)
[![Download from Maven Central](https://img.shields.io/badge/Maven_Central-5.0.0-blue.svg)](https://search.maven.org/artifact/com.commercetools/commercetools-sync-java/5.0.0/jar)
[![Javadoc](http://javadoc-badge.appspot.com/com.commercetools/commercetools-sync-java.svg?label=Javadoc)](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/)
[![Benchmarks 5.1.0](https://img.shields.io/badge/Benchmarks-5.1.0-orange.svg)](https://commercetools.github.io/commercetools-sync-java/benchmarks/)
[![Download from JCenter](https://img.shields.io/badge/Bintray_JCenter-5.1.0-green.svg) ](https://bintray.com/commercetools/maven/commercetools-sync-java/_latestVersion)
[![Download from Maven Central](https://img.shields.io/badge/Maven_Central-5.1.0-blue.svg)](https://search.maven.org/artifact/com.commercetools/commercetools-sync-java/5.1.0/jar)
[![Javadoc](http://javadoc-badge.appspot.com/com.commercetools/commercetools-sync-java.svg?label=Javadoc)](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/)
[![Known Vulnerabilities](https://snyk.io/test/github/commercetools/commercetools-sync-java/4b2e26113d591bda158217c5dc1cf80a88665646/badge.svg)](https://snyk.io/test/github/commercetools/commercetools-sync-java/4b2e26113d591bda158217c5dc1cf80a88665646)


Expand Down Expand Up @@ -59,18 +59,18 @@ Here are the most popular ones:
<dependency>
<groupId>com.commercetools</groupId>
<artifactId>commercetools-sync-java</artifactId>
<version>5.0.0</version>
<version>5.1.0</version>
</dependency>
````
#### Gradle
````groovy
implementation 'com.commercetools:commercetools-sync-java:5.0.0'
implementation 'com.commercetools:commercetools-sync-java:5.1.0'
````
#### SBT
````
libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "5.0.0"
libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "5.1.0"
````
#### Ivy
````xml
<dependency org="com.commercetools" name="commercetools-sync-java" rev="5.0.0"/>
<dependency org="com.commercetools" name="commercetools-sync-java" rev="5.1.0"/>
````
10 changes: 9 additions & 1 deletion docs/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,16 @@
7. Add Migration guide section which specifies explicitly if there are breaking changes and how to tackle them.
-->
### 5.0.0 - Apr 12, 2021

### 5.1.0 - Apr 20, 2021
[Commits](https://github.com/commercetools/commercetools-sync-java/compare/5.0.0...5.1.0) |
[Javadoc](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/) |
[Jar](https://bintray.com/commercetools/maven/commercetools-sync-java/5.1.0)

- 🎉 **New Features** (1)
- Syncing product types with an attribute of type Set of (Set of Set of..) of NestedType attribute is supported. [#720](https://github.com/commercetools/commercetools-sync-java/pull/720)

### 5.0.0 - Apr 12, 2021
[Commits](https://github.com/commercetools/commercetools-sync-java/compare/4.0.1...5.0.0) |
[Javadoc](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/) |
[Jar](https://bintray.com/commercetools/maven/commercetools-sync-java/5.0.0)
Expand Down
4 changes: 2 additions & 2 deletions docs/usage/CART_DISCOUNT_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ against a [CartDiscountDraft](https://docs.commercetools.com/http-api-projects-c

#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down Expand Up @@ -67,7 +67,7 @@ Therefore, in order to resolve the actual ids of those references in the sync pr
##### Syncing from a commercetools project

When syncing from a source commercetools project, you can use [`toCartDiscountDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/cartdiscounts/utils/CartDiscountTransformUtils.html#toCartDiscountDrafts-java.util.List-)
When syncing from a source commercetools project, you can use [`toCartDiscountDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/cartdiscounts/utils/CartDiscountTransformUtils.html#toCartDiscountDrafts-java.util.List-)
method that transforms(resolves by querying and caching key-id pairs) and maps from a `CartDiscount` to `CartDiscountDraft` using cache in order to make them ready for reference resolution by the sync, for example:

````java
Expand Down
4 changes: 2 additions & 2 deletions docs/usage/CATEGORY_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ against a [CategoryDraft](https://docs.commercetools.com/http-api-projects-categ

#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down Expand Up @@ -135,7 +135,7 @@ As soon, as the referenced parent Category draft is supplied to the sync, the dr

##### Syncing from a commercetools project

When syncing from a source commercetools project, you can use [`toCategoryDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/categories/utils/CategoryTransformUtils.html#toCategoryDrafts-java.util.List-)
When syncing from a source commercetools project, you can use [`toCategoryDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/categories/utils/CategoryTransformUtils.html#toCategoryDrafts-java.util.List-)
method that transforms(resolves by querying and caching key-id pairs) and maps from a `Category` to `CategoryDraft` using cache in order to make them ready for reference resolution by the sync, for example:

````java
Expand Down
4 changes: 2 additions & 2 deletions docs/usage/CUSTOMER_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ against a [CustomerDraft](https://docs.commercetools.com/api/projects/customers#
### Prerequisites
#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down Expand Up @@ -69,7 +69,7 @@ Therefore, in order to resolve the actual ids of those references in the sync pr
##### Syncing from a commercetools project

When syncing from a source commercetools project, you can use [`toCustomerDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/customers/utils/CustomerTransformUtils.html#toCustomerDrafts-java.util.List-)
When syncing from a source commercetools project, you can use [`toCustomerDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/customers/utils/CustomerTransformUtils.html#toCustomerDrafts-java.util.List-)
method that transforms(resolves by querying and caching key-id pairs) and maps from a `Customer` to `CustomerDraft` using cache in order to make them ready for reference resolution by the sync, for example:

````java
Expand Down
2 changes: 1 addition & 1 deletion docs/usage/CUSTOM_OBJECT_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ against a [CustomObjectDraft](https://docs.commercetools.com/http-api-projects-c

#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down
2 changes: 1 addition & 1 deletion docs/usage/IMPORTANT_USAGE_TIPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ productSync.sync(batch1)
By design, scaling the sync process should **not** be done by executing the batches themselves in parallel. However, it can be done either by:

- Changing the number of [max parallel requests](https://github.com/commercetools/commercetools-sync-java/tree/master/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L116) within the `sphereClient` configuration. It defines how many requests the client can execute in parallel.
- or changing the draft [batch size](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/commons/BaseSyncOptionsBuilder.html#batchSize-int-). It defines how many drafts can one batch contains.
- or changing the draft [batch size](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/commons/BaseSyncOptionsBuilder.html#batchSize-int-). It defines how many drafts can one batch contains.

The current overridable default [configuration](https://github.com/commercetools/commercetools-sync-java/tree/master/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) of the `sphereClient`
is the recommended good balance for stability and performance for the sync process.
Expand Down
4 changes: 2 additions & 2 deletions docs/usage/INVENTORY_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ against a [InventoryEntryDraft](https://docs.commercetools.com/http-api-projects

#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down Expand Up @@ -68,7 +68,7 @@ Therefore, in order to resolve the actual ids of those references in the sync pr
##### Syncing from a commercetools project

When syncing from a source commercetools project, you can use [`toInventoryEntryDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/inventories/utils/InventoryTransformUtils.html#toInventoryEntryDrafts-java.util.List-)
When syncing from a source commercetools project, you can use [`toInventoryEntryDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/inventories/utils/InventoryTransformUtils.html#toInventoryEntryDrafts-java.util.List-)
method that transforms(resolves by querying and caching key-id pairs) and maps from a `InventoryEntry` to `InventoryEntryDraft` using cache in order to make them ready for reference resolution by the sync, for example:

````java
Expand Down
4 changes: 2 additions & 2 deletions docs/usage/PRODUCT_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ against a [ProductDraft](https://docs.commercetools.com/http-api-projects-produc

#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down Expand Up @@ -80,7 +80,7 @@ resource on the target commercetools project and the library will issue an updat

##### Syncing from a commercetools project

When syncing from a source commercetools project, you can use [`toProductDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/products/utils/ProductTransformUtils.html#toProductDrafts-java.util.List-)
When syncing from a source commercetools project, you can use [`toProductDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/products/utils/ProductTransformUtils.html#toProductDrafts-java.util.List-)
method that transforms(resolves by querying and caching key-id pairs) and maps from a `Product` to `ProductDraft` using cache in order to make them ready for reference resolution by the sync, for example:

````java
Expand Down
5 changes: 2 additions & 3 deletions docs/usage/PRODUCT_TYPE_SYNC.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ against a [ProductTypeDraft](https://docs.commercetools.com/http-api-projects-pr
### Prerequisites
#### SphereClient

Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.0.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
Use the [ClientConfigurationUtils](https://github.com/commercetools/commercetools-sync-java/blob/5.1.0/src/main/java/com/commercetools/sync/commons/utils/ClientConfigurationUtils.java#L45) which apply the best practices for `SphereClient` creation.
If you have custom requirements for the sphere client creation, have a look into the [Important Usage Tips](IMPORTANT_USAGE_TIPS.md).

````java
Expand Down Expand Up @@ -66,7 +66,7 @@ Therefore, in order to resolve the actual ids of those references in the sync pr
##### Syncing from a commercetools project

When syncing from a source commercetools project, you can use [`toProductTypeDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.0.0/com/commercetools/sync/producttypes/utils/ProductTypeTransformUtils.html#toProductTypeDrafts-java.util.List-)
When syncing from a source commercetools project, you can use [`toProductTypeDrafts`](https://commercetools.github.io/commercetools-sync-java/v/5.1.0/com/commercetools/sync/producttypes/utils/ProductTypeTransformUtils.html#toProductTypeDrafts-java.util.List-)
method that transforms(resolves by querying and caching key-id pairs) and maps from a `ProductType` to `ProductTypeDraft`. It can be configured to use a cache that will speed up the reference resolution performed during the sync, for example:

````java
Expand Down Expand Up @@ -278,4 +278,3 @@ More examples of those utils for different fields can be found [here](https://gi

## Caveats
1. The order of attribute definitions in the synced product types is not guaranteed.
2. Syncing product types with an attribute of type `Set` of `NestedType` attribute is supported. However, `Set` of (`Set` of `Set` of..) of `NestedType` is not yet supported.
4 changes: 2 additions & 2 deletions docs/usage/QUICK_START.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<dependency>
<groupId>com.commercetools</groupId>
<artifactId>commercetools-sync-java</artifactId>
<version>5.0.0</version>
<version>5.1.0</version>
</dependency>
````
- For Gradle users:
Expand All @@ -48,7 +48,7 @@ implementation 'com.commercetools.sdk.jvm.core:commercetools-java-client-ahc-2_5
implementation 'com.commercetools.sdk.jvm.core:commercetools-convenience:1.60.0'
// Add commercetools-sync-java dependency.
implementation 'com.commercetools:commercetools-sync-java:5.0.0'
implementation 'com.commercetools:commercetools-sync-java:5.1.0'
````

### 2. Setup Syncing Options
Expand Down
Loading

0 comments on commit a9bdd74

Please sign in to comment.