У меня есть требование для реализации интерфейса CustomSqlChange во время выполнения моего сценария liquibase. Ниже приведена моя запись yaml changeSet:
changeSet:
customChange:
param:
_name: file
_value: "/com/example/data/user.csv"
_class: "com.example.MyClass"
id: id
author: abj
failOnError: true
Реализация для MyClass выглядит следующим образом:
package com.example;
import liquibase.change.custom.CustomSqlChange;
import liquibase.change.custom.CustomSqlRollback;
import liquibase.database.Database;
import liquibase.exception.CustomChangeException;
import liquibase.exception.RollbackImpossibleException;
import liquibase.exception.SetupException;
import liquibase.exception.ValidationErrors;
import liquibase.resource.ResourceAccessor;
import liquibase.statement.SqlStatement;
public class MyClass implements CustomSqlChange, CustomSqlRollback {
//to hold the parameter value
private String file;
private ResourceAccessor resourceAccessor;
@Override
public String getConfirmationMessage() {
return "Confirmation Message from Custom SQL Change";
}
@Override
public void setUp() throws SetupException {
}
@Override
public void setFileOpener(ResourceAccessor resourceAccessor) {
this.resourceAccessor = resourceAccessor;
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
@Override
public ValidationErrors validate(Database database) {
return null;
}
@Override
public SqlStatement[] generateStatements(Database database) throws CustomChangeException {
return null;
}
@Override
public SqlStatement[] generateRollbackStatements(Database database)
throws CustomChangeException, RollbackImpossibleException {
return null;
}}
Мой сценарий с обычной жидкой фазой работает успешно. У меня есть точка останова в методе generateStatements, но поток никогда не доходит до точки останова. Ни один из регистраторов не печатается для определенного набора изменений во время запуска приложения. Я что-то пропустил?