Skip to content
BJ Hargrave edited this page Mar 9, 2020 · 19 revisions

Bnd/Bndtools 5.0.0

Bndtools

  • Bndtools is built to run on Eclipse 2018-12 or later. So Bndtools 5.0 may not run on older versions of Eclipse.
  • Added a Bndtools Explorer view with a search bar. This can be used to show projects whose name matches the search bar value.

Bndtools m2e

  • Bndtools m2e is built to run on Eclipse m2e 1.10.0 (m2e version used in Eclipse 2018-12) or later. So Bndtools m2e 5.0 may not run on older versions of Eclipse or Eclipse m2e.

Bnd

  • New version_cleanup macro added.
  • Make it possible to emulate contracts when you don't have any contract on the classpath.
  • Allow the CDI container to process interfaces.
  • Providing the osgi.service capability for the @ServiceProvider annotation.
  • Added -resolve (beforelaunch|manual|auto) option for resolving: well as do an automatic update to latest version.
  • Embedded activators are now started in a started framework, in 4.3 they unfortunately got started in an inited framework.
  • New MapStream API for streaming operations on Maps or any object pair.
  • When using a standalone workspace, such as in the Bnd Maven plugins, -plugin properties are now copied from the bndrun file into the standalone workspace so that the bndrun file can configure Bnd repositories in the standalone workspace.
  • JUnit 5 support has been added via the new biz.aQute.tester.junit-platform project. To use JUnit 5 for OSGi JUnit testing, set the -tester property to biz.aQute.tester.junit-platform. This will also require the necessary JUnit 5 bundles and dependencies, such as org.opentest4j, to be configured into the -runbundles of the test framework. The recently released JUnit 5.6 jars are now OSGi ready.
  • Various fixes and improvements to Launchpad.
  • New -export-apiguardian instruction added to export packages having types annotated with @API from @API Guardian.

Bnd Command Line

  • Added bnd eclipse sync command. This copies the cnf/.settings to all projects
  • Added bnd mbr command that can provide update information to a MavenBndRepository plugin .mvn files as

Documentation

Bnd Maven Plugins

  • Improved EE inference computation.
  • Corrected resolution scope for bnd-process-test mojo.
  • Implicit repo, repos of maven dependencies not considered.

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.
  • Use dependency's jars for compilation when java-library-plugin is applied. See #3642.
  • Replace use of deprecated Gradle methods such as ExternalDependency.setForce.

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 now require a minimum of Gradle 5.1 for Java 8 to Java 12 and Gradle 6.0 for Java 13. So the Bnd 5.0 Gradle plugins may no longer work on versions of Gradle less than 5.1.
  • The p2 update site for released versions of Bndtools has been changed to https://bndtools.jfrog.io/bndtools/update-latest. This p2 update site can be used to install Bndtools releases from the latest release as far back as version 4.2.0.

Known Issues

  • Windows 10 users: Windows 10 Defender significantly slows down Eclipse, reason being Windows 10 Defender scanning the JAR files. The problem has been reported to Microsoft here. Until then, a workaround to this problem is to add Eclipse root directory to Windows 10 Defender’s exclusion list, detailed steps are shared here. Note that if you have installed Eclipse using the P2 pool you'll also need to exclude the .p2 directory which is in your home directory or Administrator's home directory.

    Note: This is not just an Eclipse issue on Windows 10.

    See also Bnd Tips for Windows users.

  • Issue #3726 appears when using contracts and attempting to change the attributes of a subset using the -contract instruction. If experiencing issues or errors related to this, the workaround is to name each contract explicitly:

    Instead of using

    -contract: JavaJAXRS;resolution:=optional, *
    

    use

    -contract: JavaJAXRS;resolution:=optional, JavaFoo, JavaBar
    
  • Issue #3745 means that the new JUnit 5 support does not work with JUnit 5.5 or later. There is no current workaround.

  • Issue #3762 means that resolving resources from a LocalIndexedRepo will incorrectly get version=snapshot in the generated -runbundles. This means the resource will not be found at launch time. The workaround is to not use resources in a LocalIndexedRepo.

  • Issue #3780 means one cannot use multiple tasks of type Bundle in a Gradle project when using Gradle 5.6 or later. There is no current workaround.

Clone this wiki locally