Skip to content
BJ Hargrave edited this page May 24, 2022 · 11 revisions

Bnd/Bndtools 6.3.0

See the Release section of the README for where to find Bnd/Bndtools.

Bndtools

  • Bndtools "Bnd Bundle Path" class path container now supports negation in the packages attribute of -buildpath and -testpath clauses. Negated packages are marked NON_ACCESSIBLE | IGNORE_IF_BETTER in Eclipse.
  • Bndtools "Bnd Bundle Path" class path container can be configured, when using version=latest or version=snapshot, to hide the referenced project's folders and just use the referenced project's generated bundle. The classes in a bundle may be transformed and can be different than the classes in a project's folders. This can be configured using the source attribute of -buildpath and -testpath clauses. Setting source to a value other than project will not include the referenced project's folders. This is done by marking the referenced project as DISCOURAGED | IGNORE_IF_BETTER. Note that this can cause Eclipse's "Open Type Hierarchy" result to be incomplete due to flaws in how the Eclipse hierarchy search code handles hidden types. See #5250.
  • Bndtools "Bnd Bundle Path" class path container is updated, when using version=latest or version=snapshot, to no longer include the referenced project's folders in the runtime classpath. This changed provide better fidelity since a bundle may contain more or less classes/resources than the project's folders.
  • When hovering over a macro name in a bnd editor, the hover view will show the decorated value of the macro.

Bndtools m2e

  • Fixes to package decoration when using the new packaging goals of bnd-maven-plugin.

Bnd

  • Bnd adds decoration support for the following instructions:
    • -conditionalpackage
    • -privatepackage
    • -includepackage
    • -includeresource
  • The -privatepackage instruction is now also a merged instruction.
  • A decoration ending in ++ will include all unused literals in the decorated result whereas a decoration ending in + will not include unused literals in the result.
  • Unused literal inclusion in decoration now allows the decoration to add additional entries to the beginning or the end of the decorated item.
  • Instruction decoration now supports removal of attributes and non-overwriting of attributes. Prefixing the attribute name with ! means removal. Prefixing the attribute name with ~ means do not overwrite an existing attribute value.
  • Fixes to support the Eclipse Transformer project's Bnd Analyzer and Verifier plugins. The re-analyze code path was fixed to properly reset the analyzer and analyze the content again.
  • The external plugin handler was enhanced to support external plugins implementing the Plugin and RegistryPlugin interfaces.
  • The AnalyzerPlugins and VerifierPlugins now have an invocation ordering which can be influenced by the plugin implementation.
  • For Java 1.1, the ee name is changed to JRE.
  • Added ServiceCapability annotation as convenient way to create osgi.service capabilities.
  • Callable registered with main.thread property will not stop the Launcher if the return code is 198.

Bnd Command Line

  • None.

Documentation

  • The styling of the documentation has added a search bar and indication of when macros and instructions are in effect.

Bnd Maven Plugins

  • bnd-baseline-maven-plugin now has a reportFile configuration which names the file to contain the baseline report. The report format is expanded with more detail.

Bnd Gradle Plugins

  • BundleTaskExtension is updated to make the generated manifest available from the task’s manifest.effectiveManifest property.
  • Updated the group property values for tasks to better match standard gradle task groups.

Backward compatibility

  • Bndtools is built to run on Eclipse 2020-06 (4.16) or later. So Bndtools may not run on older versions of Eclipse.
  • Bndtools m2e is built to run on Eclipse m2e 1.16.0 or later. So Bndtools m2e may not run on older versions of Eclipse m2e.
  • The Bnd Maven plugins require a minimum of Maven 3.3.9.
  • The Bnd Gradle plugins require a minimum of Gradle 6.7 for Java 8 to Java 15, Gradle 7.0 for Java 16, and Gradle 7.3 for Java 17.
  • The Bnd Gradle plugins and tasks underwent a large update in 6.0 to modernize their implementations and prepare for Gradle 7 and newer Gradle idioms. All Bnd Gradle task properties are now Gradle Properties and should generally be set using an assignment in your build script. A number of previously deprecated task properties have been removed. The conventions are now deprecated and replaced by extensions.

Known Issues

  • Eclipse m2e has a bug which can result in build looping. If you experience this, update Eclipse m2e to 1.18.2 or later which seems to have fixed the issue.

  • 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: This is not just an Eclipse issue on Windows 10.

    See also Bnd Tips for Windows users.

Clone this wiki locally