Skip to content
BJ Hargrave edited this page Oct 5, 2020 · 13 revisions

Bnd/Bndtools 5.2.0

Bndtools

  • Added an Insert sub-menu Context menu in the Bnd Editor Source page editor. It allows the user to select a plugin from a menu and that is then inserted in the bnd file. There are also sub-menus for inserting an instruction example, a macro or a header.
  • Quick fixes no longer suggest adding a bundle to the build/test path if the expanded class can already be found on the build/test path.
  • Long running resolve jobs can now be canceled.

Bndtools m2e

  • Fixed dependency management resolving.
  • More safely refreshed target directory to avoid build loops.

Bnd

  • Added support for OSGi R8 Referenced annotation.
  • Added new Memoize implementation which only memoizes once a Predicate has accepted the underlying Supplier's value.
  • Added unmodifiable List, Set, and Map implementations which work on Java 8 so we can enjoy the equivalent of the Java 9 Map.of, Set.of, and List.of style support.
  • Macros now can parse parameters that are macros but whose expansion contains semicolons. These needed to be escaped. Each parameter is now parsed without expansion and then expanded separately.
  • Fix sort macro support to handle empty lists.
  • New biz.aQute.bnd.ant artifact to hold Bnd Ant tasks. This artifact depends on the biz.aQute.bndlib and ant artifacts.
  • Java 15 class file support added.
  • Bnd will now import java.* packages if the bundle requires Java 11, or later, or if the bundle imports the org.osgi.framework package at a version >= 1.9. The importing of java.* packages can be disabled with the instruction -noimportjava: true.
  • DS support for factory components is improved. For factory components, we now emit an osgi.service capability for ComponentFactory with the component.factory attribute set. We no longer emit an osgi.service capability for any service which can be provided by an instance of the factory component. For references to ComponentFactory, we now emit an osgi.service requirement for ComponentFactory only if the target element of the Reference annotation is specified. The filter directive of the emitted osgi.service requirement for ComponentFactory will include the target filter expression.
  • Fixed handling of -namesection instruction to properly create Name sections in the generated manifest.

Bnd Command Line

  • Added a possibility to specify the test case to run with: bnd test [options] --tests <testclass[:method]...>
  • New classpath command to compute the effective compile or test compile classpath of a Bnd project. This can be useful when you need the classpath for an external tool.

Documentation

  • Various minor documentation fixes and improvments.
  • Add documentation for several of the Bnd repository plugins.
  • The BaselineIgnore annotation is documented.

Bnd Maven Plugins

  • Warn if Test-Cases manifest header is empty when building test jars.
  • Add releaseversions configuration option to bnd-baseline-maven-plugin. If the releaseversions configuration option is set to true, then, when searching for a baseline version using a version range, non-release versions like alpha, beta, milestone, and rc are not considered.
  • If the maven project property project.build.outputTimestamp is set, then bnd-maven-plugin automatically configures the Bnd instructions for reproducible builds if the instructions are not otherwise set.
  • Improved -runee inference. We now look at the following items in order:
    • release element in maven-compiler-plugin configuration
    • maven.compiler.release project property
    • target element in maven-compiler-plugin configuration
    • maven.compiler.target project property
    • java.version project property
    • java.version system property
  • Fixed a problem where the Bnd maven plugins required a version of Maven > 3.1.1 which is the specified minimum version. The Bnd maven plugins now explicitly declare a prerequisite on Maven 3.1.1 as the minimum Maven version.

Bnd Gradle Plugins

  • The Bnd Gradle plugins now require a minimum of Gradle 5.1 for Java 8 to Java 12 and Gradle 6.0 for Java 13.
  • The archiveClassifier property of the Bundle task is used in the generated Bundle-SymbolicName value.
  • The bnd property of the Bundle task can now accept Provider<? extends CharSequence> arguments which provides much more flexible configuration as the actual instruction are computed at task execution time.

Backward compatibility

  • Bndtools is built to run on Eclipse 2018-12 or later. So Bndtools 5.0 may not run on older versions of Eclipse.
  • The Bnd Gradle plugins no longer work on versions of Gradle less than 5.1.

Known Issues

Clone this wiki locally