Skip to content
Peter Kriens edited this page Sep 8, 2023 · 12 revisions

Bnd/Bndtools 7.0.0

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

This is a breaking release because we moved the code base to Java 17.

Bndtools

  • Bndtools now requires Eclipse 4.25 (2022-09) or later.

Bndtools m2e

  • Bndtools m2e now requires Eclipse m2e 2.0.5 or later.
  • Significant update of Resolution View. Shows multi release jars now

Bnd

  • Updated to require Java 17 or later.
  • Supports Multi release JARs
  • MavenBndRepository
    • Staging repository
    • Additional files in a release
  • Removed pack2000 support
  • Support macros in the @Header annotation

Bnd Command Line

  • TBD

Documentation

  • TBD

Bnd Maven Plugins

  • Updated to require Java 17 or later.
  • bnd-generate-maven-plugin adds a mojo for goal generate-test. The poorly named goal bnd-generate has been renamed generate.

Bnd Gradle Plugins

  • Updated to use Gradle 7.3 as the minimum supported Gradle version.
  • Updated to require Java 17 or later when running Gradle.

Backward compatibility

  • All Bnd artifacts are built to run on Java 17 or later.
  • Bndtools is built to run on Eclipse 4.25 (2022-09) or later. So Bndtools may not run on older versions of Eclipse.
  • Bndtools m2e is built to run on Eclipse m2e 2.0.5 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-generate-maven-plugin's poorly named goal bnd-generate has been renamed generate
  • The Bnd Gradle plugins require a minimum of Gradle 7.3.
  • The Bnd Gradle plugins and tasks underwent an update for 7.0. A number of previously deprecated conventions have been removed.

Known Issues

Release log

Amit Kumar Mondal (1): Removed unnecessary usages of compiler options

BJ Hargrave (71): Revert "build(deps): Bump maven-deploy-plugin from 2.8.2 to 3.0.0 in /maven" io: Use try-with-resources to close Closeable input arguments test: Add retrying to bnd tests gradle: Escape path to original bndrun file maven: Fix warnings from maven-plugin-plugin maven: Move resolver earlier in reactor maven: Fix bnd-run-maven-plugin bndrun file selection maven: Support resolving bndrun files to an output folder docs: Add 6.4.0 docs Update gradlew to 7.6 gradle: Update tests for Java 19 maven: Update tests for Java 19 ci: Update CI test build to JDK 19 build: Remove unused maven-dependency-plugin from build deps: Update integration test use of maven-dependency-plugin bndlib: update package version for version 7.0.0 build: Update baseline version for build to 6.4.0 settings: Generate larger key size ci: Remove Java 8 and Java 11 from the CI builds gradle: Update dependencies to Java 17 and Gradle 7.3 maven: Update dependencies to Java 17 build: Use standard group names for tasks maven: Organize imports for RunMojo gradle: Update test projects for Java 17 build: Update eclipse metadata for gradle and maven projects java17: Replace use of deprecated methods with the replacement java17: Suppress warnings for security removal deprecations warnings: Add Deprecated annotation to avoid warnings test: Avoid java package imports for some tests java17: Update build to target JDK 17 java17: Update README to state Java 17 requirement gradle: Remove deprecated bundlesOnly parameter from Export task build: Remove deprecated items for Bnd 7.0 cleanups: Source cleanups for Java 17 pom: The cwd is not a valid base for locating parent poms maven: Refactor build for maven 4 docs: Fix links to maven plugin content Update dependabot config for maven-plugins folder deps: Update OSGi dependencies for Eclipse 4.25 tester: Set context class loader to bundle's class loader deps: Update Eclipse dependency to 4.25 maven: Clean up IT tests for generate plugin gradle: Fix some warnings from intellij maven: Fix some warnings from intellij mavenversion: Pickup fixes from Maven 3.8.7 build: Update maven version to 3.8.7 command: Ignore our own interruption tests: Avoid newly deprecated assertj method deps: Update assertj-core to 3.24.1 repo: Provide bsn+version in FileSetRepository.toString maven: Improve Glob use in bnd-testing-maven-plugin workspace: Use Stream.dropWhile/takeWhile instead DropWhile/TakeWhile mapstream: Add mapMulti support Use nanoTime for elapsed time measurement classloader: Update class loader classes to register as parallel tests: Update to use https URLs tests: Use canonical maven central URL classfile: Properly handle unnamed MethodParameter ds: Make sure that AnyService is not present in any service reqs gradle: Avoid using task ext properties in configuration cache testing gradle: Avoid 2 tasks referencing resolve2 bndrun file build: Update to gradle 8.1.1 ci: use Java 20 instead of Java 19 build: Update maven wrapper to 3.2.0 build: Update maven to 3.9.3 build: Quiet gradle 8.2 warning about test classpath gradle: Avoid use of conventions in gradle < 8.0 build: Update build script for Gradle 8.2 gradle: Update tests for gradle 8.2 deprecations lib: Add CompositeClassLoader class tester: Use CompositeClassLoader for TCCL when loading tests

Christoph Läubrich (1): Add an example to verify maven multi-release jar build with maven

Christoph Rueger (1): Add section about target-dir

Fr Jeremy Krieg (1): [tester] Minimise scope of TCCL switch

Guillaume Nodet (1): Upgrade to plexus-build-api 1.1.0

Hannes Wellmann (1): Resolve artifact's finalName immediately before BndMaven*Plugin exec.

Jerome Prinet (4): Apply Runtime classpath normalization and sort the Bundles input Sort collection Fix documentation Reduce visibility of getBundlesSorted()

Jérôme Prinet (1): Apply consistent file sort

Jörg Kubitz (1): Update README.md

Jürgen Albert (6): temp workspace was created in the wrong location fixed missing build and testpath for bnd maven generator project Splits the Mojo in one for generate-sources and generate-test-sources Replaces deprecated interfaces in BndTargetLocation fixes error in TargetPlatform, when a non OSGi Jar is included Adds support for extra staging repository

Konrad Windszus (1): Allow to configure base via coordinates (and CLI argument)

Mark Hoffmann (2): Avoid adding JDK jrt-fs.jar to the module-path (-p) of the JDT launcher Fixes #5752

Peter Kriens (100): #5462 Limit the Launcher to set startlevels to only the bundles in scope Update LauncherTest.java Update StartLevelRuntimeHandler.java Update LauncherTest.java Fix error in checkout in 6.4.0 Launcher check #5407 Decision to include project bin directory #5060 No automatic build when build.bnd changes review BJ Update after Fr. Krieg's request #5530 @Header did not support macros Better doc for if to handle confusion when condition macro is not set Fixes #5516. Generates a warning if -runframework is set but not -runfw 5555 Package default version faq. Fixed #5555 Documentation for jpms Set flag to not update default version Covenience methods & cleanup Added class file major version support to EE Added ManifestPlugin and shared Ordering Copy an Analyzer Added an addDeltaJar method to add a set of new resources to an existing analyzer which are then incrementally added to the different parameters like referred, contained, etc. This is the idea behind -conditionalpackage made available from the outside A JPMSModule class Adapted existing JPMS plugins & Jar to use the JPMSModule so we have a single place of truth. Test cases for the previous changes doc Default properties were not set in the analyzer. The analyzer therefore ignore multi release jars. The analyzer is now fixed up with the default properties versiondefaults is not set, will never overwrite though Used wrong path for the manifest in the versions directories. Used META-INF/MANIFEST.MF but must be OSGI-INF/MANIFEST.MF. Renamed plugin, fixed typo Rearranged code It was noted by laeubi that * it always generated a module-info.class for a release version * the requirements were always additive for subsequent releases Fixes NPE in classloading If a class was not found it reverted to OSGi but not in a very good way, this could cause NPEs. This patch removes the NPE possibility and actually now searches all bundles that import or require the bndlib. This should probably make the Auxiliary extension superfluous that is used in Eclipse/bndtools. Java Imports & Empty header - The java imports are now always done except when the used framework is < 1.9 (before R7). The EE version is now ignored. - The version used to come from the imports. However, that does not make sense, so I've changed it to the classpathExports version of the framework package. This is in almost all cases the floor of the import range. By using the export, we can make the decision that we use an old framework in any bundle that has the framework package on the class path and not only in bundles that import the framework. (Surprised this was not a problem?) - The MRJ will now set the Input-Package to Require-Capability to an empty string since the spec is rather strange imho. The RFC is a tiny bit clearer but this case should be made more explicit. Cleaned up bnd annotations - Component is removed now after it has been deprecated for a long time - Cardinality & Resolution have been changed to String. This will prevent warnings when the annotations are not on the buildpath - Changed the use of the older annotations inside bnd to the OSGi versions Removed use of SecurityManager - Added a BndSystm.exit method that could be overridden - this was added to the aQute.bnd.tester - Adapted the applicable code to call BndSystem.exit - Changed the test code to override the exit Update README.md Update readme (to lazy to make separate PR and the original was awful) Fixed warning due to split package, now export it from the original Update README.md Renamed Updated code to parse supporting resources Enum matches by toString When given an enum, the normal parsing for its name fails, try comparing to the toString() Support OSGi versions in bnd versions bnd developed a version & version range before OSGi had one. We could replace them but the bnd are slightly more useful. EE handling Supporting Resource Multi release JAR indexing Resolve changes Multi Release Testing Last minute screw ups cleanup Do not overwrite source info for packages This is from #5130. This fix does not overwrite the internal source info for a package when it has already been set. Fixes #5130 Backward compatibility for the resource filtering To make the MRJ scenario work, we needed synthetic resource. However, for some reason I do not get, we filtered them out before the resolver saw them. The filtering was moved to the final stage when we filter the bundles. However, this means that there are theoretical situations where people need the old behavior. Release 7 is a major release so we can break but it is clearly not nice to have a backup Version handling Remove synthetic resources from the view Updated Pack200 class to handle the absence of the command. The command was deprecated in later VMs Remove space from version before cleanup Created a remove function to remove clauses regardless of multi marker Updated supporting resources to allow runtime retrieval of the structure Update of the resolution view Boolean logic is hard :-( Strange SWT dispose problem. This seems not to be introduced by the recent change but might be an interaction with Eclipse. I noticed this in the last version also. It looks like a helper object is used to detect that anSWT object is not disposed properly. It looks like the Icons class was not properly using the caching map for one method. Now properly cached. Revert "Upgrade to plexus-build-api 1.1.0" Update ci-build.sh Update ci-publish.sh P2 Repositories lost synthetic resources for MRJs Update ci-build.sh Update ci-publish.sh wip Fix for releasing extra files with maven An extra CR on windows failed the length test, changed to content test Moved all the comm options for maven to the action files Oops Use classifier instead of 'class' and archive instead of 'extra' Slow bundle dialog\n Typing in the filter box did a slow update. This PR uses a (copy of) the FilteredTree\n that is supposed to be much faster. Now also supports wildcards a la globbing Link to original FilteredTree for clarity Update link to forked file Update github.htm Update github.htm 5673 Merged properties for standalone. Fixes #5673 Contribution to icons Update to ResolutionView to also resolve against Java VM The new gradle cannot find Java 8 on the build system. Changed to use 17. Seems to be used for launching. Attempting to fix the build for the absence of Java 8 Attempting to fix the build for the absence of Java 8 Cleaned up the home directory and added a BND_HOME env var Oops, this got an NPE on windows --- Signed-off-by: Peter Kriens Peter.Kriens@aQute.biz Maven release archive option Setting the base in Processor.use(...) was too much When no package-info.java is present, the error was only reported on the project. This will report it on the manifest Fixes #5740 Oops, forgot size When base is set but artifact not found, failOnMissing will be applied Timeout when there are no test cases Added convenience methods to Tag Minor changes P2 Exporter 1.8 1.8 merge failed Use JUnit 5 build: Build Release 7.0.0.RC1

Scott Lewis (13): Fix for issue #5239 Improve handling of template defaults Initial commit for issue-5632. Introduces service wizard support Small generalization of ServiceTemplateLoaderJob Comments fix Small refactoring, simplification of error handling Small improvements in error handling Added NewBndTemplateBasedServiceWizard class to support service templates User interface improvements Comment fix Fix variable naming Fix for UI bug Updated Java OSGi Service wizard to use service.png for icon

Sean Bright (1): prefs: Remove extraneous parenthesis.

Tim Ward (4): [m2e] Avoid runtime errors due to API changes between 1.x and 2.x [m2e] Avoid runtime errors due to API changes between 1.x and 2.x [m2e] Ensure a linkable method exists in M2E 2.x Add tests for default java import behaviours

Tom Tresansky (1): gradle: Use an ArtifactView for jar library elements selection

Wouter Born (2): Fix maven plugins link in README.md Index only JAR artifacts in IndexerMojo

dependabot[bot] (128): build(deps): Bump github/codeql-action from 2.1.31 to 2.1.32 build(deps): Bump ruby/setup-ruby from 1.121.0 to 1.123.0 build(deps): Bump github/codeql-action from 2.1.32 to 2.1.33 build(deps): Bump maven-install-plugin from 3.0.1 to 3.1.0 in /maven build(deps): Bump actions/setup-java from 3.6.0 to 3.7.0 build(deps): Bump github/codeql-action from 2.1.33 to 2.1.35 build(deps): Bump ruby/setup-ruby from 1.123.0 to 1.126.0 build(deps): Bump actions/setup-java build(deps): Bump ruby/setup-ruby from 1.126.0 to 1.127.0 build(deps): Bump nokogiri from 1.13.9 to 1.13.10 in /docs build(deps): Bump github/codeql-action from 2.1.35 to 2.1.36 build(deps): Bump actions/setup-java from 3.8.0 to 3.9.0 build(deps): Bump github/codeql-action from 2.1.36 to 2.1.37 build(deps): Bump actions/checkout from 3.1.0 to 3.2.0 build(deps): Bump maven-invoker-plugin in /maven-plugins build(deps): Bump actions/stale from 6.0.1 to 7.0.0 build(deps): Bump ruby/setup-ruby from 1.127.0 to 1.128.0 build(deps): Bump ruby/setup-ruby from 1.128.0 to 1.131.0 build(deps): Bump ruby/setup-ruby from 1.131.0 to 1.133.0 build(deps): Bump actions/download-artifact from 3.0.1 to 3.0.2 build(deps): Bump actions/checkout from 3.2.0 to 3.3.0 build(deps): Bump ruby/setup-ruby from 1.133.0 to 1.133.1 build(deps): Bump actions/upload-artifact from 3.1.1 to 3.1.2 build(deps): Bump ruby/setup-ruby from 1.133.1 to 1.133.2 build(deps): Bump junit-jupiter from 5.9.1 to 5.9.2 in build(deps): Bump github/codeql-action from 2.1.37 to 2.1.38 build(deps): Bump step-security/harden-runner from 2.0.0 to 2.1.0 build(deps): Bump maven-plugin-plugin in /maven-plugins build(deps): Bump maven-plugin-annotations in /maven-plugins build(deps-dev): Bump assertj-core build(deps): Bump github/codeql-action from 2.1.38 to 2.1.39 build(deps): Bump ruby/setup-ruby from 1.133.2 to 1.134.0 build(deps): Bump commonmarker from 0.23.6 to 0.23.7 in /docs build(deps): Bump webrick from 1.7.0 to 1.8.1 in /docs build(deps): Bump github/codeql-action from 2.1.39 to 2.2.1 build(deps): Bump activesupport from 6.0.5.1 to 6.0.6.1 in /docs build(deps-dev): Bump github-pages from 227 to 228 in /docs build(deps): Bump ruby/setup-ruby from 1.134.0 to 1.135.0 build(deps): Bump github/codeql-action from 2.2.1 to 2.2.2 build(deps): Bump actions/setup-java from 3.9.0 to 3.10.0 build(deps): Bump maven-deploy-plugin in /maven-plugins build(deps): Bump github/codeql-action from 2.2.2 to 2.2.4 build(deps): Bump ruby/setup-ruby from 1.135.0 to 1.137.2 build(deps): Bump ruby/setup-ruby from 1.137.2 to 1.138.0 build(deps): Bump maven-invoker-plugin in /maven-plugins build(deps): Bump maven-javadoc-plugin in /maven-plugins build(deps): Bump gradle/wrapper-validation-action from 1.0.5 to 1.0.6 build(deps): Bump gradle/gradle-build-action from 2.3.3 to 2.4.0 build(deps): Bump step-security/harden-runner from 2.1.0 to 2.2.0 build(deps): Bump github/codeql-action from 2.2.4 to 2.2.5 build(deps): Bump ruby/setup-ruby from 1.138.0 to 1.139.0 build(deps): Bump maven-compiler-plugin in /maven-plugins build(deps): Bump maven-plugin-annotations in /maven-plugins build(deps): Bump maven-plugin-plugin in /maven-plugins build(deps): Bump ruby/setup-ruby from 1.139.0 to 1.141.0 build(deps): Bump ruby/setup-ruby from 1.141.0 to 1.143.0 build(deps): Bump ruby/setup-ruby from 1.143.0 to 1.144.0 build(deps): Bump github/codeql-action from 2.2.5 to 2.2.6 build(deps): Bump step-security/harden-runner from 2.2.0 to 2.2.1 build(deps): Bump maven-surefire-plugin in /maven-plugins build(deps): Bump github/codeql-action from 2.2.6 to 2.2.7 build(deps): Bump actions/checkout from 3.3.0 to 3.4.0 build(deps): Bump activesupport from 7.0.4.2 to 7.0.4.3 in /docs build(deps): Bump ruby/setup-ruby from 1.144.0 to 1.144.1 build(deps): Bump ruby/setup-ruby from 1.144.1 to 1.144.2 build(deps): Bump flatten-maven-plugin in /maven-plugins build(deps): Bump actions/stale from 7.0.0 to 8.0.0 build(deps): Bump github/codeql-action from 2.2.7 to 2.2.8 build(deps): Bump actions/checkout from 3.4.0 to 3.5.0 build(deps): Bump maven-deploy-plugin in /maven-plugins build(deps): Bump maven-install-plugin in /maven-plugins build(deps): Bump maven-resources-plugin in /maven-plugins build(deps): Bump actions/setup-java from 3.10.0 to 3.11.0 build(deps): Bump github/codeql-action from 2.2.8 to 2.2.9 build(deps): Bump flatten-maven-plugin in /maven-plugins build(deps): Bump maven-invoker-plugin in /maven-plugins build(deps): Bump ruby/setup-ruby from 1.144.2 to 1.145.0 build(deps): Bump step-security/harden-runner from 2.2.1 to 2.3.0 build(deps): Bump ruby/setup-ruby from 1.145.0 to 1.146.0 build(deps): Bump github/codeql-action from 2.2.9 to 2.2.10 build(deps): Bump github/codeql-action from 2.2.10 to 2.2.11 build(deps): Bump commonmarker from 0.23.8 to 0.23.9 in /docs build(deps): Bump nokogiri from 1.14.1 to 1.14.3 in /docs build(deps): Bump gradle/gradle-build-action from 2.4.0 to 2.4.1 build(deps): Bump github/codeql-action from 2.2.11 to 2.2.12 build(deps): Bump actions/checkout from 3.5.0 to 3.5.2 build(deps): Bump github/codeql-action from 2.2.12 to 2.3.0 build(deps): Bump maven-plugin-plugin in /maven-plugins build(deps): Bump maven-plugin-annotations in /maven-plugins build(deps): Bump ruby/setup-ruby from 1.146.0 to 1.147.0 build(deps): Bump junit-bom from 5.9.2 to 5.9.3 in /maven-plugins build(deps): Bump github/codeql-action from 2.3.0 to 2.3.3 build(deps): Bump step-security/harden-runner from 2.3.0 to 2.4.0 build(deps): Bump gradle/gradle-build-action from 2.4.1 to 2.4.2 build(deps): Bump maven-surefire-plugin in /maven-plugins build(deps): Bump flatten-maven-plugin in /maven-plugins build(deps): Bump ruby/setup-ruby from 1.147.0 to 1.149.0 build(deps): Bump maven-plugin-annotations in /maven-plugins build(deps): Bump maven-plugin-plugin in /maven-plugins build(deps): Bump ruby/setup-ruby from 1.149.0 to 1.150.0 build(deps): Bump maven-source-plugin in /maven-plugins build(deps): Bump github/codeql-action from 2.3.3 to 2.3.4 build(deps): Bump github/codeql-action from 2.3.4 to 2.3.5 build(deps): Bump github/codeql-action from 2.3.5 to 2.3.6 build(deps): Bump maven-surefire-plugin in /maven-plugins build(deps): Bump ruby/setup-ruby from 1.150.0 to 1.151.0 build(deps): Bump github/codeql-action from 2.3.6 to 2.13.4 build(deps): Bump actions/checkout from 3.5.2 to 3.5.3 build(deps): Bump ruby/setup-ruby from 1.151.0 to 1.152.0 build(deps): Bump maven-invoker-plugin in /maven-plugins build(deps): Bump step-security/harden-runner from 2.4.0 to 2.4.1 build(deps): Bump gradle/gradle-build-action from 2.4.2 to 2.6.0 build(deps): Bump gradle/gradle-build-action from 2.6.0 to 2.6.1 build(deps): Bump org.junit.jupiter:junit-jupiter in /gradle-plugins build(deps): Bump org.junit.jupiter:junit-jupiter in /gradle-plugins build(deps): Bump actions/setup-java from 3.11.0 to 3.12.0 build(deps): Bump step-security/harden-runner from 2.4.1 to 2.5.0 build(deps): Bump gradle/gradle-build-action from 2.6.1 to 2.7.0 build(deps): Bump org.junit:junit-bom in /maven-plugins build(deps-dev): Bump commonmarker from 0.23.9 to 0.23.10 in /docs build(deps): Bump step-security/harden-runner from 2.5.0 to 2.5.1 build(deps): Bump org.apache.maven:maven-core build(deps): Bump gradle/gradle-build-action from 2.7.0 to 2.7.1 build(deps-dev): Bump activesupport from 7.0.4.3 to 7.0.7.2 in /docs build(deps): Bump actions/checkout from 3.5.3 to 3.6.0 build(deps): Bump gradle/gradle-build-action from 2.7.1 to 2.8.0 build(deps): Bump actions/checkout from 3.6.0 to 4.0.0 build(deps): Bump actions/upload-artifact from 3.1.2 to 3.1.3

scottslewis (5): Removed Bundle-Version from serviceTemplate bnd.bnd Removed meta-data from bnd.bnd. Minor cleanup Undid previous generalization. Don't want to expose BundleContext Enhanced P2 Repo Refresh Action label to include P2Index.url

Clone this wiki locally