-
-
Notifications
You must be signed in to change notification settings - Fork 305
Changes in 5.1.0
- Bndtools is built to run on Eclipse 2018-12 or later. So Bndtools 5.0 may not run on older versions of Eclipse.
- A quick fix to add a dependency to
-buildpathor-testpathbased on the class name. - Find function in the JAR Editor
- Paste is now working in the Bndtools explorer
- Debug sources now include all
-runee,-runfw,-runpathand-runbundleswhen launching in debug mode (see compatibility notes) - Fixed some baseline reporting errors
- Better visualizations of the repositories. Standardized icons & better error reporting.
-
-generatesupport. Plugins can be local projects - Bnd Pom Repositories got a menu action to copy the GAVs to make it easy to migrate to the Maven Bnd Repository
- Removed Build path page from New Project wizard to prevent confusion
- Bnd Editor now can handle files outside the Eclipse workspace
- Rewritten & much improved JAR Editor
- Bndtools explorer now supports pseudo targets to filter on. You can filter on ':error' and ':warning' (':e',':w') in the filter box. You can of course combine those with other searches like
:e|testto see all error projects + test projects. - Add new Parameterized Eclipse commands for use in the
Quick Accessdialog. You can type the name of a project or the name of a bndrun file to execute those commands.
- Bndtools m2e is built to run on Eclipse m2e 1.10.0 (m2e version used in Eclipse 2018-12) or later. So Bndtools m2e 5.0 may not run on older versions of Eclipse or Eclipse m2e.
- Maven Dependencies repository appears in the Bndtools Repository view populated with all dependencies referenced from maven projects in the Eclipse workspace (if such exist).
-
Maven Workspace repository appears in the Bndtools Repository view populated with all artifacts produced by
bnd-maven-pluginexecutions from maven projects in the Eclipse workspace (if such exist).
-
P2Repository now supports the 'packed' format (pack200) when using a JDK which includes the
unpack200command. Bnd uses theunpack200command to support the pack200 format. -
Bnd made significant improvements to Bundle indexing and requirement/capability matching:
- Bnd now includes
bundle-symbolic-nameandbundle-versionattributes on package capabilities to allow these attributes to be interrogated by the filter expressions of package requirements. - Bnd now includes all attributes on a wiring namespace capability (e.g.
Export-Package) to allow these attributes to be interrogated by the filter expressions of requirements. See Attribute Matching. - Bnd now includes all attributes on a wiring namespace requirement (e.g.
Import-Package) in the filter expression to allow these attributes to be matched to capabilities. See Attribute Matching. - Bnd now handles the
mandatorydirective on a wiring namespace capability (e.g.Export-Package) when matching requirements to capabilities. See Mandatory Attributes.
- Bnd now includes
-
Java 15 is now supported.
-
bnd.hashesattribute on packages for quick lookup of class name -
bnd.mainclasscapability when a Manifest contains a Main-Class header -
Projects now can build a Resource for each build bundle
-
Faster filters by caching converted filter value
-
-noparallelinstruction to mark a project's Gradle tasks to not build in parallel when using Gradle's--paralleloption. -
Fixed bug in automatic sources from Maven resources in the Maven Bnd Repository
-
Improved error handling & reporting of the Maven Bnd Repository, OSGi Repository, and Bnd Pom Repository
-
Added a template processor
JavaGenthat can leverage the-generateinstruction, using the build properties as its domain. -
A new
-generateinstruction that can generate source code before the compiler runs in the build. See generate -
Cleanup of workspace repositories, removed the .index file.
-
Handling of mandatory attributes in resolve
-
-define-contract instruction.
-
A findproviders macro that provides access to the workspace repositories
-
Changed the filenames in the executable JARs from the default launcher to not contain versions. See -executable
-
OSGi Connect runs OGSi apps without a classloader per bundle. The default launcher supports an OSGi Connect ModuleConnector with the Java Service Loader. Just adding a ModuleConnector service loader service in -runfw will make the launcher initialize the framework with it.
-
A new
-runframeworkrestartcommand. If set to true, the launcher will restart the framework after it has been stopped. Thelaunch.framework.restart.countis a system property with the # of the framework invocation, starting with zero. -
Corrupt JAR files are now reported, they were reported as [Not a bundle]. They are now deleted and reported as corrupt. The deletion should automatically enforce a reload after refresh.
-
When the MavenBndRepository configuration setting
noupdateOnReleaseis not set totrue, MavenBndRepository will now update the index file when releasing SNAPSHOT artifacts. -
Performance improvement for building projects whose bnd files use
${system}macros. For the duration of a project build, Bnd now caches results from${system}macro evaluations to avoid repeated evaluations. -
MavenBndRepository has been enhanced to better make sources jars during release. If the releasing bundle does not contain an
OSGI-OPT/srcfolder (as made by-sources: true) and the-maven-releaseinstruction does not specifysources;path=for some path containing sources, MavenBndRepository will attempt to find a java source file for each class in the bundle using the project's-sourcepathvalue. You can supply an alternate source path for finding java source files by specifying a-sourcepathattribute on the-maven-releaseinstruction'ssourcesclause. For example:-maven-release: sources;-sourcepath="${project.allsourcepath}" -
Improved dependencies section in generated pom.xml by passing GAV information from the repositories through to the pom generator.
-
New
aQute.lib.memoizepackage with support for memoizing Suppliers in several fashions.
- Support for the generate function in the
_parcommand and added a specificgeneratecommand. -
mbrcommand to maintain .mvn files - Many reporting improvements
- Improvements to bnd nexus sign command.
- The --key option allows the user to sign with a key other than the gpg default key.
- A --settings option to the nexus command to specify the -connections-settings property to allow the user to specify connection settings other than the default.
- A --from uri that will get the archives from another repository
- --xclude && --include to filter the archives when fetching
Documentation annotations are also added so that the bnd help command can provide helpful output.
- Minor improvements and doc pages for new features.
- Improved handling/discovery of attached artifacts.
- The Bnd Gradle plugins now require a minimum of Gradle 5.1 for Java 8 to Java 12 and Gradle 6.0 for Java 13.
- 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.
- The
-runvminstruction takes a comma-separated list of arguments to pass to the VM launch. Due to poor processing of this instruction, Bndtools previously accepted space-separated arguments when launching in Eclipse. Improvements to the processing of the-runvminstruction to better handle arguments with embedded spaces and double quote characters means that a space-separated-runvmvalue will be treated as a single argument rather than multiple arguments. Please ensure the-runvm(and-runprogramargs) instructions are specified with comma-separated arguments. Use of space-separated argument on-runvmcan lead to failure to launch the VM. See https://github.com/bndtools/bnd/issues/3869. - Bnd made significant improvements to Bundle indexing and capability to requirements matching. This includes adding attributes to capabilities and to requirement filter expressions. It also includes support for mandatory attributes. So using Bnd to resolve bundles built in the workspace against indexes generated by older versions of Bnd, or other index generators, may result in resolution failures. The older indexes may not include the necessary attributes on capabilities to match newly generated filter expressions. The filter expressions in older indexes may not include mandatory attributes and so may not match capabilities which have a mandatory directive. You may need to regenerate older indexes with the latest Bnd.
- The enhanced debug source handling updates the set of sources provided by the
Bnd Dependenciessource container, but it does not affect any other sources that may configured in the sources tab of your debug launch configuration. These include theDefaultsource container (which Bndtools added by default to every launch configuration prior to 5.1) and any other sources that you may have added manually (probably to try and fill the gaps that the oldBnd Dependenciescontainer was leaving). The newBnd Dependenciessource container generation is much more complete and should already have everything in it that you need. As such, it is most likely that these other source lookup containers are at best superfluous, but they may also slow down your source lookup or cause the debugger to look up the wrong source. Hence it is recommended to remove them from your existing debug configurations. Newly-created debug configurations will have only theBnd Dependenciescontainer by default.
-
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.