in timescaledb-connector/src/integration-test/java/com/epam/deltix/timebase/connector/service/timescale/TimescaleMigrationServiceTest.java [558:633]
public void testNonStaticChangeModifier() {
applyTimescaleSchema();
SchemaChangeMessage changeMessage = new SchemaChangeMessage();
SchemaDescriptorChangeAction alterDescriptorAction = new SchemaDescriptorChangeAction();
alterDescriptorAction.setChangeTypes(SchemaDescriptorChangeType.FIELDS_CHANGE);
DataFieldInfo previousFieldState = null;
ClassDescriptorInfo previousDescriptor = null;
ObjectArrayList<ClassDescriptorInfo> previousState = getDescriptorMessages();
for (ClassDescriptorInfo d : previousState) {
if (d.getName().equals("com.epam.deltix.timebase.connector.model.SecondTestClass")) {
RecordClassDescriptor rcd = (RecordClassDescriptor) d;
for (DataFieldInfo field : rcd.getDataFields()) {
if (field.getName().equals("secondLongValue")) {
previousFieldState = field;
}
}
previousDescriptor = rcd;
}
}
IntegerDataType longDataType = new IntegerDataType();
StaticDataField newField = new StaticDataField();
newField.setName("secondLongValue");
newField.setStaticValue("1237454");
newField.setDataType(longDataType);
DataFieldInfo newFieldState = null;
ClassDescriptorInfo newDescriptor = null;
ObjectArrayList<ClassDescriptorInfo> newState = getDescriptorMessages();
for (ClassDescriptorInfo d : newState) {
if (d.getName().equals("com.epam.deltix.timebase.connector.model.SecondTestClass")) {
RecordClassDescriptor rcd = (RecordClassDescriptor) d;
for (DataFieldInfo field : rcd.getDataFields()) {
if (field.getName().equals("secondLongValue")) {
newFieldState = field;
}
}
rcd.getDataFields().remove(newFieldState);
newFieldState = newField;
rcd.getDataFields().add(newFieldState);
newDescriptor = rcd;
}
}
changeMessage.setNewState(newState);
changeMessage.setPreviousState(previousState);
alterDescriptorAction.setPreviousState(previousDescriptor);
alterDescriptorAction.setNewState(newDescriptor);
ObjectArrayList<SchemaFieldChangeActionInfo> filedActions = new ObjectArrayList<>();
SchemaFieldChangeAction filedAction = new SchemaFieldChangeAction();
filedAction.setChangeTypes(SchemaFieldChangeType.MODIFIER_CHANGE);
filedAction.setNewState(newFieldState);
filedAction.setPreviousState(previousFieldState);
SchemaFieldDataTransformation filedTransformation = new SchemaFieldDataTransformation();
filedTransformation.setDefaultValue("1237454");
filedAction.setDataTransformation(filedTransformation);
filedActions.add(filedAction);
alterDescriptorAction.setFieldChangeActions(filedActions);
ObjectArrayList<SchemaDescriptorChangeActionInfo> actions = new ObjectArrayList<>();
actions.add(alterDescriptorAction);
changeMessage.setDescriptorChangeActions(actions);
migrationService.apply(changeMessage, "events");
}