Obfuscated pro classes in liquibase-core cause problems on Java 11
Description
Environment
liquibase-core from Maven Central used with Java 11
Activity
Filip Hrisafov December 14, 2019 at 6:15 PM
Thanks for looking into the Java 11 problem.
As for the binary. In my opinion having a binary called liquibase-pro
that contains core and pro into one is extremely easy for any user. I don’t think that your pro customers would mind to use a different dependency for it. The reason why I am saying this is because I myself work for an Open Source Company where we have open source and enterprise products. I would even say that having a different binary make it easier for you to have different release schedules for the OSS and Pro versions. On top of all of that is the licensing, currently the liquibase-core jar is Apache 2.0 licensed, this means that your pro code inside is also licensed like that.
Former user December 13, 2019 at 10:12 PM
Thanks for the bug ticket - we will investigate and get a fix out ASAP.
With regard to how we bundled the pro code into the binary, that was a decision that required a lot of input from a lot of different people. We considered shipping it separately, but we felt that the downside of including it was outweighed by the ease of use for pro customers. That may change over time.
This is similar to CORE-3503. However, my problem is with something else.
Not working with Java 11
The pro classes do not work with Java 11. Liquibase 3.8.0 was working completely fine on Java 11. See https://github.com/spring-projects/spring-boot/issues/19350 for more information about that.
Obfuscated pro classes in OSS
I completely support the decision of the team to add enterprise support and licensing for Liquibase. However, I am completely against mixing OSS and Enteprise into a single delivery package. Liquibase is extremely pluggable. Therefore I do not understand the decision of the Liquibase team to include enterprise features and a license check in an OSS Apache 2.0 release.
I would strongly advise the team to reconsider their decision and create a new enteprise jar that would contain the features with paid support. It can be an additional jar with the extra classes or a full jar with everything in it. This is up to you.