unitsofmeasurement / indriya

JSR 385 - Reference Implementation
Other
115 stars 40 forks source link

Change OSGi generation to bnd-maven-plugin #333

Open keilw opened 3 years ago

keilw commented 3 years ago

Change OSGi generation from Felix maven-bundle-plugin to bnd-maven-plugin. The Felix plugin still seems problematic with extra attributes like Automatic-Module-Name after 4.x and that version of the plugin is not compatible with Java 15 or above, while the Bnd plugins work, see https://github.com/unitsofmeasurement/uom-systems.

keilw commented 3 years ago

Currently this fails with a Maven build error:

[ERROR] Failed to execute goal biz.aQute.bnd:bnd-maven-plugin:5.2.0:bnd-process (default) on project indriya: Classes found in the wrong directory: {META-INF/versions/14/tech/units/indriya/AbstractSystemOfUnits.class=tech.units.indriya.AbstractSystemOfUnits, META-INF/versions/12/tech/units/indriya/format/NumberDelimiterQuantityFormat.class=tech.units.indriya.format.NumberDelimiterQuantityFormat, META-INF/versions/12/tech/units/indriya/format/NumberFormatStyle.class=tech.units.indriya.format.NumberFormatStyle, META-INF/versions/14/module-info.class=module-info, META-INF/versions/14/tech/units/indriya/AbstractSystemOfUnits$1.class=tech.units.indriya.AbstractSystemOfUnits$1, META-INF/versions/12/tech/units/indriya/format/NumberDelimiterQuantityFormat$Builder.class=tech.units.indriya.format.NumberDelimiterQuantityFormat$Builder, META-INF/versions/9/tech/units/indriya/spi/UnitNameProvider.class=tech.units.indriya.spi.UnitNameProvider, META-INF/versions/12/tech/units/indriya/format/NumberDelimiterQuantityFormat$1.class=tech.units.indriya.format.NumberDelimiterQuantityFormat$1, META-INF/versions/9/module-info.class=module-info, META-INF/versions/14/tech/units/indriya/AbstractSystemOfUnits$Helper.class=tech.units.indriya.AbstractSystemOfUnits$Helper, META-INF/versions/9/tech/units/indriya/unit/UnitDimension.class=tech.units.indriya.unit.UnitDimension, META-INF/versions/12/module-info.class=module-info} -> [Help 1]
[ERROR] 

It may be possible to configure the BND plugin in a sophisticated way, but for now forget about Java 15 or 16 and keep building it with 14 until either a fix for the Felix plugin exists or we look into a more detailed way to configure BND.