Gradle build, one step forward, two backward :)
Richard Bair
richard.bair at oracle.com
Mon Jul 8 09:09:43 PDT 2013
> Caused by: java.lang.NullPointerException
> at
> com.sun.javafx.font.PrismFontLoader.loadFont(PrismFontLoader.java:220)
> at javafx.scene.text.Font.<init>(Font.java:318)
> at javafx.scene.text.Font.getDefault(Font.java:85)
> at javafx.scene.CssStyleHelper.<clinit>(CssStyleHelper.java:1329)
>
> :(
>
> Was't the font code open sourced?
You are on Linux I'm guessing (educated guess). The open source linux implementation was I believe just barely pushed. Which repo are you building from (master or graphics)?
> 2. *** OpenJDK with closed jfxrt.jar ***
>
> The OpenJDK build fails before getting anywhere, which is very
> surprising to me:
>
> JAVA_HOME=/open/jdk-8/
> BINARY_STUB=/closed/jdk-8-ea-96/jre/lib/ext/jfxrt.jar
>
> [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on
> artifact cache (/home/neugens/.gradle/caches/artifacts-23).
> [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter]
> Finished executing task ':graphics:compileJava'
> [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with
> an exception.
> * What went wrong:
> Could not resolve all dependencies for configuration
> ':graphics:compile'.
>> Could not find :plugin:.
> Required by: rt:graphics:unspecified
> * Exception is:
> org.gradle.api.artifacts.ResolveException: Could not resolve all
> dependencies for configuration ':graphics:compile'.
> at
> org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.rethrowFailure(DefaultLenientConfiguration.java:52)
> at
> org.gradle.api.internal.artifacts.ivyservice.DefaultResolvedConfiguration.rethrowFailure(DefaultResolvedConfiguration.java:36)
>
> Any help here would be great... I don't see why OpenJDK is not able to
> build OpenJFX, even having the closed jar in the path.
Ah. OK. The problem here is that a couple of the modules require the plugin.jar because of JSObject.java. Possibly if we move the file from web module to base (or graphics module) then we wouldn't need this dependency. If you edit build.gradle and comment out the plugin dependency and do a build, you should see where the build failures occur.
I did a search and see JSObject.java in two places, web and graphics modules. Yikes.
> 3. *** Closed JDK with openjfxrt.jar ***
>
> This fails. I expected this, but the build goes very far it seems:
>
> public final class AudioClipBuilder implements
> javafx.util.Builder<javafx.scene.media.AudioClip>
> [...]
>
> symbol: class WebEvent
> location: class WebEngineBuilder
> error: cannot find symbol
> […]
I guess this is looking for media files. When they are open sourced hopefully this will work.
> 4. *** OpenJDK with just created open jfxrt.jar ***
>
> Well, you guessed this fails too... I wonder how the iOS people got
> their code working at all... Is there any secret repository you guys are
> using?
Probably the same issue as #3? The iOS folks are skipping media & web I believe.
> 5. *** Running OpenJDK with closed jfxrt.jar ***
>
> This is even nicer:
>
> Graphics Device initialization failed for : es2, sw
> Error initializing QuantumRenderer: no suitable pipeline found
> java.lang.RuntimeException: java.lang.RuntimeException: Error
> initializing QuantumRenderer: no suitable pipeline found
> [...]
> Caused by: java.lang.RuntimeException: No toolkit found
> at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:213)
> at
> com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:181)
> at
> com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:637)
> at
> com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:345)
> at
> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:304)
This happens if the native libraries cannot be found. They need to be located relative to the jfxrt.jar that you are using. How are you running this application?
> I think the OpenJDK build (2.) and running closed jfrt.jar + OpenJDK
> (5.) are the most serious issues at the moment.
>
> I remember that running closed jfx with OpenJDK used to work, but maybe
> I'm wrong.
>
> Any plans to address that, or hints where I can start looking to help
> out?
Actually I think we should start here with just a fully open build. Anything using media will fail at runtime, but we should still be able to compile and I think the native font stuff for linux is out there, along with build changes by Peter to support fully open builds of web view. I'm going to fire up a new VM with a completely clean Ubuntu system and try building with OpenJDK so I can follow along.
Richard
More information about the openjfx-dev
mailing list