Skip to content
neilxb edited this page Aug 1, 2017 · 16 revisions

Bnd 3.4.0

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

Bnd Gradle Plugin Changes

New bnd.aQute.bnd.workspace Gradle Plugin for Workspace builds

This new plugin can be applied in the settings.gradle file to replace the remainder of the settings.gradle file and build.gradle file in the root of the workspace.

Support for other JVM language Gradle plugins

The biz.aQute.bnd Gradle Plugin will now look for source directory sets added to the main source set and configure them for the Bnd Workspace build to use the src and testsrc folders. It will also configure the compile task to depend upon the Bnd project dependencies.

New tasks in the Bnd Gradle Plugin for Workspace builds

  • The check task used to hold the actions to run the OSGi JUnit tests. It was not a good idea to put those actions directly on the check task as other plugins also add tasks which check will depend upon. So a new testOSGi task is added which holds the actions to run OSGi JUnit tests and the check task depends on testOSGi. So executing the check task will still run OSGi JUnit test.
  • New resolve.name tasks, one per bndrun file in the project, are added. These tasks resolve the name.bndrun file and updates the -runbundles instruction in the file. The new resolve task depends upon all the resolve.name tasks.
  • The run.name tasks, one per bndrun file in the project, runs the name.bndrun file.

Bnd Maven Plugin Changes

bnd-maven-plugin

  • You can now use Bundle-Version in the bnd configuration to set the version of the bundle. The default bundle version is the project version.

bnd-testing-maven-plugin

  • TBD

Other Notable Changes

  • Bnd now uses slf4j throughout to log. The replaces internal trace methods which could be configured to write to stdout.
  • Bnd now used version 1.10 of the Apache Felix Resolver.
  • Bnd supports a new DS annotations processing option version whose minimum attribute sets the default version of DS support. If unspecified, the minimum version of DS supported is now 1.3.

-dsannotations-options: version;minimum=1.0.0

  • The output for baselining has been made more detailed and consistent across the Gradle and Maven plugins.
  • The -runrequires instruction for bndrun files now supports requirement aliases. These make it the requirement list less verbose, and easier to write in plain editors.

Backwards compatibility

  • Starting in Bnd 3.1, a comment line ending in \ was incorrectly continued onto the next line. This is incorrect and has been fixed.
  • In the Bnd Gradle Plugin for Workspace builds, the actions to run OSGi JUnit tests have been moved from the check task to the new testOSGi task. This should mostly be transparent unless your build scripts configure the check task for the OSGi JUnit test execution. That configuration will now need to be made to the testOSGi task.
  • When Bnd processes OSGi DS annotations, it now defaults to 1.3 as the base DS version. To work with older DS versions, for example, Eclipse Equinox DS currently does not support DS 1.3, use

-dsannotations-options: version;minimum=1.0.0

to select a lower base DS version.

  • Project.getBuildpath() no longer returns a Container of Project.getOutput() as the first element of the collection. Builders will need to explicitly add Project.getOutput() to their classpath rather than assuming it is part of Project.getBuildpath(). ProjectBuilder, Bndtools, and the Bnd Gradle plugin for Workspace builds have been updated to account for this.
  • Bnd 4.0, planned for 2017, will move to Java 8 as the base runtime.
  • The Bnd DS, metatype and versioning annotations are deprecated and support for them will be removed in Bnd 4.0. Please make plans to migrate to the OSGi Release 6 specified annotations which now offer more features than the bnd annotations.
  • The JPMRepository is deprecated and will place a warning on the workspace if used. Please make plans to move to another repository type. The jpm4j.org server has been decommissioned.
  • The OSGiRepository replaces the aQute.bnd.deployer.repository.FixedIndexRepo repository plugin which will be deprecated in the future. Please migrate to the OSGiRepository repository plugin.
  • The MavenBndRepository replaces the aQute.bnd.deployer.repository.aether.AetherRepository repository plugin which is now deprecated. Please migrate to the MavenBndRepository repository plugin.
  • All artifacts now use Java 7 as the compile target. In the prior release, some artifacts had used Java 6 as the compile target.
  • Starting in 3.4, the resolve configuration property of bnd-export-maven-plugin and bnd-testing-maven-plugin will no longer mutate the -runbundles value of the bndrun files. This can be accomplished using the new bnd-resolver-maven-plugin.

Known Issues

  • None at this time.
Clone this wiki locally