This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git
The following commit(s) were added to refs/heads/dev by this push:
new 117af967b Support migration of adapters in data import (#1683)
117af967b is described below
commit 117af967b9be33e123a8fdf8e6dfd62a75b0f58b
Author: Dominik Riemer <[email protected]>
AuthorDate: Mon Jun 26 20:54:10 2023 +0200
Support migration of adapters in data import (#1683)
* Support migration of adapters in data import
* Fix checkstyle
* Fix checkstyle
---
.../export/dataimport/PerformImportGenerator.java | 4 +-
.../export/dataimport/PreviewImportGenerator.java | 18 +++-
.../export/utils/ImportAdapterMigrationUtils.java | 55 +++++++++++
.../adapter/migration/GenericAdapterConverter.java | 94 ++++++++++---------
.../adapter/migration/IAdapterConverter.java | 6 +-
.../adapter/migration}/MigrationHelpers.java | 11 ++-
.../migration/SpecificAdapterConverter.java | 17 +++-
.../migration}/format/CsvFormatMigrator.java | 2 +-
.../migration}/format/EmptyFormatMigrator.java | 2 +-
.../adapter/migration}/format/FormatMigrator.java | 2 +-
.../migration}/format/JsonFormatMigrator.java | 12 +--
.../migration}/format/XmlFormatMigrator.java | 2 +-
.../adapter/migration/utils/AdapterModels.java | 28 +++---
.../adapter/migration}/utils/DocumentKeys.java | 2 +-
.../adapter/migration}/utils/FormatIds.java | 2 +-
.../migration}/utils/GenericAdapterUtils.java | 8 +-
.../core/migrations/v093/AdapterBackupWriter.java | 2 +-
.../core/migrations/v093/AdapterMigration.java | 36 ++++----
.../v093/migrator/GenericAdapterMigrator.java | 102 ++-------------------
.../v093/migrator/SpecificAdapterMigrator.java | 11 ++-
20 files changed, 202 insertions(+), 214 deletions(-)
diff --git
a/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PerformImportGenerator.java
b/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PerformImportGenerator.java
index e8ba6a052..d35b8dbf1 100644
---
a/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PerformImportGenerator.java
+++
b/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PerformImportGenerator.java
@@ -28,6 +28,7 @@ import
org.apache.streampipes.export.resolver.DataViewWidgetResolver;
import org.apache.streampipes.export.resolver.FileResolver;
import org.apache.streampipes.export.resolver.MeasurementResolver;
import org.apache.streampipes.export.resolver.PipelineResolver;
+import org.apache.streampipes.export.utils.ImportAdapterMigrationUtils;
import org.apache.streampipes.manager.file.FileHandler;
import org.apache.streampipes.model.SpDataStream;
import org.apache.streampipes.model.connect.adapter.AdapterDescription;
@@ -70,7 +71,8 @@ public class PerformImportGenerator extends
ImportGenerator<Void> {
@Override
protected void handleAdapter(String document, String adapterId) throws
JsonProcessingException {
if (shouldStore(adapterId, config.getAdapters())) {
- new AdapterResolver().writeDocument(document,
config.isOverrideBrokerSettings());
+ var convertedDoc =
ImportAdapterMigrationUtils.checkAndPerformMigration(document);
+ new AdapterResolver().writeDocument(convertedDoc,
config.isOverrideBrokerSettings());
permissionsToStore.add(new PermissionInfo(adapterId,
AdapterDescription.class));
}
}
diff --git
a/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PreviewImportGenerator.java
b/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PreviewImportGenerator.java
index c85a2c876..57ff84f80 100644
---
a/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PreviewImportGenerator.java
+++
b/streampipes-data-export/src/main/java/org/apache/streampipes/export/dataimport/PreviewImportGenerator.java
@@ -26,18 +26,22 @@ import
org.apache.streampipes.export.resolver.DataViewResolver;
import org.apache.streampipes.export.resolver.FileResolver;
import org.apache.streampipes.export.resolver.MeasurementResolver;
import org.apache.streampipes.export.resolver.PipelineResolver;
+import org.apache.streampipes.export.utils.ImportAdapterMigrationUtils;
import org.apache.streampipes.model.export.AssetExportConfiguration;
import org.apache.streampipes.model.export.ExportItem;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.Map;
import java.util.function.Consumer;
public class PreviewImportGenerator extends
ImportGenerator<AssetExportConfiguration> {
- private AssetExportConfiguration importConfig;
+ private static final Logger LOG =
LoggerFactory.getLogger(PreviewImportGenerator.class);
+ private final AssetExportConfiguration importConfig;
public PreviewImportGenerator() {
super();
@@ -56,14 +60,20 @@ public class PreviewImportGenerator extends
ImportGenerator<AssetExportConfigura
@Override
protected void handleAsset(Map<String, byte[]> previewFiles, String assetId)
throws JsonProcessingException {
Map<String, Object> assetDescription =
this.defaultMapper.readValue(asString(previewFiles.get(assetId)),
- new TypeReference<Map<String, Object>>() {
+ new TypeReference<>() {
});
importConfig.addAsset(new ExportItem(assetId,
String.valueOf(assetDescription.get("assetName")), true));
}
@Override
- protected void handleAdapter(String document, String adapterId) throws
JsonProcessingException {
- addExportItem(adapterId, new
AdapterResolver().readDocument(document).getName(), importConfig::addAdapter);
+ protected void handleAdapter(String document,
+ String adapterId) throws
JsonProcessingException {
+ try {
+ var convertedDoc =
ImportAdapterMigrationUtils.checkAndPerformMigration(document);
+ addExportItem(adapterId, new
AdapterResolver().readDocument(convertedDoc).getName(),
importConfig::addAdapter);
+ } catch (IllegalArgumentException e) {
+ LOG.warn("Skipping import of data set adapter {}", adapterId);
+ }
}
@Override
diff --git
a/streampipes-data-export/src/main/java/org/apache/streampipes/export/utils/ImportAdapterMigrationUtils.java
b/streampipes-data-export/src/main/java/org/apache/streampipes/export/utils/ImportAdapterMigrationUtils.java
new file mode 100644
index 000000000..4100453e4
--- /dev/null
+++
b/streampipes-data-export/src/main/java/org/apache/streampipes/export/utils/ImportAdapterMigrationUtils.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.streampipes.export.utils;
+
+import
org.apache.streampipes.model.connect.adapter.migration.GenericAdapterConverter;
+import
org.apache.streampipes.model.connect.adapter.migration.IAdapterConverter;
+import
org.apache.streampipes.model.connect.adapter.migration.SpecificAdapterConverter;
+import
org.apache.streampipes.model.connect.adapter.migration.utils.AdapterModels;
+
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.AdapterModels.GENERIC_STREAM;
+
+public class ImportAdapterMigrationUtils {
+
+ public static String checkAndPerformMigration(String document) {
+ JsonObject doc = JsonParser.parseString(document).getAsJsonObject();
+ var docType = doc.get("@class").getAsString();
+ if (AdapterModels.shouldMigrate(docType)) {
+ if (AdapterModels.isSetAdapter(docType)) {
+ throw new IllegalArgumentException("Sets are no longer supported");
+ } else {
+ var converter = getAdapterConverter(docType);
+ return converter.convert(doc).toString();
+ }
+ } else {
+ return doc.toString();
+ }
+ }
+
+ private static IAdapterConverter getAdapterConverter(String adapterType) {
+ if (adapterType.equals(GENERIC_STREAM)) {
+ return new GenericAdapterConverter(true);
+ } else {
+ return new SpecificAdapterConverter(true);
+ }
+ }
+}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/GenericAdapterConverter.java
similarity index 52%
copy from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
copy to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/GenericAdapterConverter.java
index 18e1ea53f..8b1f17e72 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/GenericAdapterConverter.java
@@ -16,84 +16,88 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.migrator;
+package org.apache.streampipes.model.connect.adapter.migration;
-import
org.apache.streampipes.service.core.migrations.v093.format.CsvFormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.EmptyFormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.JsonFormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.XmlFormatMigrator;
+import
org.apache.streampipes.model.connect.adapter.migration.format.CsvFormatMigrator;
+import
org.apache.streampipes.model.connect.adapter.migration.format.EmptyFormatMigrator;
+import
org.apache.streampipes.model.connect.adapter.migration.format.JsonFormatMigrator;
+import
org.apache.streampipes.model.connect.adapter.migration.format.XmlFormatMigrator;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
-import org.lightcouch.CouchDbClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers.PROPERTIES;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.CSV;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.CSV_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.GEOJSON_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.GEOJSON_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.IMAGE;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.IMAGE_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_KEY_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_KEY_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_NO_KEY_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_NO_KEY_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_OBJECT_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_OBJECT_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.XML;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.XML_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.GenericAdapterUtils.applyFormat;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.GenericAdapterUtils.getFormatTemplate;
-
-public class GenericAdapterMigrator implements AdapterMigrator {
-
- private static final Logger LOG =
LoggerFactory.getLogger(GenericAdapterMigrator.class);
-
+import static
org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers.PROPERTIES;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.CSV;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.CSV_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.GEOJSON_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.GEOJSON_NEW_KEY;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.IMAGE;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.IMAGE_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_ARRAY_KEY_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_ARRAY_KEY_NEW_KEY;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_ARRAY_NO_KEY_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_ARRAY_NO_KEY_NEW_KEY;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_OBJECT_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_OBJECT_NEW_KEY;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.XML;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.XML_FORMAT_ID;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.GenericAdapterUtils.applyFormat;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.GenericAdapterUtils.getFormatTemplate;
+
+public class GenericAdapterConverter implements IAdapterConverter {
+
+ private static final Logger LOG =
LoggerFactory.getLogger(GenericAdapterConverter.class);
private static final String PROTOCOL_DESC_KEY = "protocolDescription";
private static final String FORMAT_DESC_KEY = "formatDescription";
private static final String CONFIG_KEY = "config";
private final MigrationHelpers helpers;
- public GenericAdapterMigrator(MigrationHelpers helpers) {
- this.helpers = helpers;
+ private final String typeFieldName;
+ private final boolean importMode;
+
+ public GenericAdapterConverter(boolean importMode) {
+ this.helpers = new MigrationHelpers();
+ this.importMode = importMode;
+ this.typeFieldName = importMode ? "@class" : "type";
}
@Override
- public void migrate(CouchDbClient couchDbClient, JsonObject adapter) {
- var adapterName = helpers.getAdapterName(adapter);
- helpers.updateType(adapter);
- helpers.updateFieldType(adapter);
+ public JsonObject convert(JsonObject adapter) {
+ helpers.updateType(adapter, typeFieldName);
+ if (!importMode) {
+ helpers.updateFieldType(adapter);
+ }
- JsonObject formatDescription =
adapter.get(PROPERTIES).getAsJsonObject().get(FORMAT_DESC_KEY).getAsJsonObject();
- JsonObject protocolDescription =
adapter.get(PROPERTIES).getAsJsonObject().get(PROTOCOL_DESC_KEY).getAsJsonObject();
+ JsonObject formatDescription =
getProperties(adapter).get(FORMAT_DESC_KEY).getAsJsonObject();
+ JsonObject protocolDescription =
getProperties(adapter).get(PROTOCOL_DESC_KEY).getAsJsonObject();
migrateProtocolDescription(adapter, protocolDescription);
migrateFormatDescription(adapter, formatDescription);
- adapter.get(PROPERTIES).getAsJsonObject().remove(FORMAT_DESC_KEY);
- adapter.get(PROPERTIES).getAsJsonObject().remove(PROTOCOL_DESC_KEY);
+ getProperties(adapter).remove(FORMAT_DESC_KEY);
+ getProperties(adapter).remove(PROTOCOL_DESC_KEY);
- couchDbClient.update(adapter);
+ return adapter;
+ }
- LOG.info("Successfully migrated adapter {}", adapterName);
+ private JsonObject getProperties(JsonObject object) {
+ return importMode ? object : object.get(PROPERTIES).getAsJsonObject();
}
private void migrateProtocolDescription(JsonObject adapter,
JsonObject protocolDescription) {
- JsonArray config =
adapter.get(PROPERTIES).getAsJsonObject().get(CONFIG_KEY).getAsJsonArray();
+ JsonArray config = getProperties(adapter).get(CONFIG_KEY).getAsJsonArray();
JsonArray protocolDescriptionConfig =
protocolDescription.get(CONFIG_KEY).getAsJsonArray();
protocolDescriptionConfig.forEach(config::add);
}
private void migrateFormatDescription(JsonObject adapter,
JsonObject formatDescription) {
- var adapterConfig = adapter
- .get(PROPERTIES)
- .getAsJsonObject()
+ var adapterConfig = getProperties(adapter)
.get(CONFIG_KEY)
.getAsJsonArray();
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/FormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/IAdapterConverter.java
similarity index 84%
copy from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/FormatMigrator.java
copy to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/IAdapterConverter.java
index be23ba065..db799c2f1 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/FormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/IAdapterConverter.java
@@ -16,11 +16,11 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration;
import com.google.gson.JsonObject;
-public interface FormatMigrator {
+public interface IAdapterConverter {
- void migrate(JsonObject newFormatProperties);
+ JsonObject convert(JsonObject adapterDescription);
}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/MigrationHelpers.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/MigrationHelpers.java
similarity index 79%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/MigrationHelpers.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/MigrationHelpers.java
index 8e7398520..d518086e9 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/MigrationHelpers.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/MigrationHelpers.java
@@ -16,9 +16,9 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.migrator;
+package org.apache.streampipes.model.connect.adapter.migration;
-import
org.apache.streampipes.service.core.migrations.v093.utils.AdapterMigrationUtils;
+import
org.apache.streampipes.model.connect.adapter.migration.utils.AdapterModels;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
@@ -40,12 +40,13 @@ public class MigrationHelpers {
return adapter.get(REV).getAsString();
}
- public void updateType(JsonObject adapter) {
- adapter.add("type", new JsonPrimitive(AdapterMigrationUtils.NEW_MODEL));
+ public void updateType(JsonObject adapter,
+ String typeFieldName) {
+ adapter.add(typeFieldName, new JsonPrimitive(AdapterModels.NEW_MODEL));
}
public void updateFieldType(JsonObject adapter) {
- adapter.add("field_type", new
JsonPrimitive(AdapterMigrationUtils.NEW_MODEL));
+ adapter.add("field_type", new JsonPrimitive(AdapterModels.NEW_MODEL));
}
public String getAdapterName(JsonObject adapter) {
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/EmptyFormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/SpecificAdapterConverter.java
similarity index 61%
copy from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/EmptyFormatMigrator.java
copy to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/SpecificAdapterConverter.java
index ad2c09f86..b584081a5 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/EmptyFormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/SpecificAdapterConverter.java
@@ -16,14 +16,25 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration;
import com.google.gson.JsonObject;
-public class EmptyFormatMigrator implements FormatMigrator {
+public class SpecificAdapterConverter implements IAdapterConverter {
+
+ private final MigrationHelpers helpers;
+ private final String typeFieldName;
+
+ public SpecificAdapterConverter(boolean importMode) {
+ this.helpers = new MigrationHelpers();
+ this.typeFieldName = importMode ? "@class" : "type";
+ }
@Override
- public void migrate(JsonObject newFormatProperties) {
+ public JsonObject convert(JsonObject adapter) {
+ helpers.updateType(adapter, typeFieldName);
+ helpers.updateFieldType(adapter);
+ return adapter;
}
}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/CsvFormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/CsvFormatMigrator.java
similarity index 96%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/CsvFormatMigrator.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/CsvFormatMigrator.java
index 80201eaa0..e7365d98e 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/CsvFormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/CsvFormatMigrator.java
@@ -16,7 +16,7 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration.format;
import com.google.gson.JsonObject;
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/EmptyFormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/EmptyFormatMigrator.java
similarity index 93%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/EmptyFormatMigrator.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/EmptyFormatMigrator.java
index ad2c09f86..477e07312 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/EmptyFormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/EmptyFormatMigrator.java
@@ -16,7 +16,7 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration.format;
import com.google.gson.JsonObject;
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/FormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/FormatMigrator.java
similarity index 92%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/FormatMigrator.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/FormatMigrator.java
index be23ba065..e6bf46cdc 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/FormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/FormatMigrator.java
@@ -16,7 +16,7 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration.format;
import com.google.gson.JsonObject;
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/JsonFormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/JsonFormatMigrator.java
similarity index 84%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/JsonFormatMigrator.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/JsonFormatMigrator.java
index d1741ef9b..aefa2f471 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/JsonFormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/JsonFormatMigrator.java
@@ -16,16 +16,16 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration.format;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers;
+import org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.DocumentKeys.ALTERNATIVES;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.DocumentKeys.INTERNAL_NAME;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_KEY_NEW_KEY;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.DocumentKeys.ALTERNATIVES;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.DocumentKeys.INTERNAL_NAME;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.FormatIds.JSON_ARRAY_KEY_NEW_KEY;
public class JsonFormatMigrator implements FormatMigrator {
@@ -67,7 +67,5 @@ public class JsonFormatMigrator implements FormatMigrator {
}
}
});
-
-
}
}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/XmlFormatMigrator.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/XmlFormatMigrator.java
similarity index 95%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/XmlFormatMigrator.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/XmlFormatMigrator.java
index d5c7d7bee..c6a44a8d8 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/format/XmlFormatMigrator.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/format/XmlFormatMigrator.java
@@ -16,7 +16,7 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.format;
+package org.apache.streampipes.model.connect.adapter.migration.format;
import com.google.gson.JsonObject;
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/AdapterMigrationUtils.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/AdapterModels.java
similarity index 66%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/AdapterMigrationUtils.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/AdapterModels.java
index 891c033d5..07833dc0b 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/AdapterMigrationUtils.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/AdapterModels.java
@@ -16,26 +16,21 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.utils;
-
-import
org.apache.streampipes.service.core.migrations.v093.migrator.AdapterMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.GenericAdapterMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.SpecificAdapterMigrator;
+package org.apache.streampipes.model.connect.adapter.migration.utils;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-public class AdapterMigrationUtils {
+public class AdapterModels {
- private static final String GENERIC_SET =
+ public static final String GENERIC_SET =
"org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription";
- private static final String SPECIFIC_SET =
+ public static final String SPECIFIC_SET =
"org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription";
- private static final String GENERIC_STREAM =
+ public static final String GENERIC_STREAM =
"org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription";
- private static final String SPECIFIC_STREAM =
+ public static final String SPECIFIC_STREAM =
"org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription";
public static final String NEW_MODEL =
@@ -56,12 +51,11 @@ public class AdapterMigrationUtils {
deprecatedAdapterStreamClasses.stream())
.collect(Collectors.toList());
- public static AdapterMigrator getAdapterMigrator(String adapterType) {
- if (adapterType.equals(GENERIC_STREAM)) {
- return new GenericAdapterMigrator(new MigrationHelpers());
- } else {
- return new SpecificAdapterMigrator(new MigrationHelpers());
- }
+ public static boolean shouldMigrate(String adapterClassName) {
+ return deprecatedAdapterClasses.contains(adapterClassName);
}
+ public static boolean isSetAdapter(String adapterClassName) {
+ return
AdapterModels.deprecatedAdapterSetClasses.contains(adapterClassName);
+ }
}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/DocumentKeys.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/DocumentKeys.java
similarity index 93%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/DocumentKeys.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/DocumentKeys.java
index 6339c97e4..757db6299 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/DocumentKeys.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/DocumentKeys.java
@@ -16,7 +16,7 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.utils;
+package org.apache.streampipes.model.connect.adapter.migration.utils;
public class DocumentKeys {
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/FormatIds.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/FormatIds.java
similarity index 96%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/FormatIds.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/FormatIds.java
index 9d8fc539f..29bce717f 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/FormatIds.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/FormatIds.java
@@ -16,7 +16,7 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.utils;
+package org.apache.streampipes.model.connect.adapter.migration.utils;
public class FormatIds {
public static final String JSON = "Json";
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/GenericAdapterUtils.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/GenericAdapterUtils.java
similarity index 97%
rename from
streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/GenericAdapterUtils.java
rename to
streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/GenericAdapterUtils.java
index c19523862..b4aed57cd 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/utils/GenericAdapterUtils.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/migration/utils/GenericAdapterUtils.java
@@ -16,16 +16,16 @@
*
*/
-package org.apache.streampipes.service.core.migrations.v093.utils;
+package org.apache.streampipes.model.connect.adapter.migration.utils;
-import
org.apache.streampipes.service.core.migrations.v093.format.FormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers;
+import org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers;
+import
org.apache.streampipes.model.connect.adapter.migration.format.FormatMigrator;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.DocumentKeys.INTERNAL_NAME;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.DocumentKeys.INTERNAL_NAME;
public class GenericAdapterUtils {
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterBackupWriter.java
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterBackupWriter.java
index c97e8eded..a03d479a8 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterBackupWriter.java
+++
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterBackupWriter.java
@@ -18,7 +18,7 @@
package org.apache.streampipes.service.core.migrations.v093;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers;
+import org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers;
import com.google.gson.JsonObject;
import org.lightcouch.CouchDbClient;
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterMigration.java
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterMigration.java
index b02403c0e..7e8d29824 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterMigration.java
+++
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/AdapterMigration.java
@@ -18,9 +18,12 @@
package org.apache.streampipes.service.core.migrations.v093;
+import org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers;
+import
org.apache.streampipes.model.connect.adapter.migration.utils.AdapterModels;
import org.apache.streampipes.service.core.migrations.Migration;
-import
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers;
-import
org.apache.streampipes.service.core.migrations.v093.utils.AdapterMigrationUtils;
+import
org.apache.streampipes.service.core.migrations.v093.migrator.AdapterMigrator;
+import
org.apache.streampipes.service.core.migrations.v093.migrator.GenericAdapterMigrator;
+import
org.apache.streampipes.service.core.migrations.v093.migrator.SpecificAdapterMigrator;
import org.apache.streampipes.storage.couchdb.utils.Utils;
import com.google.gson.JsonObject;
@@ -32,6 +35,8 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import static
org.apache.streampipes.model.connect.adapter.migration.utils.AdapterModels.GENERIC_STREAM;
+
public class AdapterMigration implements Migration {
private static final Logger LOG =
LoggerFactory.getLogger(AdapterMigration.class);
@@ -61,7 +66,7 @@ public class AdapterMigration implements Migration {
findDocsToMigrate(adapterInstanceClient, adapterInstanceUri,
adaptersToMigrate);
findDocsToMigrate(adapterDescriptionClient, adapterDescriptionUri,
adapterDescriptionsToDelete);
- return adaptersToMigrate.size() > 0 || adapterDescriptionsToDelete.size()
> 0;
+ return adaptersToMigrate.size() > 0 || adapterDescriptionsToDelete.size()
> 0;
}
private void findDocsToMigrate(CouchDbClient adapterClient,
@@ -73,7 +78,7 @@ public class AdapterMigration implements Migration {
rows.getAsJsonArray().forEach(row -> {
var doc = row.getAsJsonObject().get("doc").getAsJsonObject();
var docType = doc.get("type").getAsString();
- if (shouldMigrate(docType)) {
+ if (AdapterModels.shouldMigrate(docType)) {
collector.add(doc);
}
});
@@ -105,12 +110,10 @@ public class AdapterMigration implements Migration {
adaptersToMigrate.forEach(adapter -> {
var adapterType = adapter.get("type").getAsString();
- if (isSetAdapter(adapterType)) {
+ if (AdapterModels.isSetAdapter(adapterType)) {
LOG.warn("Data Set adapters are no longer supported and can't be
migrated - consult docs for an alternative");
} else {
- AdapterMigrationUtils
- .getAdapterMigrator(adapterType)
- .migrate(adapterInstanceClient, adapter);
+ getAdapterMigrator(adapterType).migrate(adapterInstanceClient,
adapter);
}
});
@@ -126,18 +129,11 @@ public class AdapterMigration implements Migration {
return client.getDBUri().toString() + "_all_docs" + "?include_docs=true";
}
- private boolean isSetAdapter(String adapterClassName) {
- return
AdapterMigrationUtils.deprecatedAdapterSetClasses.contains(adapterClassName);
- }
-
- private boolean shouldMigrate(String adapterClassName) {
- return
AdapterMigrationUtils.deprecatedAdapterClasses.contains(adapterClassName);
- }
-
- public static void main(String[] args) throws IOException {
- var migrator = new AdapterMigration();
- if (migrator.shouldExecute()) {
- migrator.executeMigration();
+ private AdapterMigrator getAdapterMigrator(String adapterType) {
+ if (adapterType.equals(GENERIC_STREAM)) {
+ return new GenericAdapterMigrator(new MigrationHelpers());
+ } else {
+ return new SpecificAdapterMigrator(new MigrationHelpers());
}
}
}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
index 18e1ea53f..a5be002fa 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
+++
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/GenericAdapterMigrator.java
@@ -18,122 +18,34 @@
package org.apache.streampipes.service.core.migrations.v093.migrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.CsvFormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.EmptyFormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.JsonFormatMigrator;
-import
org.apache.streampipes.service.core.migrations.v093.format.XmlFormatMigrator;
+import
org.apache.streampipes.model.connect.adapter.migration.GenericAdapterConverter;
+import
org.apache.streampipes.model.connect.adapter.migration.IAdapterConverter;
+import org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers;
-import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import org.lightcouch.CouchDbClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static
org.apache.streampipes.service.core.migrations.v093.migrator.MigrationHelpers.PROPERTIES;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.CSV;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.CSV_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.GEOJSON_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.GEOJSON_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.IMAGE;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.IMAGE_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_KEY_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_KEY_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_NO_KEY_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_ARRAY_NO_KEY_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_OBJECT_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.JSON_OBJECT_NEW_KEY;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.XML;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.FormatIds.XML_FORMAT_ID;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.GenericAdapterUtils.applyFormat;
-import static
org.apache.streampipes.service.core.migrations.v093.utils.GenericAdapterUtils.getFormatTemplate;
-
public class GenericAdapterMigrator implements AdapterMigrator {
private static final Logger LOG =
LoggerFactory.getLogger(GenericAdapterMigrator.class);
- private static final String PROTOCOL_DESC_KEY = "protocolDescription";
- private static final String FORMAT_DESC_KEY = "formatDescription";
- private static final String CONFIG_KEY = "config";
-
private final MigrationHelpers helpers;
+ private final IAdapterConverter converter;
public GenericAdapterMigrator(MigrationHelpers helpers) {
this.helpers = helpers;
+ this.converter = new GenericAdapterConverter(false);
}
@Override
public void migrate(CouchDbClient couchDbClient, JsonObject adapter) {
var adapterName = helpers.getAdapterName(adapter);
- helpers.updateType(adapter);
- helpers.updateFieldType(adapter);
-
- JsonObject formatDescription =
adapter.get(PROPERTIES).getAsJsonObject().get(FORMAT_DESC_KEY).getAsJsonObject();
- JsonObject protocolDescription =
adapter.get(PROPERTIES).getAsJsonObject().get(PROTOCOL_DESC_KEY).getAsJsonObject();
-
- migrateProtocolDescription(adapter, protocolDescription);
- migrateFormatDescription(adapter, formatDescription);
+ var convertedAdapter = converter.convert(adapter);
- adapter.get(PROPERTIES).getAsJsonObject().remove(FORMAT_DESC_KEY);
- adapter.get(PROPERTIES).getAsJsonObject().remove(PROTOCOL_DESC_KEY);
-
- couchDbClient.update(adapter);
+ couchDbClient.update(convertedAdapter);
LOG.info("Successfully migrated adapter {}", adapterName);
}
-
- private void migrateProtocolDescription(JsonObject adapter,
- JsonObject protocolDescription) {
- JsonArray config =
adapter.get(PROPERTIES).getAsJsonObject().get(CONFIG_KEY).getAsJsonArray();
- JsonArray protocolDescriptionConfig =
protocolDescription.get(CONFIG_KEY).getAsJsonArray();
- protocolDescriptionConfig.forEach(config::add);
- }
-
- private void migrateFormatDescription(JsonObject adapter,
- JsonObject formatDescription) {
- var adapterConfig = adapter
- .get(PROPERTIES)
- .getAsJsonObject()
- .get(CONFIG_KEY)
- .getAsJsonArray();
-
- var formatTemplate = getFormatTemplate();
-
- if (isFormat(formatDescription, JSON_OBJECT_FORMAT_ID)) {
- var migrator = new JsonFormatMigrator(JSON_OBJECT_NEW_KEY,
formatDescription);
- applyFormat(JSON, formatTemplate, migrator);
- } else if (isFormat(formatDescription, JSON_ARRAY_KEY_FORMAT_ID)) {
- var migrator = new JsonFormatMigrator(JSON_ARRAY_KEY_NEW_KEY,
formatDescription);
- applyFormat(JSON, formatTemplate, migrator);
- } else if (isFormat(formatDescription, JSON_ARRAY_NO_KEY_FORMAT_ID)) {
- var migrator = new JsonFormatMigrator(JSON_ARRAY_NO_KEY_NEW_KEY,
formatDescription);
- applyFormat(JSON, formatTemplate, migrator);
- } else if (isFormat(formatDescription, CSV_FORMAT_ID)) {
- var migrator = new CsvFormatMigrator(formatDescription);
- applyFormat(CSV, formatTemplate, migrator);
- } else if (isFormat(formatDescription, GEOJSON_FORMAT_ID)) {
- var migrator = new JsonFormatMigrator(GEOJSON_NEW_KEY,
formatDescription);
- applyFormat(JSON, formatTemplate, migrator);
- } else if (isFormat(formatDescription, XML_FORMAT_ID)) {
- var migrator = new XmlFormatMigrator(formatDescription);
- applyFormat(XML, formatTemplate, migrator);
- } else if (isFormat(formatDescription, IMAGE_FORMAT_ID)) {
- applyFormat(IMAGE, formatTemplate, new EmptyFormatMigrator());
- } else {
- LOG.warn("Found unknown format {}", getAppId(formatDescription));
- }
-
- adapterConfig.add(formatTemplate);
- }
-
- private boolean isFormat(JsonObject formatDescription,
- String format) {
- return getAppId(formatDescription).equals(format);
- }
-
- private String getAppId(JsonObject formatDescription) {
- return formatDescription
- .getAsJsonObject()
- .get(MigrationHelpers.APP_ID).getAsString();
- }
}
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/SpecificAdapterMigrator.java
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/SpecificAdapterMigrator.java
index 19a458487..0c5a7765a 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/SpecificAdapterMigrator.java
+++
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v093/migrator/SpecificAdapterMigrator.java
@@ -18,6 +18,10 @@
package org.apache.streampipes.service.core.migrations.v093.migrator;
+import
org.apache.streampipes.model.connect.adapter.migration.IAdapterConverter;
+import org.apache.streampipes.model.connect.adapter.migration.MigrationHelpers;
+import
org.apache.streampipes.model.connect.adapter.migration.SpecificAdapterConverter;
+
import com.google.gson.JsonObject;
import org.lightcouch.CouchDbClient;
import org.slf4j.Logger;
@@ -27,19 +31,20 @@ public class SpecificAdapterMigrator implements
AdapterMigrator {
private static final Logger LOG =
LoggerFactory.getLogger(SpecificAdapterMigrator.class);
private final MigrationHelpers helpers;
+ private final IAdapterConverter converter;
public SpecificAdapterMigrator(MigrationHelpers helpers) {
this.helpers = helpers;
+ this.converter = new SpecificAdapterConverter(false);
}
@Override
public void migrate(CouchDbClient couchDbClient,
JsonObject adapter) {
var adapterName = helpers.getAdapterName(adapter);
- helpers.updateType(adapter);
- helpers.updateFieldType(adapter);
+ var convertedAdapter = converter.convert(adapter);
- couchDbClient.update(adapter);
+ couchDbClient.update(convertedAdapter);
LOG.info("Successfully migrated adapter {}", adapterName);
}