Skip to content

Commit 0938b15

Browse files
lojzatransalander85salander85
authored
Java sdk v2 migration (#1089)
Co-authored-by: salander85 <sarah.lander@commercetools.com> Co-authored-by: Sarah Lander <70885646+salander85@users.noreply.github.com>
1 parent 458fa82 commit 0938b15

File tree

645 files changed

+53791
-41266
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

645 files changed

+53791
-41266
lines changed

README.md

Lines changed: 25 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
![commercetools-java-sync-logos 002](https://user-images.githubusercontent.com/9512131/31182587-90d47f0a-a924-11e7-9716-66e6bec7f79b.png)
2-
# commercetools sync
2+
# commercetools sync (version 10)
33
[![CI](https://github.com/commercetools/commercetools-sync-java/workflows/CI/badge.svg)](https://github.com/commercetools/commercetools-sync-java/actions?query=workflow%3ACI)
44
[![codecov](https://codecov.io/gh/commercetools/commercetools-sync-java/branch/master/graph/badge.svg)](https://codecov.io/gh/commercetools/commercetools-sync-java)
5-
[![Benchmarks 9.2.3](https://img.shields.io/badge/Benchmarks-9.2.3-orange.svg)](https://commercetools.github.io/commercetools-sync-java/benchmarks/)
6-
[![Download from Maven Central](https://img.shields.io/badge/Maven_Central-9.2.3-blue.svg)](https://search.maven.org/artifact/com.commercetools/commercetools-sync-java/9.2.3/jar)
75
[![Javadoc](https://javadoc.io/badge2/com.commercetools/commercetools-sync-java/javadoc.svg?label=Javadoc)](https://commercetools.github.io/commercetools-sync-java/v/9.2.3/)
86
[![Known Vulnerabilities](https://snyk.io/test/github/commercetools/commercetools-sync-java/4b2e26113d591bda158217c5dc1cf80a88665646/badge.svg)](https://snyk.io/test/github/commercetools/commercetools-sync-java/4b2e26113d591bda158217c5dc1cf80a88665646)
97

8+
9+
> Note: The current version of this library uses [JVM-SDK-V2](http://commercetools.github.io/commercetools-sdk-java-v2). This doc already contains updated information. Please migrate to this version, using our [Migration Guide](/docs/sdk2/MIGRATION_GUIDE.md).
10+
> If migration isn't an option for you, you can still use deprecated versions of this library available at [Maven central](https://search.maven.org/artifact/com.commercetools/commercetools-sync-java/9.2.3/jar).
11+
1012
More at https://commercetools.github.io/commercetools-sync-java
1113

1214
Java library which allows to import/synchronise (import changes) the data from any arbitrary source to commercetools project.
1315

14-
Supported resources: [Categories](/docs/usage/CATEGORY_SYNC.md), [Products](/docs/usage/PRODUCT_SYNC.md), [InventoryEntries](/docs/usage/INVENTORY_SYNC.md), [ProductTypes](/docs/usage/PRODUCT_TYPE_SYNC.md), [Types](/docs/usage/TYPE_SYNC.md), [CartDiscounts](/docs/usage/CART_DISCOUNT_SYNC.md), [States](/docs/usage/STATE_SYNC.md), [TaxCategories](/docs/usage/TAX_CATEGORY_SYNC.md), [CustomObjects](/docs/usage/CUSTOM_OBJECT_SYNC.md), [Customers](/docs/usage/CUSTOMER_SYNC.md), [ShoppingLists](/docs/usage/SHOPPING_LIST_SYNC.md)
16+
Supported resources: [Categories](/docs/sdk2/usage/CATEGORY_SYNC.md), [Products](/docs/sdk2/usage/PRODUCT_SYNC.md), [InventoryEntries](/docs/sdk2/usage/INVENTORY_SYNC.md), [ProductTypes](/docs/sdk2/usage/PRODUCT_TYPE_SYNC.md), [Types](/docs/sdk2/usage/TYPE_SYNC.md), [CartDiscounts](/docs/sdk2/usage/CART_DISCOUNT_SYNC.md), [States](/docs/sdk2/usage/STATE_SYNC.md), [TaxCategories](/docs/sdk2/usage/TAX_CATEGORY_SYNC.md), [CustomObjects](/docs/sdk2/usage/CUSTOM_OBJECT_SYNC.md), [Customers](/docs/sdk2/usage/CUSTOMER_SYNC.md), [ShoppingLists](/docs/sdk2/usage/SHOPPING_LIST_SYNC.md)
1517

1618
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
1719
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
1820

1921
- [Usage](#usage)
20-
- [Quick Start](/docs/usage/QUICK_START.md)
22+
- [Quick Start](/docs/sdk2/usage/QUICK_START.md)
2123
- [Prerequisites](#prerequisites)
2224
- [Installation](#installation)
2325
- [Maven](#maven)
2426
- [Gradle](#gradle)
2527
- [SBT](#sbt)
2628
- [Ivy](#ivy)
2729
- [Release Notes](/docs/RELEASE_NOTES.md)
28-
- [Javadoc](https://commercetools.github.io/commercetools-sync-java/v/9.2.3/)
29-
- [Benchmarks](https://commercetools.github.io/commercetools-sync-java/benchmarks/)
3030

3131
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
3232
## Usage
3333

34-
Create you own event or cronjob based application and use the library to transform any external data (JSON, CSV, XML, REST API, DB, ...) into [commercetools-jvm-sdk](https://github.com/commercetools/commercetools-jvm-sdk) resource draft objects (e.g. [CategoryDraft](https://github.com/commercetools/commercetools-jvm-sdk/blob/master/commercetools-models/src/main/java/io/sphere/sdk/categories/CategoryDraft.java)) and import those into the commercetools project.
34+
Create your own event or cronjob based application and use the library to transform any external data (JSON, CSV, XML, REST API, DB, ...) into [JVM-SDK-V2](http://commercetools.github.io/commercetools-sdk-java-v2) resource draft objects (e.g. [CategoryDraft](https://github.com/commercetools/commercetools-sdk-java-v2/blob/main/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/category/CategoryDraft.java)) and import those into the commercetools project.
3535

3636
Notes:
3737

3838
- It is often more efficient if you can setup your external data source to provide you only the changes (deltas) instead of the full data set on every import iteration.
3939
- There is dockerized ready-to-use CLI application [commercetools-project-sync](https://github.com/commercetools/commercetools-project-sync) which based on this library can synchronize entire data catalogue between the 2 commercetools projects.
4040
- During a synchronisation, resources are either created or updated, but **not** deleted.
4141

42-
⚡ See the [Quick Start Guide](/docs/usage/QUICK_START.md) for more information on building a product importer!
42+
⚡ See the [Quick Start Guide](/docs/sdk2/usage/QUICK_START.md) for more information on building a product importer!
4343

4444
![commercetools-java-sync-final 001](https://user-images.githubusercontent.com/3469524/126317637-a946a81c-2948-4751-86bb-02bcecfeca95.png)
4545

@@ -60,26 +60,26 @@ Here are the most popular ones:
6060
<dependency>
6161
<groupId>com.commercetools</groupId>
6262
<artifactId>commercetools-sync-java</artifactId>
63-
<version>9.2.3</version>
63+
<version>10.0.0</version>
6464
</dependency>
6565
````
6666

6767
#### Gradle
6868

6969
````groovy
70-
implementation 'com.commercetools:commercetools-sync-java:9.2.3'
70+
implementation 'com.commercetools:commercetools-sync-java:10.0.0'
7171
````
7272

7373
#### SBT
7474

7575
````
76-
libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "9.2.3"
76+
libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "10.0.0"
7777
````
7878

7979
#### Ivy
8080

8181
````xml
82-
<dependency org="com.commercetools" name="commercetools-sync-java" rev="9.2.3"/>
82+
<dependency org="com.commercetools" name="commercetools-sync-java" rev="10.0.0"/>
8383
````
8484

8585
**Note**: To avoid `commercetools JVM SDK` libraries version mismatch between projects.
@@ -88,27 +88,21 @@ libraryDependencies += "com.commercetools" % "commercetools-sync-java" % "9.2.3"
8888

8989
For Gradle users, remove:
9090
```groovy
91-
implementation 'com.commercetools.sdk.jvm.core:commercetools-models:<version>'
92-
implementation 'com.commercetools.sdk.jvm.core:commercetools-java-client-ahc-2_5:<version>'
93-
implementation 'com.commercetools.sdk.jvm.core:commercetools-convenience:<version>'
91+
implementation "com.commercetools.sdk:commercetools-http-client:${version}"
92+
implementation "com.commercetools.sdk:commercetools-sdk-java-api:${version}"
9493
```
9594

9695
For Maven users, remove:
9796

9897
````xml
9998
<dependency>
100-
<groupId>com.commercetools.sdk.jvm.core</groupId>
101-
<artifactId>commercetools-models</artifactId>
99+
<groupId>com.commercetools.sdk</groupId>
100+
<artifactId>commercetools-http-client</artifactId>
102101
<version>version</version>
103102
</dependency>
104103
<dependency>
105-
<groupId>com.commercetools.sdk.jvm.core</groupId>
106-
<artifactId>commercetools-java-client-ahc-2_5</artifactId>
107-
<version>version</version>
108-
</dependency>
109-
<dependency>
110-
<groupId>com.commercetools.sdk.jvm.core</groupId>
111-
<artifactId>commercetools-convenience</artifactId>
104+
<groupId>com.commercetools.sdk</groupId>
105+
<artifactId>commercetools-sdk-java-v2</artifactId>
112106
<version>version</version>
113107
</dependency>
114108
````
@@ -119,9 +113,8 @@ If you want to use a different `commercetools JVM SDK` version than the version
119113
For Gradle:
120114
````groovy
121115
implementation('com.commercetools:commercetools-sync-java') {
122-
exclude group: 'com.commercetools.sdk.jvm.core', module: 'commercetools-models'
123-
exclude group: 'com.commercetools.sdk.jvm.core', module: 'commercetools-java-client-ahc-2_5'
124-
exclude group: 'com.commercetools.sdk.jvm.core', module: 'commercetools-convenience'
116+
exclude group: 'com.commercetools.sdk', module: 'commercetools-http-client'
117+
exclude group: 'com.commercetools.sdk', module: 'commercetools-sdk-java-api'
125118
}
126119
````
127120

@@ -133,16 +126,12 @@ For Maven:
133126
<version>version</version>
134127
<exclusions>
135128
<exclusion>
136-
<groupId>com.commercetools.sdk.jvm.core</groupId>
137-
<artifactId>commercetools-models</artifactId>
138-
</exclusion>
139-
<exclusion>
140-
<groupId>com.commercetools.sdk.jvm.core</groupId>
141-
<artifactId>commercetools-java-client-ahc-2_5</artifactId>
129+
<groupId>com.commercetools.sdk</groupId>
130+
<artifactId>commercetools-http-client</artifactId>
142131
</exclusion>
143132
<exclusion>
144-
<groupId>com.commercetools.sdk.jvm.core</groupId>
145-
<artifactId>commercetools-convenience</artifactId>
133+
<groupId>com.commercetools.sdk</groupId>
134+
<artifactId>commercetools-sdk-java-v2</artifactId>
146135
</exclusion>
147136
</exclusions>
148137
</dependency>

build.gradle

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ plugins {
1010
}
1111

1212
ext{
13-
commercetoolsJvmSdkVersion = '2.14.0'
14-
commercetoolsJavaSdkV2Version = '15.0.1'
13+
commercetoolsJavaSdkV2Version = '14.7.0'
1514
mockitoJunitJupiterVersion = '5.4.0'
1615
jupiterApiVersion = '5.10.0'
1716
assertjVersion = '3.24.2'
1817
pmdVersion = '6.55.0'
1918
jacocoVersion = '0.8.10'
2019
caffeineVersion = '3.1.8'
2120
nexusStagingPluginVersion = '0.22.0'
22-
commonTextVersion = '1.10.0'
21+
commonTextVersion = '1.9'
22+
commercetoolsJavaSDK2Version = '10.1.0'
2323
}
2424

2525
apply from: "$rootDir/gradle-scripts/repositories.gradle"
@@ -44,9 +44,9 @@ apply from: "$rootDir/gradle-scripts/mkdocs.gradle"
4444
apply from: "$rootDir/gradle-scripts/spotless.gradle"
4545

4646
dependencies {
47-
api "com.commercetools.sdk.jvm.core:commercetools-models:${commercetoolsJvmSdkVersion}"
48-
api "com.commercetools.sdk.jvm.core:commercetools-java-client-ahc-2_5:${commercetoolsJvmSdkVersion}"
49-
api "com.commercetools.sdk.jvm.core:commercetools-convenience:${commercetoolsJvmSdkVersion}"
47+
implementation "com.commercetools.sdk:commercetools-http-client:${commercetoolsJavaSDK2Version}"
48+
implementation "com.commercetools.sdk:commercetools-sdk-java-api:${commercetoolsJavaSDK2Version}"
49+
5050
implementation "com.github.ben-manes.caffeine:caffeine:${caffeineVersion}"
5151
implementation "org.apache.commons:commons-text:${commonTextVersion}"
5252
api "com.commercetools.sdk:commercetools-sdk-compat-v1:${commercetoolsJavaSdkV2Version}"
@@ -57,4 +57,5 @@ dependencies {
5757
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${jupiterApiVersion}"
5858
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:${jupiterApiVersion}"
5959
testImplementation "org.assertj:assertj-core:${assertjVersion}"
60+
testImplementation 'com.github.spotbugs:spotbugs-annotations:4.7.3'
6061
}

config/spotbugs-exclude.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,21 @@
2424
<Bug pattern="THROWS_METHOD_THROWS_CLAUSE_THROWABLE"/>
2525
</Match>
2626

27+
<!-- TODO: Fix these errors after POC -->
28+
<Match>
29+
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
30+
</Match>
31+
32+
<Match>
33+
<Bug pattern="DLS_DEAD_LOCAL_STORE"/>
34+
</Match>
35+
36+
<Match>
37+
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
38+
</Match>
39+
40+
<Match>
41+
<Bug pattern="UC_USELESS_OBJECT"/>
42+
</Match>
43+
2744
</FindBugsFilter>

docs/sdk2/MIGRATION_GUIDE.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3+
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
4+
5+
- [Migration Guide](#migration-guide)
6+
- [Migrate syncers of supported resources](#migrate-syncers-of-supported-resources)
7+
- [Categories](/docs/sdk2/usage/CATEGORY_SYNC.md#migration-guide),
8+
- [Products](/docs/sdk2/usage/PRODUCT_SYNC.md#migration-guide)
9+
- [InventoryEntries](/docs/sdk2/usage/INVENTORY_SYNC.md#migration-guide)
10+
- [ProductTypes](/docs/sdk2/usage/PRODUCT_TYPE_SYNC.md#migration-guide)
11+
- [Types](/docs/sdk2/usage/TYPE_SYNC.md#migration-guide)
12+
- [CartDiscounts](/docs/sdk2/usage/CART_DISCOUNT_SYNC.md#migration-guide)
13+
- [States](/docs/sdk2/usage/STATE_SYNC.md#migration-guide)
14+
- [TaxCategories](/docs/sdk2/usage/TAX_CATEGORY_SYNC.md#migration-guide)
15+
- [CustomObjects](/docs/sdk2/usage/CUSTOM_OBJECT_SYNC.md#migration-guide)
16+
- [Customers](/docs/sdk2/usage/CUSTOMER_SYNC.md#migration-guide)
17+
- [ShoppingLists](/docs/sdk2/usage/SHOPPING_LIST_SYNC.md#migration-guide)
18+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
19+
20+
# Migration Guide
21+
22+
The commercetools sync library uses the [JVM-SDK-V2](http://commercetools.github.io/commercetools-sdk-java-v2), therefore ensure you [Install JVM SDK](https://docs.commercetools.com/sdk/java-sdk-getting-started#install-the-java-sdk) module `commercetools-sdk-java-api` with
23+
any HTTP client module. The default one is `commercetools-http-client`.
24+
25+
## Common Changes
26+
27+
Some utility methods aren't available in this version. Please make sure to replace these. Here's a list of changes:
28+
29+
- Removed utility methods:
30+
```java
31+
// CollectionUtils
32+
public static <T> Set<T> emptyIfNull(@Nullable final Set<T> set)
33+
```
34+
- Changed scope of utility method:
35+
```java
36+
// CompletableFutureUtils
37+
private static <T, S, U extends Collection<CompletableFuture<S>>> U mapValuesToFutures(
38+
@Nonnull final Stream<T> values,
39+
@Nonnull final Function<T, CompletionStage<S>> mapper,
40+
@Nonnull final Collector<CompletableFuture<S>, ?, U> collector)
41+
```
42+
- Removed helper class:
43+
[ChannelCustomActionBuilder](https://github.com/commercetools/commercetools-sync-java/blob/v1.0.0-M14/src/main/java/com/commercetools/sync/channels/helpers/ChannelCustomActionBuilder.java)
44+
```java
45+
// Included these methods
46+
public UpdateAction<Channel> buildRemoveCustomTypeAction(
47+
@Nullable final Integer variantId, @Nullable final String objectId);
48+
49+
public UpdateAction<Channel> buildSetCustomTypeAction(
50+
@Nullable final Integer variantId,
51+
@Nullable final String objectId,
52+
@Nonnull final String customTypeId,
53+
@Nullable final Map<String, JsonNode> customFieldsJsonMap);
54+
55+
public UpdateAction<Channel> buildSetCustomFieldAction(
56+
@Nullable final Integer variantId,
57+
@Nullable final String objectId,
58+
@Nullable final String customFieldName,
59+
@Nullable final JsonNode customFieldValue);
60+
```
61+
## Migrate syncers of supported resources
62+
63+
- [Categories](/docs/sdk2/usage/CATEGORY_SYNC.md#migration-guide),
64+
- [Products](/docs/sdk2/usage/PRODUCT_SYNC.md#migration-guide)
65+
- [InventoryEntries](/docs/sdk2/usage/INVENTORY_SYNC.md#migration-guide)
66+
- [ProductTypes](/docs/sdk2/usage/PRODUCT_TYPE_SYNC.md#migration-guide)
67+
- [Types](/docs/sdk2/usage/TYPE_SYNC.md#migration-guide)
68+
- [CartDiscounts](/docs/sdk2/usage/CART_DISCOUNT_SYNC.md#migration-guide)
69+
- [States](/docs/sdk2/usage/STATE_SYNC.md#migration-guide)
70+
- [TaxCategories](/docs/sdk2/usage/TAX_CATEGORY_SYNC.md#migration-guide)
71+
- [CustomObjects](/docs/sdk2/usage/CUSTOM_OBJECT_SYNC.md#migration-guide)
72+
- [Customers](/docs/sdk2/usage/CUSTOMER_SYNC.md#migration-guide)
73+
- [ShoppingLists](/docs/sdk2/usage/SHOPPING_LIST_SYNC.md#migration-guide)
74+
75+
76+

0 commit comments

Comments
 (0)