Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cross-project-issues-dev] JDK 9 Early Access with Project Jigsaw

Hi Wayne,

Thanks for running jdeps I've fixed most of the none public API useages
and we are working with the OpenJFX-Team to make the other necessary
APIs public in Java9 as well and will reside to reflection to switch
between Java8 and Java9 APIs.

The biggest problem although is the JavaFX-SWT-Bridge which is going to
be a nightmare. I'm not sure we as the e(fx)clipse team have the
resources to fix the problems like we did it for all of you in Java8
where you don't have to worry about all the mess.

For those not familiar with it: FXCanvas allows to embed JavaFX into an
SWT application (similar to the SWT_AWT-Bridge). It is shipped as part
of the JRE/JDK but is *NOT* on the classpath because FXCanvas itself is
a subclass of SWT-Canvas.

In Java7/8 e(fx)clipse simply creates an URLClassLoader who has the
SWT-Bundleclassloader as its parent and making FXCanvas available to you
through AdapterHooks.

Now in a Java9 world we have the situation that we have a Java9-Module
who has a dependency on SWT which runs in the unnamed module.

I've created a bug [1] but as of today I'm clueless how to address this
chicken and egg problem and as said above I currently don't have cycles
to look into this in my spare time.

I've talked to the OpenJFX-Team at JavaOne and they see the problem with
FXCanvas (in an OSGi-Env) and want things to work as smooth in Java9 as
it does in Java7/8 but require my help.

What worries me is that we have to work with Oracle on the API but
without having the time to investigate the whole situation we are lost
and time is ticking.

Anyone relying on FXCanvas should be worried as well. If FXCanvas is not
available in Java9 e(fx)clipse will loose some of its advanced features
(like automatic preview of FXML-Files, Gradient-Dialogs) which is bad
but does not break our neck but other projects might be useless without
it (GEF4 if not mistaken!).

As our runtime does not require SWT at all the missing FXCanvas is not a
problem for the area BestSolution is putting its resources on.

Tom

[1]https://bugs.eclipse.org/bugs/show_bug.cgi?id=482428

On 16.11.15 22:24, Wayne Beaton wrote:
> Greetings folks!
> 
> I just posted a blog entry [0] regarding my initial experiences using
> JDK 9 Early Access with Project Jigsaw [1] with Neon.
> 
> By way of background, Jigsaw is the project that's bringing modularity
> to Java. The modularity implementation imposes restrictions on
> visibility that have a direct impact on code that uses internal code. In
> the past you may have had to deal with severe scolding over the use of
> internal packages, but with the current EA bits, this sort of use
> results in runtime exceptions.
> 
> The download comes with a handy tool named jdeps that--among other handy
> services--will scan Java code for soon-to-be illegal access of JDK
> internals.
> 
> The good news is that both the Mars and Neon repositories show that we
> have very few violations in Eclipse project code.
> 
> The very good news is that the Neon M2 and M3 builds both seems to run
> just fine on the current JDK 9 + Jigsaw builds. Unless you use the
> SWT_AWT bridge, that is... Unfortunately, jdeps only noticed a problem
> that I think shouldn't really a problem, but in the process of
> investigating, I noticed that SWT_AWT does a Class.forName(...) lookup
> that results in what the Jigsaw team will regard as a legitimate violation.
> 
> My initial investigations suggest that e(fx)clipse and Scout are taking
> the biggest hit. I don't know enough about JavaFX to make a particuarly
> intelligent assessment, but it looks to me like what should be the
> entire public API is showing up as inaccessible. Riena gets an
> honourable mention with one test case that uses an internal API. I've
> attached the reports generated from the Mars and Neon repositories.
> 
> Pay heed to my comment about Class.forName(...) above. You may have to
> test your code directly. You should probably do that anyway.
> 
> Wayne
> 
> [0]
> https://waynebeaton.wordpress.com/2015/11/16/eclipse-ide-on-jdk-9-early-access-with-project-jigsaw/
> [1] https://jdk9.java.net/jigsaw/
> [2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=482318
> -- 
> Wayne Beaton
> @waynebeaton
> The Eclipse Foundation
> EclipseCon Europe 2015 <http://www.eclipsecon.org/europe2015>
> 
> 
> _______________________________________________
> 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
> 


-- 
Thomas Schindl, CTO
BestSolution.at EDV Systemhaus GmbH
Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck
http://www.bestsolution.at/
Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck


Back to the top