When %%bootstrap flag is set, Tycho will build without a BR on Eclipse or
Tycho. This can be used to build when these packages are not yet on the
buildroot. This requires a zipped reactor cache containing the
dependencies that would have been provided by Tycho, and Eclipse.
Mavenized versions org.eclipse.osgi and org.eclipse.jdt.core were
provided by Eclipse, but since it depends on Tycho at build-time, we
cannot depend upon it at runtime. Therefore we must provide these
bundles.
When the version of Tycho being built is the same as the version of
Tycho installed on the system, two builds must be performed to avoid a
cyclic dependency. The first build is an intermediary build to change
the version to something different from the final build. Most often this
happens when only the release tag is modified.
Tycho's self-packaged Eclipse equinox launcher should be used to to
publish bundles and features as a p2 repository, rather than depending
on Eclipse itself. This will avoid the cyclic dependencies.
When a jar under %%{_javadir} is symlinked, it may clash with other jars
of the same name (eg. multiple core.jar that are osgi bundles).
This is also a non-bootstrap build.
Fedora Eclipse now compiles all JSR14 upstream bundles with a target of
1.5, allowing us to leave in place parts of Tycho code that use those
particular libraries with generics.
We set the BREE to JavaSE-1.6 for 'eclipse-plugin',
'eclipse-test-plugin', and 'eclipse-feature' packaging types but we
should do this for all packaging types. (eg. 'eclipse-repository',
'eclipse-application', 'eclipse-update-site')
By default a build in local mode should ignore the user-defined
environments and use the system's environment. In some cases it may be
necessary to bypass this functionality.
When running Tycho in local mode, dependencies will be resolved for all
environments defined in target-platform-configuration. Only the running
environment should be used.
When the path to the plugins/features folder for a set of bundles is
"%%{_datadir}/eclipse/dropins/${name}" (missing the additional eclipse
folder), the linking of its jars will fail.
Automatically create a local p2 repository of all bundles on the system
so that they may be used for local dependency resolution. This is done
using a modified version of Eclipse's copy-platform script.
When running an Eclipse bundle's tests, Tycho Surefire resolves its
runtime dependencies using a class loader, which is in fact just looking
through Bundle-ClassPath. As a result, it must copy over and include
system jars in its Bundle-ClassPath. We use Fedora system jars to
satisfy these dependencies but even these jars differ slightly in terms
of provided classes.
Since Fedora 17, we need an Execution Environment of at least JavaSE-1.6
for Eclipse bundles. Eclipse Juno platform bundles depend on
javax.annotation. In Fedora this is provided by geronimo-annotation, but
has a dependency on javax.lang.model (since 1.6).