OSGi data in MANIFEST.MF is incorrect in version 4.7.0
See original GitHub issueEnvironment
Liquibase Version: 4.7.0
Liquibase Integration & Version: liquibase-core
Liquibase Extension(s) & Version: n/a
Database Vendor & Version: n/a
Operating System Type & Version: MacOs, openjdk 11.0.11 2021-04-20 LTS
Description
The MANIFEST.MF
file inside liquibase-core-4.7.0.jar
is not valid.
Something around versioning seems to have gone wrong.
Specifically:
Bundle-Version: 0.0.0.SNAPSHOT
should be Bundle-Version: 4.7.0
Liquibase packages inside the Import-Package
list have incorrect version definition. E.g.
...,liquibase.change;resolution:=optional;version="[4.7.0,1),...
the version specification should be [4.7,5)
and there is an issue with quotation marks as the opening quotes after version=
don’t get closed.
A locally compiled earlier version has this instead:
`…liquibase.change;resolution:=optional;version=“[4.5,5)”,…
This means the bundle cannot be resolved. Trying do to so using bnd shows an error like this:
Resolution failed. Capabilities satisfying the following requirements could not be found:
[<<INITIAL>>]
⇒ ...
⇒ osgi.wiring.package: (&(osgi.wiring.package=...)
⇒ [... version=5.0.0.0-SNAPSHOT]
⇒ osgi.wiring.package: (&(osgi.wiring.package=liquibase.database)(version>=4.7.0)(!(version>=5.0.0)))
⇒ [org.liquibase.core version=0.0.0.SNAPSHOT]
⇒ osgi.wiring.package: (osgi.wiring.package=1))
Steps To Reproduce
To see the contents of the file:
- download
liquibase-core-4.7.0.jar
from Maven Central - extract/unpack files inside
liquibase-core-4.7.0.jar
- open
META-INF/MANIFEST.MF
Loading the resolution issue:
- Create an OSGi test that references liquibase.
- Run the test
Actual Behavior
- Bundle doesn’t resolve
Expected/Desired Behavior
- Bundle should be resolved correctly
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:18 (11 by maintainers)
Top GitHub Comments
I ran a test with the attached and it worked. Thanks for this, much appreciated!
I could create a standalone OSGi test that you may be able to integrate with your pipeline if you think that would be useful?
I believe the problem is here: https://github.com/liquibase/liquibase/blob/16b3e843d63dc4419c264bd8170c357a17c5325a/.github/util/ManifestReversion.java#L33