CDI classes released in liquibase-core

Description

Liquibase 3.8.1 includes the liquibase-cdi classes in the liquibase-core jar. This obliges us to use liquibase with CDI integration, which we do not want. Trying to start our application with 3.8.1 now gives the error below. Please provide a way to use liquibase without obligatory CDI integration.

Environment

liquibase-core packaged in a JEE8 application, deployed in WildFly 18.

Activity

Show:
Steve Donie
November 18, 2019, 7:52 PM

Thanks for this report - we will get this fixed ASAP.

Steve Donie
November 19, 2019, 8:39 PM

Hi - I don’t know a lot about CDI. Would the test for this be to just make sure that the liquibase.jar file doesn’t have the directory liquibase\integration\cdi in it? If not, what would be a good way to reproduce this problem and then test that the fix was correct?

 

Emond Papegaaij
November 20, 2019, 8:48 AM

Hi, looking at the packages released for 3.8.1, it seems something is wrong with the packaging itself. At https://search.maven.org/search?q=g:org.liquibase you can see both liquibase-cdi and liquibase-parent are missing version 3.8.1. Also, the contents of the 3.8.0 and 3.8.1 core jars differ substantially. This is a quick diff on the contents:

  • com.datical.liquibase.ext was added in 3.8.1, containing subpackages like appdba, license and storedlogic.

  • liquibase.integration.cdi was added in 3.8.1, including the cdi META-INF: beans.xml and javax.enterprise.inject.spi.Extension service.

  • liquibase.pro.packaged was added in 3.8.1, containing what looks like obfuscated code.

  • liquibase.sdk.vagrant andliquibase.sdk.watch were removed in 3.8.1.

To make sure liquibase-cdi is separated from liquibase-core, the package liquibase.integration.cdi needs to moved to the other jar, but do not forget the beans.xml file and the Extension service.

Steve Donie
November 20, 2019, 9:31 PM

Thanks so much! When we released 3.8.0, we changed the build and packaging process quite a bit as we added support for the pro features. That was pretty much a ‘proof of concept’. With 3.8.1 we went to a more standard, less manual build process, but apparently we broke some things that we didn’t have tests for. With 3.8.2 (due in the next couple of days) we will address this issue.

Reporter

Emond Papegaaij

Components

Affects versions

Priority

Blocker
Configure