DB2 on z/OS not functional with latest code in master branch (3.9-SNAPSHOT)

Description

In my quest to find a version of liquibase with functioning DB2 on z/OS support, I combed through the github repository commit history, and it seemed to have appeared in revision 9ceff417f97f97096a740fdbc04136a4db2befe2 during the 3.5.3 release cycle several years ago. These changes were clobbered by a pull request a couple of months later, so for a long time I have been using a snapshot of liquibase 3.5.3-SNAPSHOT from the mentioned revision, with some bug fixes I had to apply to make it function for my needs.

Low and behold, it seems someone found that old commit and re-introduced functioning DB2 on z/OS support sometime in the last month or two (thank you!). Unfortunately they missed a couple of things, likely due to rewritten APIs and lack of mainframe infrastructure to test on, and one of the bugs I had to fix in the old version remained in the new version.

I am not sure about my employer's policy on github access as it has been blocked in the past, so in lieu of forking liquibase, creating a pull request with these changes, and possibly being led out of the building in handcuffs, I am providing them as an old school patch (code was pulled from master, 3.9.0-SNAPSHOT as of 2:00pm 10/10/2019). Note these have been tested only to my needs, which is creating baseline change logs for transformation and later ingestion, so it is possible there are other areas that need work for this to fully be functional, but time permitting I will see if I can further exercise the API.

Let me know if you need additional information or can guide me in how to test this more thoroughly in such a way it doesn't distract from my normal duties.

Environment

I am leveraging liquibase as a library for a project I am working on, so my usage of it is programmatic, e.g.

{{
Database database = CommandLineUtils.createDatabaseObject(...);
Liquibase liquibase = new Liquibase(...);
ChangeExecListener listener = ChangeExecListenerUtils.getChangeExecListener(...);
liquibase.setChangeExecListener(listener);
liquibase.update(...);
database.close();
}}

I have it as a maven dependency to the project I am working on.

Status

Assignee

Unassigned

Reporter

Richard Siomporas

Labels

None

Components

Affects versions

Priority

Major
Configure