Skip to content

Commit 2daf6cf

Browse files
committed
wip
1 parent 9750d92 commit 2daf6cf

File tree

4 files changed

+29
-12
lines changed

4 files changed

+29
-12
lines changed

data-migrator/core/src/main/java/io/camunda/migration/data/impl/history/migrator/JobMigrator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
package io.camunda.migration.data.impl.history.migrator;
99

1010
import static io.camunda.migration.data.impl.logging.HistoryMigratorLogs.SKIP_REASON_MISSING_PROCESS_INSTANCE;
11+
import static io.camunda.migration.data.impl.logging.HistoryMigratorLogs.SKIP_REASON_UNSUPPORTED_JOBS;
1112
import static io.camunda.migration.data.impl.logging.HistoryMigratorLogs.logMigratingJob;
1213
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_JOB;
1314
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_PROCESS_INSTANCE;
1415
import static io.camunda.migration.data.impl.util.ConverterUtil.getNextKey;
16+
import static org.camunda.bpm.engine.impl.jobexecutor.MessageJobDeclaration.ASYNC_AFTER;
17+
import static org.camunda.bpm.engine.impl.jobexecutor.MessageJobDeclaration.ASYNC_BEFORE;
1518

1619
import io.camunda.db.rdbms.read.domain.FlowNodeInstanceDbQuery;
1720
import io.camunda.db.rdbms.write.domain.FlowNodeInstanceDbModel;
@@ -27,6 +30,7 @@
2730
import java.util.function.Consumer;
2831
import java.util.function.Function;
2932
import org.camunda.bpm.engine.history.HistoricJobLog;
33+
import org.camunda.bpm.engine.impl.jobexecutor.MessageJobDeclaration;
3034
import org.springframework.stereotype.Service;
3135

3236
/**
@@ -81,6 +85,10 @@ public IdKeyMapper.TYPE getType() {
8185
public Long migrateTransactionally(final HistoricJobLog c7JobLog) {
8286
final String c7JobId = c7JobLog.getJobId();
8387
if (shouldMigrate(c7JobId, HISTORY_JOB)) {
88+
String jobDefinitionConfiguration = c7JobLog.getJobDefinitionConfiguration();
89+
if (ASYNC_BEFORE.equals(jobDefinitionConfiguration) && ASYNC_AFTER.equals(jobDefinitionConfiguration)) {
90+
throw new EntitySkippedException(c7JobLog, SKIP_REASON_UNSUPPORTED_JOBS); //TODO test case for non-async jobs
91+
}
8492
logMigratingJob(c7JobId);
8593

8694
final var jobKey = getNextKey();

data-migrator/core/src/main/java/io/camunda/migration/data/impl/logging/HistoryMigratorLogs.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class HistoryMigratorLogs {
4040
public static final String SKIP_REASON_UNSUPPORTED_CMMN_VARIABLES = "C7 CMMN variables not supported in C8.";
4141
public static final String SKIP_REASON_UNSUPPORTED_CMMN_TASKS = "C7 CMMN user tasks not supported in C8.";
4242
public static final String SKIP_REASON_MISSING_JOB_REFERENCE = "Missing job reference";
43+
public static final String SKIP_REASON_UNSUPPORTED_JOBS = "Only async-before and async-after jobs are supported for migration.";
4344

4445
// HistoryMigrator Messages
4546
public static final String MIGRATING = "Migrating {}s.";

data-migrator/qa/integration-tests/src/test/java/io/camunda/migration/data/qa/history/HistoryMigrationListSkippedTest.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@
77
*/
88
package io.camunda.migration.data.qa.history;
99

10-
import static io.camunda.migration.data.MigratorMode.LIST_SKIPPED;
1110
import static io.camunda.migration.data.impl.logging.HistoryMigratorLogs.SKIPPING;
1211
import static io.camunda.migration.data.impl.logging.HistoryMigratorLogs.SKIP_REASON_MISSING_PROCESS_DEFINITION;
1312
import static io.camunda.migration.data.impl.logging.HistoryMigratorLogs.SKIP_REASON_MISSING_PROCESS_INSTANCE;
1413
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE;
14+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_AUDIT_LOG;
15+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_DECISION_DEFINITION;
16+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_DECISION_INSTANCE;
17+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_DECISION_REQUIREMENT;
1518
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_FLOW_NODE;
19+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_FORM_DEFINITION;
1620
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_INCIDENT;
21+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_JOB;
1722
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_PROCESS_INSTANCE;
1823
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_USER_TASK;
1924
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_VARIABLE;
@@ -241,12 +246,13 @@ protected void verifySkippedEntitiesOutput(Map<String, List<String>> skippedEnti
241246
HISTORY_FLOW_NODE.getDisplayName(),
242247
HISTORY_USER_TASK.getDisplayName(),
243248
HISTORY_VARIABLE.getDisplayName(),
244-
TYPE.HISTORY_AUDIT_LOG.getDisplayName(),
249+
HISTORY_AUDIT_LOG.getDisplayName(),
250+
HISTORY_JOB.getDisplayName(),
245251
HISTORY_INCIDENT.getDisplayName(),
246-
TYPE.HISTORY_DECISION_DEFINITION.getDisplayName(),
247-
TYPE.HISTORY_DECISION_REQUIREMENT.getDisplayName(),
248-
TYPE.HISTORY_DECISION_INSTANCE.getDisplayName(),
249-
TYPE.HISTORY_FORM_DEFINITION.getDisplayName()
252+
HISTORY_DECISION_DEFINITION.getDisplayName(),
253+
HISTORY_DECISION_REQUIREMENT.getDisplayName(),
254+
HISTORY_DECISION_INSTANCE.getDisplayName(),
255+
HISTORY_FORM_DEFINITION.getDisplayName()
250256
};
251257

252258
assertThat(skippedEntitiesByType.keySet().toArray()).containsExactlyInAnyOrder(expectedEntityTypes);

data-migrator/qa/integration-tests/src/test/java/io/camunda/migration/data/qa/history/entity/HistoryJobTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
import static io.camunda.migration.data.constants.MigratorConstants.C8_DEFAULT_TENANT;
1111
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_JOB;
12+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_PROCESS_DEFINITION;
13+
import static io.camunda.migration.data.impl.persistence.IdKeyMapper.TYPE.HISTORY_PROCESS_INSTANCE;
1214
import static org.assertj.core.api.Assertions.assertThat;
1315

1416
import io.camunda.migration.data.qa.history.HistoryMigrationAbstractTest;
@@ -34,9 +36,9 @@ public void shouldMigrateJobsForAsyncBeforeTask() {
3436
managementService.executeJob(c7JobId);
3537

3638
// when: jobs and process instances are migrated
37-
historyMigrator.migrateProcessDefinitions();
38-
historyMigrator.migrateProcessInstances();
39-
historyMigrator.migrateJobs();
39+
historyMigrator.migrateByType(HISTORY_PROCESS_DEFINITION);
40+
historyMigrator.migrateByType(HISTORY_PROCESS_INSTANCE);
41+
historyMigrator.migrateByType(HISTORY_JOB);
4042

4143
// then: the process instance was migrated
4244
List<ProcessInstanceEntity> processInstances = searchHistoricProcessInstances("asyncBeforeUserTaskProcessId");
@@ -129,9 +131,9 @@ public void shouldDeduplicateJobsByJobId() {
129131
assertThat(jobLogCount).as("Should have multiple job log entries").isGreaterThan(1);
130132

131133
// when
132-
historyMigrator.migrateProcessDefinitions();
133-
historyMigrator.migrateProcessInstances();
134-
historyMigrator.migrateJobs();
134+
historyMigrator.migrateByType(HISTORY_PROCESS_DEFINITION);
135+
historyMigrator.migrateByType(HISTORY_PROCESS_INSTANCE);
136+
historyMigrator.migrateByType(HISTORY_JOB);
135137

136138
// then: only ONE C8 job entry created despite multiple log entries (tracked by job ID)
137139
List<ProcessInstanceEntity> processInstances = searchHistoricProcessInstances("failingServiceTaskProcessId");

0 commit comments

Comments
 (0)