-
Bug Report
-
Resolution: Fixed
-
L3 - Default
-
None
The error message for migration validation errors are currently useless. Make them useful.
Validation
- PEC list of validators
- Validate equality (configurable)
- minimal interface
What is validated
- Activity Validator (not configurable)
- Compile -> Migration Plan/Instruction Validator
- Runtime -> Migration (Instance) validator
Equality Validator
- Interface:
- two activities as input -> boolean as output
- Assumption: unique equality
class MigrationActivityComparator { boolean equal(ActivityImpl source, ActivityImpl target); }
Validation at Compile/Design time
Generation
- Generator only allows same scope for example
- Validate that an activity is supported (Activity Validator)
- Validate that two activities are equal (Equal Validator)
- Validate that the set of instructions is valid (Instruction Validator)
- remove invalid instructions from set
class MigrationActivityValidator { boolean valid(MigratingActivity source); } class MigrationInstructionValidator { void valid(ValidatingInstruction instruction, ValidatingMigrationPlan plan ValidationReport report); }
Creation
- Validate set of instructions and explode
Validation at Runtime
- Check that an actual instance can be migrated by the plan, i.e. async,
activity mapping missing
class MigrationInstructionInstanceValidator<T extends MigratingInstance> { void valid(ValidatingMigratingProcessInstance processInstance, T migratingInstance, ValidationReport report); }