Skip to content
BJ Hargrave edited this page Dec 15, 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 fix improvements:
    • Will no longer suggest adding a bundle to the build/test path if the expanded class can already be found on the build/test path.
    • More useful suggestions in a variety of additional situations.
  • Long running resolve jobs can now be cancelled.
    • Upon cancellation, a log will be available that can be useful for debugging why the resolve is taking so long.
  • Workspace templates can now be parameterized (like project templates).
  • UI display of results from biz.aQute.tester.junit-platform now properly supports tests running in parallel.

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 either requires Java 11, or later, or 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.
  • biz.aQute.tester.junit-platform improvements:
    • Support for pluggable test listeners - services registered under the TestExecutionListener interface will be invoked during test execution.
    • Support for filtering tests using tester.names while in continuous mode.
    • Support for changing the tester.names filter dynamically and re-running tests interactively via the Gogo shell.

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

  • The Bnd Maven plugins require a minimum of Maven 3.1.1.
  • 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 require a minimum of Gradle 5.1 for Java 8 to Java 12, Gradle 6.0 for Java 13, Gradle 6.3 for Java 14, and Gradle 6.7 for Java 15.
  • 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