-
-
Notifications
You must be signed in to change notification settings - Fork 302
Changes in 5.2.0
BJ Hargrave edited this page Dec 15, 2020
·
13 revisions
- 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.
- Fixed dependency management resolving.
- More safely refreshed target directory to avoid build loops.
- 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 thebiz.aQute.bndlib
andant
artifacts. - Java 15 class file support added.
- Bnd will now import
java.*
packages if the bundle either requires Java 11, or later, or imports theorg.osgi.framework
package at a version >= 1.9. The importing ofjava.*
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 forComponentFactory
with thecomponent.factory
attribute set. We no longer emit anosgi.service
capability for any service which can be provided by an instance of the factory component. For references toComponentFactory
, we now emit anosgi.service
requirement forComponentFactory
only if thetarget
element of theReference
annotation is specified. Thefilter
directive of the emittedosgi.service
requirement forComponentFactory
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.
- Support for pluggable test listeners - services registered under the
- 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.
- Various minor documentation fixes and improvments.
- Add documentation for several of the Bnd repository plugins.
- The
BaselineIgnore
annotation is documented.
- 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 thereleaseversions
configuration option is set totrue
, then, when searching for a baseline version using a version range, non-release versions likealpha
,beta
,milestone
, andrc
are not considered. - If the maven project property
project.build.outputTimestamp
is set, thenbnd-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 inmaven-compiler-plugin
configuration -
maven.compiler.release
project property -
target
element inmaven-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.
- 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 generatedBundle-SymbolicName
value. - The
bnd
property of the Bundle task can now acceptProvider<? extends CharSequence>
arguments which provides much more flexible configuration as the actual instruction are computed at task execution time.
- 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.
-
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.