diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java index 4b2afb3b1251..f5a119679537 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java @@ -95,7 +95,9 @@ private WorkflowHandler(OpenMetadataApplicationConfig config, boolean isMigratio processEngineConfiguration.setDatabaseType(ProcessEngineConfiguration.DATABASE_TYPE_POSTGRES); } - initializeExpressionMap(config); + if (!isMigrationContext) { + initializeExpressionMap(config); + } initializeNewProcessEngine(processEngineConfiguration); } diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/WorkflowHandlerSchemaUpdateTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/WorkflowHandlerSchemaUpdateTest.java index 107de45e2ee1..82a3c3dd4b2f 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/WorkflowHandlerSchemaUpdateTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/WorkflowHandlerSchemaUpdateTest.java @@ -13,6 +13,7 @@ package org.openmetadata.service.governance.workflows; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -86,6 +87,31 @@ void runtimeModeWrapsFlowableWrongDbExceptionWithActionableMessage() { } } + @Test + void migrationModeDoesNotLoadPipelineServiceClient() { + ProcessEngine mockEngine = mock(ProcessEngine.class, RETURNS_DEEP_STUBS); + + try (MockedConstruction ignored = + mockConstruction( + StandaloneProcessEngineConfiguration.class, + (mock, ctx) -> when(mock.buildProcessEngine()).thenReturn(mockEngine)); + MockedStatic ignoredEngines = mockStatic(ProcessEngines.class); + MockedStatic entityMock = mockStatic(Entity.class); + MockedStatic pscMock = + mockStatic(PipelineServiceClientFactory.class)) { + + setupEntityMock(entityMock); + pscMock + .when(() -> PipelineServiceClientFactory.createPipelineServiceClient(any())) + .thenThrow(new RuntimeException("pipeline client class not on classpath")); + + assertDoesNotThrow(() -> WorkflowHandler.initialize(buildMockConfig(), true)); + pscMock.verify( + () -> PipelineServiceClientFactory.createPipelineServiceClient(any()), + org.mockito.Mockito.never()); + } + } + @Test void migrationModeSetsDbSchemaUpdateTrue() { ProcessEngine mockEngine = mock(ProcessEngine.class, RETURNS_DEEP_STUBS);