Gradle build progress

Richard Bair richard.bair at oracle.com
Wed Mar 20 13:52:15 PDT 2013


Thanks Peter! That is indeed the problem. Basically there are some glass accessible classes which, if ever attempted to be used, would fail at runtime because they were compiled against classes not included in jfxrt.jar :-/. I am betting a quick look in the build files would find that those packages are not compiled in the existing ant-based open build.

Richard

On Mar 20, 2013, at 1:46 PM, Peter Pilgrim <peter.pilgrim at gmail.com> wrote:

> Sorry. I was away temporarily.
> 
> peterpilgrim at Peters-MacBook-Pro-3.local [577] >  jar -tvf
> ../artifacts/sdk/rt/lib/ext/jfxrt.jar | grep "accessible"
>     0 Wed Mar 13 14:21:36 GMT 2013 com/sun/glass/ui/accessible/
>     0 Wed Mar 13 14:21:40 GMT 2013 com/sun/glass/ui/accessible/mac/
>     0 Wed Mar 13 14:05:56 GMT 2013 com/sun/javafx/accessible/
>     0 Wed Mar 13 14:21:42 GMT 2013 com/sun/javafx/accessible/providers/
>     0 Wed Mar 13 14:21:40 GMT 2013 com/sun/javafx/accessible/utils/
>     0 Wed Mar 13 14:21:40 GMT 2013 com/sun/javafx/scene/control/accessible/
>   733 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/AccessibleBasePatternProvider.class
>  3134 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/AccessibleBaseProvider.class
>   924 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/AccessibleLogger$1.class
>  1855 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/AccessibleLogger.class
>  3323 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/AccessibleRoot.class
> 11084 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleAttributes$MacAttribute.class
>   482 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleAttributes.class
>   518 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleBasePatternProvider.class
>  8354 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleBaseProvider.class
>  3252 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleEventIds$MacEventId.class
>   470 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleEventIds.class
>  4233 Wed Mar 13 14:06:02 GMT 2013
> com/sun/glass/ui/accessible/mac/MacAccessibleRoles$MacRole.class
> 
> 
> On 20 March 2013 20:41, Richard Bair <richard.bair at oracle.com> wrote:
>> Peter replied off thread that indeed he has jfxrt.jar in the right place! I'm thinking perhaps the problem is that the Accessible classes here that are being relied on have not yet been open sourced and neither have they found their way into jfxrt.jar, and thus we have a bit of a problem!
>> 
>> I will try filtering out the accessible package from glass so that it is not built.
>> 
>> Richard
>> 
>> On Mar 20, 2013, at 1:13 PM, Richard Bair <richard.bair at oracle.com> wrote:
>> 
>>> Hi Peter,
>>> 
>>> This will be because the stub binary is not available. Where do you have the JDK 8 b81 jfxrt.jar file located?
>>> 
>>> Thanks!
>>> Richard
>>> 
>>> On Mar 20, 2013, at 1:03 PM, Peter Pilgrim <peter.pilgrim at gmail.com> wrote:
>>> 
>>>> Hey Richard
>>>> 
>>>> I just tried with Gradle 1.4 and the compilation failed.
>>>> 
>>>> Hope this helps
>>>> 
>>>> peterpilgrim at Peters-MacBook-Pro-3.local [572] > gradle clean
>>>> The CompileOptions.useAnt property has been deprecated and is
>>>> scheduled to be removed in Gradle 2.0. There is no replacement for
>>>> this property.
>>>> :base:clean
>>>> :build-tools:clean
>>>> :controls:clean
>>>> :designTime:clean
>>>> :fxml:clean
>>>> :graphics:clean
>>>> :swing:clean
>>>> :swt:clean
>>>> :graphics:effects-jsl:clean
>>>> :graphics:native:clean
>>>> :graphics:prism-jsl:clean
>>>> 
>>>> BUILD SUCCESSFUL
>>>> 
>>>> Total time: 3.348 secs
>>>> peterpilgrim at Peters-MacBook-Pro-3.local [573] > gradle sdk
>>>> The CompileOptions.useAnt property has been deprecated and is
>>>> scheduled to be removed in Gradle 2.0. There is no replacement for
>>>> this property.
>>>> :base:processVersion
>>>> :build-tools:generateGrammarSource
>>>> :build-tools:compileJava
>>>> :build-tools:processResources
>>>> :build-tools:classes
>>>> :build-tools:jar
>>>> :base:compileJava
>>>> [ant:javac] Note:
>>>> /Users/peterpilgrim/Documents/IdeaProjects/open-jfx-8/master/javafx/modules/base/src/main/java/com/sun/scenario/animation/shared/InterpolationInterval.java
>>>> uses or overrides a deprecated API.
>>>> [ant:javac] Note: Recompile with -Xlint:deprecation for details.
>>>> [ant:javac] Note: Some input files use unchecked or unsafe operations.
>>>> [ant:javac] Note: Recompile with -Xlint:unchecked for details.
>>>> :base:processResources UP-TO-DATE
>>>> :base:classes
>>>> :base:jar
>>>> :base:assemble
>>>> :build-tools:assemble
>>>> :graphics:compileJava
>>>> [ant:javac] /Users/peterpilgrim/Documents/IdeaProjects/open-jfx-8/master/javafx/modules/graphics/src/main/java/com/sun/glass/ui/accessible/AccessibleRoot.java:28:
>>>> error: package com.sun.javafx.accessible.utils does not exist
>>>> [ant:javac] import com.sun.javafx.accessible.utils.NavigateDirection;
>>>> [ant:javac]                                       ^
>>>> [ant:javac] /Users/peterpilgrim/Documents/IdeaProjects/open-jfx-8/master/javafx/modules/graphics/src/main/java/com/sun/glass/ui/accessible/AccessibleRoot.java:29:
>>>> error: package com.sun.javafx.accessible.utils does not exist
>>>> [ant:javac] import com.sun.javafx.accessible.utils.Rect;
>>>> [ant:javac]                                       ^
>>>> [ant:javac] /Users/peterpilgrim/Documents/IdeaProjects/open-jfx-8/master/javafx/modules/graphics/src/main/java/com/sun/glass/ui/accessible/AccessibleRoot.java:30:
>>>> error: package com.sun.javafx.accessible.providers does not exist
>>>> [ant:javac] import com.sun.javafx.accessible.providers.AccessibleProvider;
>>>> [ant:javac]                                           ^
>>>> [ant:javac] /Users/peterpilgrim/Documents/IdeaProjects/open-jfx-8/master/javafx/modules/graphics/src/main/java/com/sun/glass/ui/accessible/AccessibleRoot.java:112:
>>>> error: cannot find symbol
>>>> [ant:javac]     private AccessibleProvider hostRawElementProvider() {
>>>> 
>>>> etc, etc
>>>> 
>>>> 
>>>> On 20 March 2013 17:55, Richard Bair <richard.bair at oracle.com> wrote:
>>>>> I think the gradle scripts are now far enough along that you ought to be able to successfully build using them on Mac, Linux, or Windows. At least, I've managed to build on all three platforms but no doubt there are bugs on various platforms due to different configurations.
>>>>> 
>>>>> To try out the gradle scripts, get the latest graphics repo (http://hg.openjdk.java.net/openjfx/8/graphics, http://hg.openjdk.java.net/openjfx/8/graphics/rt).
>>>>> 
>>>>> cd rt
>>>>> gradle -b generator.gradle
>>>>> cd ../javafx
>>>>> gradle sdk
>>>>> 
>>>>> You need to have gradle 1.4 installed on your system (I can't use gradlew for now because including a 3rd party library in our source repository requires legal review blah blah). I haven't tried it with other versions of Gradle.
>>>>> 
>>>>> It should successfully build all Java & native code, and successfully download antlr, junit, and swt dependencies. It requires that artifacts/sdk/rt/lib/ext/jfxrt.jar is present in your root graphics dir just the same as the normal build, OR you can specify -PBINARY_STUB=/path/to/latest/binary/stub/jfxrt.jar
>>>>> 
>>>>> Please give it a try and let me know if it works for you or if it fails.
>>>>> 
>>>>> I've also run apps based on the resulting libraries. Note that the JDK 8 builds have jfxrt.jar and associated native libraries on the ext class path, which means when you run an app you will likely run into a mismatch of native libraries or java source files. What I did was to remove jfxrt.jar and the prism, prism-sw, decora-sse, and glass dylibs  *out* of my Java 8 JDK and supplied my gradle-built jfxrt.jar first on the class path followed by the binary stub (old jfxrt.jar) file.
>>>>> 
>>>>> Its a pain in the neck, I know. You can also mess with the ext class path / boot class path settings, but that's a pain too. The joys of JDK development :-/. Open to better suggestions on how to run locally built jfxrt.jar and native libraries against a stock Java 8 without all the muss & fuss.
>>>>> 
>>>>> My next tasks:
>>>>>      - confirm javadoc generation works
>>>>>      - fix any failing tests or configuration that causes tests to fail
>>>>>              - specifically I'm working to get most tests to run reliably in a single VM as they then execute 10x-100x faster
>>>>>      - jardiff the jfxrt.jar normally built with the one built by gradle to look for bugs in the build script
>>>>>      - fix any build issues reported on this thread
>>>>>      - IDE integration
>>>>> 
>>>>> Then I will work with Mong to get the release engineering requirements in place and get a build setup on hudson and make sure all that is working fine.
>>>>> 
>>>>> Richard
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Peter Pilgrim,
>>>> **Java Champion**,
>>>> Java EE Software Development / Design / Architect for `BlueChip'
>>>> enterprises, London, UK
>>>> 
>>>> JavaFX ++ Scala ++ Groovy ++  Android ++ Java
>>>> 
>>>> :: http://www.xenonique.co.uk/blog/  ::
>>>> :: http://twitter.com/peter_pilgrim ::
>>>> :: http://audio.fm/profile/peter_pilgrim  ::
>>>> :: Skype Call peter_pilgrim ::
>>>> :: http://java-champions.java.net/ ::
>>> 
>> 
> 
> 
> 
> -- 
> Peter Pilgrim,
> **Java Champion**,
> Java EE Software Development / Design / Architect for `BlueChip'
> enterprises, London, UK
> 
> JavaFX ++ Scala ++ Groovy ++  Android ++ Java
> 
> :: http://www.xenonique.co.uk/blog/  ::
> :: http://twitter.com/peter_pilgrim ::
> :: http://audio.fm/profile/peter_pilgrim  ::
> :: Skype Call peter_pilgrim ::
> :: http://java-champions.java.net/ ::



More information about the openjfx-dev mailing list