This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch UNOMI-225-fix-migration-mappings
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to
refs/heads/UNOMI-225-fix-migration-mappings by this push:
new efc9af5 UNOMI-225 ElasticSearch 7 fix issues with mappings when
migrating Fix issue with properties merging that was not properly replacing all
the configuration for a mapping field type.
efc9af5 is described below
commit efc9af5089c8729c95452a637597fe729a54cead
Author: Serge Huber <[email protected]>
AuthorDate: Sat Dec 7 21:45:34 2019 +0100
UNOMI-225 ElasticSearch 7 fix issues with mappings when migrating
Fix issue with properties merging that was not properly replacing all the
configuration for a mapping field type.
Signed-off-by: Serge Huber <[email protected]>
---
.../org/apache/unomi/shell/migration/impl/MigrationTo150.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git
a/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/impl/MigrationTo150.java
b/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/impl/MigrationTo150.java
index ecdf39b..28f1e60 100644
---
a/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/impl/MigrationTo150.java
+++
b/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/impl/MigrationTo150.java
@@ -276,8 +276,13 @@ public class MigrationTo150 implements Migration {
result.put(oldPropertyName,
oldProperties.get(oldPropertyName));
continue;
}
- if (oldProperties.get(oldPropertyName) instanceof JSONObject &&
newProperties.get(oldPropertyName) instanceof JSONObject) {
- result.put(oldPropertyName,
getMergedPropertyMappings(oldProperties.getJSONObject(oldPropertyName),
newProperties.getJSONObject(oldPropertyName)));
+ JSONObject oldProperty =
oldProperties.getJSONObject(oldPropertyName);
+ JSONObject newProperty =
newProperties.getJSONObject(oldPropertyName);
+ if (oldProperty.has("properties") &&
newProperty.has("properties")) {
+ // we are in the case of an object, we merge merge deeper
+ JSONObject newObjectMapping = new
JSONObject(newProperty.toString());
+ newObjectMapping.put("properties",
getMergedPropertyMappings(oldProperty.getJSONObject("properties"),
newProperty.getJSONObject("properties")));
+ result.put(oldPropertyName, newObjectMapping);
} else {
// in all other cases we copy the new value.
result.put(oldPropertyName,
newProperties.get(oldPropertyName));