Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cross-project-issues-dev] e(fx)clipse participating in Mars release

Hi Tom,

Am 08.09.2014 um 10:09 schrieb Tom Schindl <tom.schindl@xxxxxxxxxxxxxxx>:

Hi,

From a e(fx)clipse point of view we will load the javafx libraries from
the JRE you are running on and JavaFX is a singleton like anything you
get from the JRE as well (you can not load multiple version of javafx at
once!), if you are running on JRE 1.7 you get JavaFX 2.2 classes if you
run on JRE 1.8 you get JavaFX8 classes.

I was not challenging the fact its a singleton (I also think it has to be one), I was just wondering how that is related to the version constraints specified in the package exports (see comments below).


If you require Java8 features you need *your* bundle to require a an EE
for JavaSE-1.8 (in reality this might not be enough because what you'd
really want to spec is that you want OpenJDK/OracleJDK 1.8!).

Our fake bundle will never define an EE itself.

Please also note that because JavaFX is NOT JSRed they are adding
methods and features inside Java8 releases as well so an EE (e.g. in
8u40 you get a Dialog-API, ...).

That was what I meant with 'would not the bundle's BREE be the right indicator for its required JavaFX version'. I agree, the fact that its not JSRed will obviously not make it a 100% fit either, but neither will version constraints on the package imports (if they only indicate when a package was made available first). The more I think about it, the more I get the impression that a proper solution would probably require something like a BREE definition for JavaFX (or an extension of the current BREEs to this extend). 

Anyway, what will definitely be needed is something like we now have in terms of Execution Environment Descriptors, so one can confirm that the code base only makes use of those JavaFX features it is actually intended to do.


The versioned package exports only tell you in which JavaFX release the
package was exposed the first time - I know this is not proper use of
OSGi-Versions and maybe we should have omitted them completely but that
would be a breaking change for anyone out there having versioned package
imports on the other had simply updateing them to javafx 8.0 seems
invalid as well.

I assumed a different usage of the version constraints and thus could not understand how consistency is ensured, but now that got clear. Actually, I don't have a strong opinion on that (yet). I just saw that a couple of problems occurred from something similar in the context of the javax.annotation orbit bundle (which also exports packages with a version constraint; thus preventing clients to be resolved against the respective packages now provided by a the JRE itself; see https://bugs.eclipse.org/bugs/show_bug.cgi?id=424274), but I assume we will not run into similar problems here unless JavaFX is placed on any of the default classpaths.


In case there's consensus from people here that our version package
exports are so wrong that this blocks integration I'm willing to break
people and require them to update their applications to use unversion
package imports.

Tom

Cheers
Alexander


On 07.09.14 11:57, Alexander Nyßen wrote:
Let me add another question to this discussion: As JavaFX 8 is now
around (in addition to JavaFX 2.2), what will be the strategy to deal
with the different JavaFX versions? 

Up to now it seems the org.eclipse.javafx bundle exports the javafx
packages with version constraints. As its a singleton, there will only
be one org.eclipse.javafx bundle in an Eclipse installation, and for
clients (with package imports) the available JavaFX version will thus
depend on that bundle's package exports. However, org.eclipse.javafx is
just a dummy bundle, so the version of the actually loaded JavaFX
classes will IMHO depend on the JRE that was used to start the
application (or whatever strategy the org.eclipse.fx.osgi fragment uses
to locate them). 

How can you ensure that stays consistent? Doesn't it mean you will have
to remove the version constraints from the org.eclipse.javafx bundle as
soon as you are going to support multiple JavaFX versions (so the
version will be decided at runtime when org.eclipse.fx.osgi loads the
classes)? And wouldn't that imply that clients could also not specify
version constraints on their package imports, because these could
otherwise not be resolved? If this was the case, then would not the
bundle's BREE be the right  indicator for its required JavaFX version
(as its done for all other JRE provided classes; of course implicating
some support for JavaFX within the Execution Environment Descriptors)?
Or does it mean for Mars there will only be an org.eclipse.javafx bundle
that is bound to BREE 1.8 and exposes JavaFX 8 only (and there will be
no support for JavaFX 2.2 and BREE 1.7)? 

Cheers
Alexander

Am 22.08.2014 um 09:17 schrieb Alexander Nyßen
<Alexander.Nyssen@xxxxxxxxx <mailto:Alexander.Nyssen@xxxxxxxxx>>:

Tom, 


I suppose all this means that no bundle with javafx dependencies can
resolve or run without this specific org.eclipse.fx.javafx bundle being
present.  Again, it's none of my personal business, but if this is
indeed the only solution, would Orbit be a better host for such a thing?

org.eclipse.fx.javafx and org.eclipse.fx.osgi have to be in your runtime.

what I infer from your detailed elaboration (thanks for bringing light
into the darkness) is that it would make no sense at all to separate
org.eclipse.fx.javafx from org.eclipse.fx.osgi, because without the
org.eclipse.fx.osgi fragment the org.eclipse.javafx bundle would be
useless at runtime. 

Nevertheless, couldn't it be an option to have both within Orbit? From
a (simrel) participant client's perspective this could make things
easier (but probably only if these bundle would then also be provided
by some +0 component). 


Tom

Cheers
Alexander 


[1]http://git.eclipse.org/c/efxclipse/org.eclipse.efxclipse.git/tree/bundles/runtime/org.eclipse.fx.osgi/src/org/eclipse/fx/osgi/fxloader/FXClassLoader.java
_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
<mailto:cross-project-issues-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

--
Dr. Alexander Nyßen
Dipl.-Inform.
Software-Engineer

Telefon: +49 (0) 231 / 98 60-210
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743

http://www.itemis.de <http://www.itemis.de/> 
alexander.nyssen@xxxxxxxxx <mailto:alexander.nyssen@xxxxxxxxx> 

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus, Dr. Georg Pietrek,
Jens Trompeter, Sebastian Neus

Aufsichtsrat: Dr. Burkhard Igel (Vors.), Stephan Grollmann, Michael
Neuhaus


_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
<mailto:cross-project-issues-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

--
Dr. Alexander Nyßen
Dipl.-Inform.
Software-Engineer

Telefon: +49 (0) 231 / 98 60-210
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743

http://www.itemis.de 
alexander.nyssen@xxxxxxxxx <mailto:alexander.nyssen@xxxxxxxxx> 

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus, Dr. Georg Pietrek,
Jens Trompeter, Sebastian Neus

Aufsichtsrat: Dr. Burkhard Igel (Vors.), Stephan Grollmann, Michael Neuhaus




_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev


_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

--
Dr. Alexander Nyßen
Dipl.-Inform.
Software-Engineer

Telefon: +49 (0) 231 / 98 60-210
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743

http://www.itemis.de 
alexander.nyssen@xxxxxxxxx 

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus, Dr. Georg Pietrek, Jens Trompeter, Sebastian Neus

Aufsichtsrat: Dr. Burkhard Igel (Vors.), Stephan Grollmann, Michael Neuhaus


Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail


Back to the top