Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Defining new execution environments for Java 8 SE compact profiles

Thomas,

Wiki [1] has more details, but in short, Tycho uses most restrictive EE
supported by the bundle by default, but it is possible to override this
either with build.properties or pom.xml configuration. List of known
profiles and their definitions comes from Equinox and it is possible to
introduce custom profiles too.

Looks like we'll need to update Tycho to support osgi.ee requirement. Do
you think you can open an enhancement request in bugzilla and provide
links to relevant OSGi specs there?


[1] http://wiki.eclipse.org/Tycho/Execution_Environments

--
Regards,
Igor

On 2014-04-08, 0:41, Thomas Watson wrote:
In an effort to support compact profiles in Java 8 I have been looking
into defining a new execution environment JavaSE/Embedded in OSGi [1]
that can be used to represent the different compact profiles.  But we
are quickly running against an issue with our tycho base build for
tolerating BREEs with values for "unknown" execution evnironments For
example,

  Bundle-RequiredExecutionEnvironement: JavaSE-1.5, JavaSE/Embedded-1.8

This would indicate that the bundle can run on any VM that supports
JavaSE-1.5 or the new JavaSE/Embedded-1.8 (which represents compact1
profile).  But this generates the following error from our tycho build:

[ERROR] Internal error:
org.eclipse.tycho.core.osgitools.OsgiManifestParserException: Exception
parsing OSGi MANIFEST
/jobs/genie.eclipse.platform/rt.equinox.bundles-Gerrit/workspace/bundles/org.eclipse.equinox.console/META-INF/MANIFEST.MF:
Unknown OSGi execution environment: 'JavaSE/Embedded-1.8' -> [Help 1]
org.apache.maven.InternalErrorException: Internal error:
org.eclipse.tycho.core.osgitools.OsgiManifestParserException: Exception
parsing OSGi MANIFEST
/jobs/genie.eclipse.platform/rt.equinox.bundles-Gerrit/workspace/bundles/org.eclipse.equinox.console/META-INF/MANIFEST.MF:
Unknown OSGi execution environment: 'JavaSE/Embedded-1.8'

The error message is helpful and informative, but I am wondering why
tycho must know all listed EE values.  After all, the bundle can only be
compiled against one execution environment during the build, right?
  Which one would you pick if both were known?  I seem to remember there
being some pom.xml magic I can use to force a particular execution
environment to be used.  For each bundle that uses JavaSE/Embedded-1.8
EE am I going to have to use such magic?  Or am I going to have to
somehow inform tycho of this new execution environment?

Tom

P.S. For folks that wonder how bundles can specify requirements on
compact2 or compact3 profiles this has to be done using an osgi.ee
generic requirement which provides more flexibility for matching against
attributes of the execution environment.  And if you did not know, the
Bundle-ExecutionEnvironment is actually deprecated as of OSGi R4.3 in
favor of using an osgi.ee requirement.

[1] _https://bugs.eclipse.org/bugs/show_bug.cgi?id=432027_

Tom



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user



Back to the top