Changes in 4.0.0

BJ Hargrave edited this page Jul 18, 2018 · 6 revisions

Bnd 4.0.0

For Bndtools 4.0.0 changes, see https://github.com/bndtools/bndtools/wiki/Changes-in-4.0.0.

Bnd

  • Bnd now requires Java 8 or higher.
  • The org.osgi.impl.bundle.repoindex.* jars have been removed. The indexing of repositories is now built-in to Bnd. From the command line, you can use the new bnd index command.
  • Bnd 4.0 includes initial support for OSGi R7 annotations. A lot of the support is in place, but there may still be some gaps and bugs. Please use it and report any issues. We plan to complete support for the OSGi R7 annotations in 4.1 in the coming months.
  • Some more file locking issues on Windows were fixed. At this point, we believe we have addressed all the file locking issues in Bnd.
  • Support for reproducible builds was added with the -reproducible: true instruction.
  • Java 10 class files are supported.
  • Add CONDITIONAL option to ${packages} macro.
  • Add INDIRECTLY_ANNOTATED option to ${classes} macro.
  • Add ${removeall;list;list} macro.
  • Add ${retainall;list;list} macro.
  • Improved support for UNC file names on Windows.
  • Normalize file paths to use forward slash. This allows for consistency.
  • Add assertj to biz.aQute.junit.
  • BndPomRepository now supports polling for changes.

Bnd Maven Plugins

  • Bnd Maven plugins now require Java 8 or higher.
  • Maven 3.1.1 is the minimum version of Maven supported.
  • bnd-maven-plugin configuration in <pluginManagement> is better supported.
  • Maven version ordering rules are now properly supported.
  • bnd-baseline-maven-plugin will not attempt to baseline against SNAPSHOT versions.
  • bnd-testing-maven-plugin adds support for -Dtest=f.q.n.TestClass to run a single test class.
  • Support include/exclude Ant-style globs in bndruns/bundles configuration.

Bnd Gradle Plugins

  • Bnd Gradle plugins now require Java 8 or higher.
  • Gradle 4.0 is the minimum version of Gradle supported.
  • BndPlugin now supports dependencies and dependents. So the buildDependents task is now supported.
  • A Bnd Workspace can now be in a subproject of a Gradle build. This means the root project of a Gradle build does not have to the Bnd Workspace.
  • A new Index task type is added to index a set of bundles.
  • Added support for --tests=f.q.n.TestClass command line option for TestOSGi task type. This allows the names of test classes to be specified and only those test classes will be executed.

Backwards compatibility

  • Bnd 4.0 requires Java 8 or higher as the base runtime.
  • The Bnd DS, metatype and versioning annotations support is removed in Bnd 4.0. They have been replaced by the OSGi DS, metatype and versioning annotations.
  • The org.osgi.impl.bundle.repoindex.* jars have been removed. The indexing of repositories is now built-in to Bnd. From the command line, you can use the new bnd index command. Gradle users can use the Index task type. Maven users can use the bnd-indexer-maven-plugin maven plugin.
  • The Bnd Gradle plugins require at least Gradle 4.0.
  • The JPMRepository repository plugin is removed. The jpm4j.org server has been decommissioned. There is no replacement.
  • The aQute.bnd.deployer.repository.FixedIndexRepo repository plugin is removed. It has been replaced by the aQute.bnd.repository.osgi.OSGiRepository repository plugin.
  • The aQute.bnd.deployer.repository.aether.AetherRepository repository plugin is removed. It has been replaced by the aQute.bnd.repository.maven.provider.MavenBndRepository repository plugin.

Known Issues

  • None at this time.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.