Skip to content
Peter Kriens edited this page Oct 9, 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
  • MojoExecutionExceptions prevented when using the bndtools m2e plugin and maven-jar-plugin 3.x.

Bnd

  • Removes Require-Capability for osgi.service AnyService
  • 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.8.1.
  • 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