Skip to content
BJ Hargrave edited this page Jan 11, 2019 · 29 revisions

Bnd/Bndtools 4.2.0

Bndtools

  • Bndtools is now built to run on Eclipse Oxygen or later.
  • The Bndtools repo has been merged into the Bnd repo. So there is now a single repo and single build which builds Bnd and Bndtools.

Bnd

  • Changed use of reflection in many places to use MethodHandles. This should provide some performance improvements especially in macro processing.
  • Bnd CI builds now also build and test on Java 11.
  • A brand new class file object model and parser was added and class file processing was improved which should realize some performance improvements. A side effect of this is that Bnd is much more thorough at locating Class.forName references in processed byte code and can then generate Import-Package clauses for those referenced packages that Bnd 4.1 did not see. So you may see additional packages in the generated Import-Package manifest header.
  • The -pom instruction will now add -buildpath dependency information to the generated pom's <dependencies> section for each -buildpath entry that contains a pom.properties resource. You can use the maven-scope attribute on -buildpath entries to use a different scope than compile.
  • Built-in project path properties such as project.buildpath and project.sourcepath now use File.pathSeparator to separate entries in the path. Previously : was always used as the path separator.
  • Added macro support to reference environment variables by prefixing the environment variable name with env.. For example: ${env.HOME}. This is consistent with Maven's support for accessing environment variables.
  • Connections settings file processing now supports using macro values to access system properties and environment variables.
  • The OSGiRepository repository type can now use an index.xml or index.gz.xml file inside a jar or zip file. This allows one to package an index in a jar file which can then be placed in a remote repository such as Maven Central. When the locations property refers to a jar or zip file, the index will be looked for in the root of the jar or zip file.
  • Bnd now supports use of bundle annotations which meta annotated repeated annotations.
  • DS annotation processing will now better handle when the type of a field annotated with @Reference cannot be located during processing.
  • Added support for a bnd.home.dir system property which can be used to override the default Bnd home directory of ~/.bnd.

Bnd Command Line

Documentation

  • Various doc updates and additions.

Bnd Maven Plugins

  • The bnd-maven-plugin will now generate more bundle headers values from pom information.
  • The bnd-export-maven-plugin, bnd-resolver-maven-plugin, and bnd-testing-maven-plugin plugins have new scopes configuration properties to allows the resolver scope to be configured.
  • The bnd-export-maven-plugin and bnd-resolver-maven-plugin plugins have new skip configuration properties to allows the plugin to be skipped for the project.

Bnd Gradle Plugins

  • The Bnd Gradle Plugin jar, biz.aQute.bnd.gradle, has been changed to no longer include all Bnd dependencies. Its pom file now has a <dependencies> section which references any required Bnd dependencies which must be available to the build script.
  • The Bnd Gradle Plugins have been updated to support Task Configuration Avoidance when using Gradle 5.0 or later. This should provide a reduction in build time for large builds especially when only building a subset of the complete build. To take complete advantage of this, you will likely need to make modifications to your build scripts to also avoid task configuration. See how Bnd's own build scripts were updated for this.
  • A base property has been added to the Index task type. This can be used to specify a different URI base for the generated index.
  • Properties diffpackages and diffignore have been added to the Baseline task type.

Backward compatibility

  • Bndtools is now built to run on Eclipse Oxygen or later. So Bndtools 4.2 may not run on older versions of Eclipse.

Known Issues

  • None at this time.
Clone this wiki locally