diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/jslibs/imports/CustomJSLibImportableServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/jslibs/imports/CustomJSLibImportableServiceCEImpl.java index f1d1ff24ff..a05597421e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/jslibs/imports/CustomJSLibImportableServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/jslibs/imports/CustomJSLibImportableServiceCEImpl.java @@ -1,6 +1,5 @@ package com.appsmith.server.jslibs.imports; -import com.appsmith.server.constants.ApplicationConstants; import com.appsmith.server.domains.Application; import com.appsmith.server.domains.CustomJSLib; import com.appsmith.server.domains.Workspace; @@ -37,8 +36,6 @@ public class CustomJSLibImportableServiceCEImpl implements ImportableServiceCE(); } - ensureXmlParserPresenceInCustomJsLibList(customJSLibs); - return Flux.fromIterable(customJSLibs) .flatMap(customJSLib -> { customJSLib.setId(null); @@ -56,30 +53,4 @@ public class CustomJSLibImportableServiceCEImpl implements ImportableServiceCE customJSLibList) { - boolean isXmlParserLibFound = false; - for (CustomJSLib customJSLib : customJSLibList) { - if (!customJSLib.getUidString().equals(ApplicationConstants.XML_PARSER_LIBRARY_UID)) { - continue; - } - - isXmlParserLibFound = true; - break; - } - - if (!isXmlParserLibFound) { - CustomJSLib xmlParserJsLib = ApplicationConstants.getDefaultParserCustomJsLibCompatibilityDTO(); - customJSLibList.add(xmlParserJsLib); - } - } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaMigration.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaMigration.java index d2b53919c8..2a0a5b6df4 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaMigration.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaMigration.java @@ -66,6 +66,9 @@ public class JsonSchemaMigration { case 5: MigrationHelperMethods.migrateGoogleSheetsActionsToUqi(applicationJson); applicationJson.setServerSchemaVersion(6); + case 6: + MigrationHelperMethods.ensureXmlParserPresenceInCustomJsLibList(applicationJson); + applicationJson.setServerSchemaVersion(7); default: // Unable to detect the serverSchema } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersions.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersions.java index 7ce889a98f..2b81d9a020 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersions.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersions.java @@ -12,6 +12,6 @@ import lombok.Getter; */ @Getter public class JsonSchemaVersions { - public static final Integer serverVersion = 6; + public static final Integer serverVersion = 7; public static final Integer clientVersion = 1; } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java index a361eb3965..b7448f8491 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java @@ -3,9 +3,11 @@ package com.appsmith.server.migrations; import com.appsmith.external.models.ActionDTO; import com.appsmith.external.models.BaseDomain; import com.appsmith.external.models.InvisibleActionFields; +import com.appsmith.server.constants.ApplicationConstants; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.ResourceModes; import com.appsmith.server.domains.ApplicationPage; +import com.appsmith.server.domains.CustomJSLib; import com.appsmith.server.domains.NewAction; import com.appsmith.server.domains.Plugin; import com.appsmith.server.domains.QUser; @@ -256,4 +258,37 @@ public class MigrationHelperMethods { where(FieldName.DELETED_AT).exists(false), where(FieldName.DELETED_AT).is(null))); } + + /** + * This method takes customJSLibList from application JSON, checks if an entry for XML parser exists, + * otherwise adds the entry. + * This has been done to add the xmlParser entry in imported application as appsmith is stopping native support + * for xml parser. + * Read More: https://github.com/appsmithorg/appsmith/pull/28012 + * + * @param applicationJson + */ + public static void ensureXmlParserPresenceInCustomJsLibList(ApplicationJson applicationJson) { + + if (CollectionUtils.isNullOrEmpty(applicationJson.getCustomJSLibList())) { + applicationJson.setCustomJSLibList(new ArrayList<>()); + } + + List customJSLibList = applicationJson.getCustomJSLibList(); + boolean isXmlParserLibFound = false; + + for (CustomJSLib customJSLib : customJSLibList) { + if (!customJSLib.getUidString().equals(ApplicationConstants.XML_PARSER_LIBRARY_UID)) { + continue; + } + + isXmlParserLibFound = true; + break; + } + + if (!isXmlParserLibFound) { + CustomJSLib xmlParserJsLib = ApplicationConstants.getDefaultParserCustomJsLibCompatibilityDTO(); + customJSLibList.add(xmlParserJsLib); + } + } }