Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cbi-dev] bundle runtime/build execution environment

yes, the profile should be optional, please update the pom

--
Regards,
Igor

On 12-08-15 3:27 PM, Thanh Ha wrote:
Hi Igor,

After applying these patches to the CBI repo I noticed that when running
a build you must have the ee libraries you provided in Bug 386649 setup
on your build system in order to build regardless of if you pass
*-Pbree-libs* or not. If you don't have the ee libraries and toolchains
setup the build will fail when building
*org.eclipse.equinox.frameworkadmin.equinox*.

I'd like to understand if the profile bree-libs is intended to be
optional or not. If it's supposed to be optional I guess we need to
modify the pom in [1] to use profiles.

Thanks,


Thanh

[1]
http://git.eclipse.org/c/cbi/rt.equinox.p2.git/diff/bundles/org.eclipse.equinox.frameworkadmin.equinox/pom.xml?h=Juno_RC4&id=7ecdb48d592cbf6035ae1b41ab6e90122e3add14


On 06/08/2012 9:28 AM, Igor Fedorenko wrote:
I've opened couple of bugs [1] and [2] that explain how to enable use of
proper execution environment and jre libraries for the Platform build.
This fixes all but one class file discrepancies between CBI-built
bundles and corresponding bundles in Juno and I'd like to ask Platform
developers to review build configuration changes attached to bug 386646
[1]. I am particularly concerned about this

* there are cases where Juno bundles appear to be built for specific EE
but I could not explain why. Likely just the lack of understanding on my
part, but could be a problem with Juno bundles, I am not sure.
* there are cases when bundles use classes/methods not available there
minimal EE.
* there are cases when bundles are compiled higher class version than
supported by their minimal EE.
* p2 build is basically a mess. I had to force EE=J2SE-1.4 by default
but then override many bundles to use either 1.5 or one of restricted
EEs.

Some background information about default tycho behaviour.

Normally Tycho uses minimal runtime execution environment (EE for short)
declared in bundle manifest to determine system classes visible to the
bundle as well as java compiler source and target levels. It is also
possible to instruct Tycho to use EE-specific JRE libraries during
compilation. The goal is to detect any possible incompatibilities with
EE during the build. This default behaviour does not work in all cases
and Tycho provides configuration parameters to override both build EE
and java compiler source/target levels.

There are two reasons I usually recommend using Tycho default behaviour
whenever possible. First, build-specific configuration will likely
suppress build-time validation of bundle compatibility with its declared
minimal EE. For example, bundle with CDC-1.1/Foundation-1.1 but built
against J2SE-1.5, can be using java 5 classes/methods. Second, build
configuration will need to be updated if bundle EE requirements change
in the future.

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=386646
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=386649

--
Regards,
Igor
_______________________________________________
cbi-dev mailing list
cbi-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cbi-dev




_______________________________________________
cbi-dev mailing list
cbi-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cbi-dev



Back to the top