-
-
Notifications
You must be signed in to change notification settings - Fork 305
Changes in 6.3.1
BJ Hargrave edited this page Jun 7, 2022
·
2 revisions
- This is a maintenance fix for Bnd/Bndtools 6.3.0.
- #5275: ClassCastException in Gradle build after upgrade to 6.3.0.
See the Release section of the README for where to find Bnd/Bndtools.
- Bndtools "Bnd Bundle Path" class path container now supports negation in the
packages
attribute of-buildpath
and-testpath
clauses. Negated packages are markedNON_ACCESSIBLE | IGNORE_IF_BETTER
in Eclipse. - Bndtools "Bnd Bundle Path" class path container can be configured, when using
version=latest
orversion=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 thesource
attribute of-buildpath
and-testpath
clauses. Settingsource
to a value other thanproject
will not include the referenced project's folders. This is done by marking the referenced project asDISCOURAGED | 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
orversion=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.
- Fixes to package decoration when using the new packaging goals of
bnd-maven-plugin
.
- 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
andRegistryPlugin
interfaces. - The
AnalyzerPlugin
s andVerifierPlugin
s 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 createosgi.service
capabilities. -
Callable
registered withmain.thread
property will not stop theLauncher
if the return code is198
. - Fixed some bugs that caused Bnd to fail at some points on versions with leading spaces.
- Fixed bugs in signing jar files:
- Bnd now tries to execute the
jarsigner
tool from theJAVA_HOME
environment variable orjava.home
system property rather than the path of the shell. This means Bnd will generally use the same java installation used to run Bnd to locate and execute thejarsigner
tool. The Bnd propertyjarsigner
can be set to specify the path to thejarsigner
tool if desired. - The use of Elliptic Curve (
EC
) signing keys is now properly supported. - The signing files in
META-INF
are now written to the jar immediately after the manifest as this is required forJarInputStream
to be able to properly verify the signature.
- Bnd now tries to execute the
- None.
- The styling of the documentation has added a search bar and indication of when macros and instructions are in effect.
-
bnd-baseline-maven-plugin
now has areportFile
configuration which names the file to contain the baseline report. The report format is expanded with more detail.
-
BundleTaskExtension
is updated to make the generated manifest available from the task’smanifest.effectiveManifest
property. - Updated the
group
property values for tasks to better match standard gradle task groups.
- 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.
-
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.