New and Noteworthy

New Features

List of accessible system packages of bundle runtime execution environment is now respected during project dependency resolution and java compilation. This makes sure that bundles do not accidentally reference JRE classes that may not be available in all runtime environments supported by the bundles.

If bundle project supports multiple runtime execution environments, Tycho will use the list of packages from the most restricted environment by default. Build target execution environment can be specified explicitly using new <executionEnvironment> target platform configuration parameter. For backwards compatibility with PDE, jre.compilation.profile build.properties property is supported too.

Additionally, tycho-compiler-plugin can be configured to use different JDK libraries for different bundle runtime execution environment. Additional JDKs are configured using Maven toolchains.xml, where toolchain id element is matched to execution environment profile name. For example

Filters on the target platform allow for Maven-style dependency management: You can now easily restrict the versions of individual bundles in your target platform or even pick one specific provider for an exported package. Additionally, you can completely exclude all versions of a bundle from the target platform and in that way, for example, prevent the installation of optional dependencies in a product.

Improvements and Fixes

Optional bundle dependencies are fully supported during compilation now. By default, Tycho treats optional dependencies as required, if this is not what you want, the following configuration can be used to make Tycho ignore optional dependencies