-
-
Notifications
You must be signed in to change notification settings - Fork 300
Changes in 6.0.0
BJ Hargrave edited this page Sep 7, 2021
·
37 revisions
- Bndtools is built to run on Eclipse 2020-06 (4.16) or later. This was changed from Eclipse 2018-12 (4.10) in the last release. So Bndtools 6.0 may not run on older versions of Eclipse.
- Bndtools m2e is built to run on Eclipse m2e 1.16.0 or later. This was changed from Eclipse m2e 1.10.0 in the last release. So Bndtools m2e 6.0 may not run on older versions of Eclipse m2e.
- A build loop was fixed where Bndtools m2e could loop rebuilding the jar.
- Property naming prefix in
cnf/ext/*.bndchanges - If an property name is already declared elsewhere, the file name will now be used as a namespace. In previous versions it has been used as a prefix. Before-pluginincnf/ext/test.bndbecametest.-plugin, now it will be-plugin.test. - A number of previously deprecated types and members have been removed. So code using these will need updates.
-
Selectors in instructions now support the
ooptional flag. If the selector ends with:o, then the selector is marked optional. This means that when Bnd might warn about unused selectors, it will not warn that an optional selector is unused. - The
-runjdbinstruction is updated to support ahost:portvalue for the-agentlib:jdwp=transport=dt_socketaddressoption. - The
githeadmacro has been updated to understand git worktrees. - Added support for the new features in the forthcoming OSGi Declarative Services 1.5 specification from the OSGi Working Group at Eclipse.
- Baselining fixes were added so that CLASS retention annotation changes are MICRO bumps, inserted super classes and super interfaces are now properly handled, and
BaselineIgnoreis now supported onpackage-info. - BndPomRepository - By setting
dependencyManagement=true, the repository now considers thedependencyManagementof a pom as well.
- TBD
- TBD
- The Bnd Maven plugins now require a minimum of Maven 3.3.9. This was changed from Maven 3.1.1 in the last release.
- The Bnd Maven plugin can be configured to skip the processing of missing or empty output directories. Use the configuration properties
skipIfEmptyto enable this mode. This helps configure thebnd-maven-pluginin a parent pom without requiring all projects to emit bundles and works in conjunction with themaven-jar-plugin's property of the same name (skipIfEmpty). It also enables projects to produce test artifacts without requiring a main sources or artifact.
- The Bnd Gradle plugins and tasks now support Gradle 7.
- The Bnd Gradle plugins and tasks underwent a large update to modernize their implementations and prepare for Gradle 7 and newer Gradle idioms. The implementation classes have all been rewritten in Java. All Bnd Gradle task properties are now Gradle Properties and should generally be set using an assignment in your build script. This also means the Gradle Properties are typed and expect the correct value when being set. So, using the
Exporttask as an example, set thebndrunproperty withbndrun = file('mybndrun.bndrun')rather thanbndrun 'mybndrun.bndrun'. With the change to use Gradle Properties, the latter example is no longer possible as Gradle expects thebndrun(String)method which does not exist. So you may need to update your build scripts to use assignment of the proper argument type for setting task properties. - Added
outputBndrunproperty to theResolvetask type. This allows the resolve operation to write the resolution to an output bndrun file which can then be used as input to another task such as aTestOSGitask. Because the Bnd Gradle tasks use Gradle Properties, the connection of theoutputBndrunoutput property of aResolvetask to thebndruninput property of aTestOSGitask, for examplebndrun = resolveTask.flatMap { it.outputBndrun }, enables Gradle to know that theResolvetask must be executed before theTestOSGitask. - A number of previously deprecated task properties and task property setters/getters have been removed.
-
Baseline.destinationis replaced byBaseline.reportFile. -
Bndrun.workingDiris replaced byBndrun.workingDirectory. -
Export.destinationDiris replaced byExport.destinationDirectory. -
Index.destinationDiris replaced byIndex.destinationDirectory. -
TestOSGi.resultsDiris replaced byTestOSGi.resultsDirectory.
-
-
Gradle is deprecating the convention concept and build scripts need to move to use the replacement extensions before Gradle 8.
-
BndPluginExtensionreplaces the now deprecatedBndPluginConvention.- The
bnd(),bndis(),bndMerge(),bndProcess(), andbndUnprocessed()methods inBndPluginConventionshould no longer be used and build scripts should be updated to use the equivalent methods,get(),is(),merge(),process(), andunprocessed(), in thebndextension. For examplebnd.get('property')replacesbnd('property'). -
BndPluginConventionwill be removed in a future version of the Bnd Gradle plugins.
- The
-
BundleTaskExtentionreplaces the now deprecatedBundleTaskConvention.- The properties of the convention should no longer be used and build scripts should be updated to use the equivalent properties in the
bundleextension. For example,bundle { bndfile = file('bnd.bnd') }replacesbndfile = file('bnd.bnd'). - Kotlin DSL support is provided for the
BundleTaskExtentionin theBundletask as well as thejartask when thebiz.aQute.bnd.builderplugin is applied. -
BundleTaskConventionwill be removed in a future version of the Bnd Gradle plugins.
- The properties of the convention should no longer be used and build scripts should be updated to use the equivalent properties in the
-
- The tasks using
bndrunfiles can now infer values for-runeeand-runrequireswhen they are not specified. The-runeevalue is based upon the target Java version of thecompileJavatask and the-runrequiresvalue is based upon the Bundle-SymbolicName values of the artifacts in thearchivesconfiguration which is generally the artifact(s) built by thejartask. This is similar to the behavior of the Bnd Maven plugins. - The
BndrunandTestOSGitask types now have ajavaLauncherproperty, like theTesttask type, which can be used to specify the java executable to be used for the task. - The Bnd Gradle plugins require a minimum of Gradle 6.7 for Java 8 to Java 15, and Gradle 7.0 for Java 16.
- Bndtools is built to run on Eclipse 2020-06 (4.16) or later. So Bndtools 6.0 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 6.0 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, and Gradle 7.0 for Java 16.
- The Bnd Gradle plugins and tasks underwent a large update 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. See above for more details.
-
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.
Dev Meetings Agenda/Protocol
Latest Releases
all versions
- 7.2.1 | 7.2.0
- 7.1.0 | 7.0.0
- 6.4.1 | 6.4.0 | 6.3.1 | 6.3.0
- 6.2.0 | 6.1.0 | 6.0.0
- 5.3.0 | 5.2.0 | 5.1.2 | 5.1.1
- 5.1.0 | 5.0.1 | 5.0.0
- 4.3.1 | 4.3.0 | 4.2.1 | 4.2.0
- 4.1.0 | 4.0.0
- 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0
- 2.2.0
Gradle
- Plugin
- Build Customizations
- Builder & java-library
- Non-Workspace builds
- PluginManagement
- Using Kotlin
- Kotlin DSL jar config
- AntTasks
- Baselining [beta]
- Blurry Form Text on High-Resolution Displays
- Bnd toolchain parity table
- bnddistribute
- Buildpath Versions
- Conflict with M2E PDE Connector
- Eclipse Logging with Logback
- Hackathon June 2012
- Install bnd on the command line
- Is there a mailing list for bnd
- Launching Framework
- Multi-project build order
- Multi-release JAR support design discussion
- Plans wrt to enRoute
- Reading Eclipse project preferences in bnd
- Release Process
- Requirements for New Repository API
- Windows Locked Files
- WIP ideas ‐ bnd 8.0.0 breaking changes
- XML Attributes on Annotations
- [ant] Loading and Expanding Shared Headers or Properties