I would be interested in using java class files for configuring liquibase instead of xml. A bit like spring javaconfig can replace spring xml.
The main advantage would be the ability to run java code inside a changeset. And possibly using the java compiler to ensure correct syntax…
Has anybody looked into this or thought about this?
I checked out the trunk and will start experimenting in this direction. From what I see, I could implement a new ChangeLogParser which would receive a classname or package name as physical location and either load the class directly or use some kind of classpath scanning to find the changesets.
A class implementing a given interface could be a changeset which would return the list of changes, etc.
Maybe annotations could provide the metadata such as dependencies between changesets, preconditions. Or maybe methods on the interface.
I’m only beginning to think about this and wanted to see if others had any idea about that.