Skip to content

Commit aca0290

Browse files
authored
fix(workflows): skip PipelineServiceClient initialization in migrate context (#27522)
1 parent 5f8098b commit aca0290

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ private WorkflowHandler(OpenMetadataApplicationConfig config, boolean isMigratio
9595
processEngineConfiguration.setDatabaseType(ProcessEngineConfiguration.DATABASE_TYPE_POSTGRES);
9696
}
9797

98-
initializeExpressionMap(config);
98+
if (!isMigrationContext) {
99+
initializeExpressionMap(config);
100+
}
99101
initializeNewProcessEngine(processEngineConfiguration);
100102
}
101103

openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/WorkflowHandlerSchemaUpdateTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
package org.openmetadata.service.governance.workflows;
1515

16+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
1617
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
1718
import static org.junit.jupiter.api.Assertions.assertThrows;
1819
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -86,6 +87,31 @@ void runtimeModeWrapsFlowableWrongDbExceptionWithActionableMessage() {
8687
}
8788
}
8889

90+
@Test
91+
void migrationModeDoesNotLoadPipelineServiceClient() {
92+
ProcessEngine mockEngine = mock(ProcessEngine.class, RETURNS_DEEP_STUBS);
93+
94+
try (MockedConstruction<StandaloneProcessEngineConfiguration> ignored =
95+
mockConstruction(
96+
StandaloneProcessEngineConfiguration.class,
97+
(mock, ctx) -> when(mock.buildProcessEngine()).thenReturn(mockEngine));
98+
MockedStatic<ProcessEngines> ignoredEngines = mockStatic(ProcessEngines.class);
99+
MockedStatic<Entity> entityMock = mockStatic(Entity.class);
100+
MockedStatic<PipelineServiceClientFactory> pscMock =
101+
mockStatic(PipelineServiceClientFactory.class)) {
102+
103+
setupEntityMock(entityMock);
104+
pscMock
105+
.when(() -> PipelineServiceClientFactory.createPipelineServiceClient(any()))
106+
.thenThrow(new RuntimeException("pipeline client class not on classpath"));
107+
108+
assertDoesNotThrow(() -> WorkflowHandler.initialize(buildMockConfig(), true));
109+
pscMock.verify(
110+
() -> PipelineServiceClientFactory.createPipelineServiceClient(any()),
111+
org.mockito.Mockito.never());
112+
}
113+
}
114+
89115
@Test
90116
void migrationModeSetsDbSchemaUpdateTrue() {
91117
ProcessEngine mockEngine = mock(ProcessEngine.class, RETURNS_DEEP_STUBS);

0 commit comments

Comments
 (0)