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 851b3173b60..047c037e6c4 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 @@ -144,6 +144,10 @@ private ApplicationJson migrateServerSchema(ApplicationJson applicationJson) { case 6: MigrationHelperMethods.ensureXmlParserPresenceInCustomJsLibList(applicationJson); applicationJson.setServerSchemaVersion(7); + case 7: + case 8: + MigrationHelperMethods.migrateThemeSettingsForAnvil(applicationJson); + applicationJson.setServerSchemaVersion(9); 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 18365ebda33..90ad2a2a3b8 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 @@ -1,7 +1,5 @@ package com.appsmith.server.migrations; -import com.appsmith.external.annotations.FeatureFlagged; -import com.appsmith.external.enums.FeatureFlagEnum; import org.springframework.stereotype.Component; /** @@ -20,8 +18,7 @@ public class JsonSchemaVersions extends JsonSchemaVersionsFallback { * @return an Integer which is server version */ @Override - @FeatureFlagged(featureFlagName = FeatureFlagEnum.release_git_autocommit_feature_enabled) public Integer getServerVersion() { - return super.getServerVersion() + 1; + return super.getServerVersion(); } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersionsFallback.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersionsFallback.java index ac8f0fe579a..63b6c7e7d4e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersionsFallback.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/JsonSchemaVersionsFallback.java @@ -4,7 +4,7 @@ @Component public class JsonSchemaVersionsFallback { - private static final Integer serverVersion = 7; + private static final Integer serverVersion = 9; public static final Integer clientVersion = 1; public Integer getServerVersion() { 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 c4592830a8e..cf18759a867 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 @@ -7,6 +7,8 @@ import com.appsmith.external.models.Property; import com.appsmith.server.constants.ApplicationConstants; import com.appsmith.server.constants.ResourceModes; +import com.appsmith.server.domains.Application; +import com.appsmith.server.domains.ApplicationDetail; import com.appsmith.server.domains.ApplicationPage; import com.appsmith.server.domains.CustomJSLib; import com.appsmith.server.domains.NewAction; @@ -1181,4 +1183,52 @@ private static Set getInvalidDynamicBindingPathsInAction( } return pathsToRemove; } + + public static void migrateThemeSettingsForAnvil(ApplicationJson applicationJson) { + if (applicationJson == null || applicationJson.getExportedApplication() == null) { + return; + } + + Application exportedApplication = applicationJson.getExportedApplication(); + ApplicationDetail applicationDetail = exportedApplication.getApplicationDetail(); + ApplicationDetail unpublishedApplicationDetail = exportedApplication.getUnpublishedApplicationDetail(); + + if (applicationDetail == null) { + applicationDetail = new ApplicationDetail(); + exportedApplication.setApplicationDetail(applicationDetail); + } + + if (unpublishedApplicationDetail == null) { + unpublishedApplicationDetail = new ApplicationDetail(); + exportedApplication.setUnpublishedApplicationDetail(unpublishedApplicationDetail); + } + + Application.ThemeSetting themeSetting = applicationDetail.getThemeSetting(); + Application.ThemeSetting unpublishedThemeSetting = unpublishedApplicationDetail.getThemeSetting(); + if (themeSetting == null) { + themeSetting = new Application.ThemeSetting(); + } + + if (unpublishedThemeSetting == null) { + unpublishedThemeSetting = new Application.ThemeSetting(); + } + + applicationDetail.setThemeSetting(themeSetting); + unpublishedApplicationDetail.setThemeSetting(unpublishedThemeSetting); + } + + public static void setThemeSettings(Application.ThemeSetting themeSetting) { + if (themeSetting.getAppMaxWidth() == null) { + themeSetting.setAppMaxWidth(Application.ThemeSetting.AppMaxWidth.LARGE); + } + + // since these are primitive values we don't have concept of null, hence putting it to the default of 1. + if (themeSetting.getDensity() == 0) { + themeSetting.setDensity(1); + } + + if (themeSetting.getSizing() == 0) { + themeSetting.setSizing(1); + } + } } diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/imports/internal/ImportServiceTests.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/imports/internal/ImportServiceTests.java index e222dfbaa83..8cf1762d824 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/imports/internal/ImportServiceTests.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/imports/internal/ImportServiceTests.java @@ -2505,8 +2505,6 @@ public void discardChange_addNavigationAndThemeSettingAfterImport_addedNavigatio StepVerifier.create(resultMonoWithDiscardOperation) .assertNext(application -> { assertThat(application.getWorkspaceId()).isNotNull(); - assertThat(application.getUnpublishedApplicationDetail()).isNull(); - assertThat(application.getPublishedApplicationDetail()).isNull(); }) .verifyComplete(); } diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaMigrationTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaMigrationTest.java index 1bd93c36e22..d31c18fcdcb 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaMigrationTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaMigrationTest.java @@ -78,9 +78,6 @@ public void migrateArtifactToLatestSchema_whenFeatureFlagIsOn_returnsIncremented gitFileSystemTestHelper.getApplicationJson(this.getClass().getResource("application.json")); ArtifactExchangeJson artifactExchangeJson = jsonSchemaMigration.migrateArtifactToLatestSchema(applicationJson); - - assertThat(artifactExchangeJson.getServerSchemaVersion()) - .isNotEqualTo(jsonSchemaVersionsFallback.getServerVersion()); assertThat(artifactExchangeJson.getServerSchemaVersion()).isEqualTo(jsonSchemaVersions.getServerVersion()); assertThat(artifactExchangeJson.getClientSchemaVersion()).isEqualTo(jsonSchemaVersions.getClientVersion()); assertThat(artifactExchangeJson.getClientSchemaVersion()) @@ -103,8 +100,6 @@ public void migrateApplicationJsonToLatestSchema_whenFeatureFlagIsOn_returnsIncr jsonSchemaMigration.migrateApplicationJsonToLatestSchema(applicationJson); StepVerifier.create(applicationJsonMono) .assertNext(appJson -> { - assertThat(appJson.getServerSchemaVersion()) - .isNotEqualTo(jsonSchemaVersionsFallback.getServerVersion()); assertThat(appJson.getServerSchemaVersion()).isEqualTo(jsonSchemaVersions.getServerVersion()); assertThat(appJson.getClientSchemaVersion()).isEqualTo(jsonSchemaVersions.getClientVersion()); assertThat(appJson.getClientSchemaVersion()) diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaVersionsTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaVersionsTest.java index 358d86c7aa0..2f60535b051 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaVersionsTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/migrations/JsonSchemaVersionsTest.java @@ -50,9 +50,7 @@ public void getServerVersion_whenFeatureFlagIsOn_returnsIncremented() { Mockito.when(featureFlagService.getCachedTenantFeatureFlags()) .thenAnswer((Answer) invocations -> cachedFeatures); - assertThat(jsonSchemaVersions.getServerVersion()).isNotEqualTo(jsonSchemaVersionsFallback.getServerVersion()); - assertThat(jsonSchemaVersions.getServerVersion()).isEqualTo(jsonSchemaVersionsFallback.getServerVersion() + 1); - + assertThat(jsonSchemaVersions.getServerVersion()).isEqualTo(jsonSchemaVersionsFallback.getServerVersion()); assertThat(jsonSchemaVersions.getClientVersion()).isEqualTo(jsonSchemaVersionsFallback.getClientVersion()); } }