changeset 10878:d87a945cf971

Merge
author kcr
date Fri, 16 Mar 2018 06:07:02 -0700
parents 7ed584a5a2be 53878b83c2bd
children dfe920ff7163 c23a3b8d8e34
files
diffstat 8 files changed, 142 insertions(+), 177 deletions(-) [+]
line wrap: on
line diff
--- a/build.gradle	Fri Mar 16 00:35:18 2018 -0700
+++ b/build.gradle	Fri Mar 16 06:07:02 2018 -0700
@@ -813,9 +813,9 @@
                      !(!test && proj.name.equals(pname))) {
                  File dir;
                  if (test && proj.sourceSets.hasProperty('shims')) {
-                    dir = new File(proj.sourceSets.shims.output.classesDir, proj.ext.moduleName);
+                    dir = new File(proj.sourceSets.shims.java.outputDir, proj.ext.moduleName);
                  } else {
-                    dir = new File(proj.sourceSets.main.output.classesDir, proj.ext.moduleName);
+                    dir = new File(proj.sourceSets.main.java.outputDir, proj.ext.moduleName);
                  }
                  if (mp == null) {
                      mp = dir.path
@@ -863,14 +863,12 @@
 // perform common project manipulation for modules
 void commonModuleSetup(Project p, List<String> moduleChain) {
 
-    // Allow the build to use either gradle 3.x or gradle 4.x
-    p.sourceSets.main.output.classesDir = new File(p.buildDir, "classes/main")
     p.ext.moduleChain = moduleChain
 
     if (p.hasProperty("moduleName")) {
-        p.ext.moduleDir = new File (p.sourceSets.main.output.classesDir, "${p.moduleName}")
+        p.ext.moduleDir = new File (p.sourceSets.main.java.outputDir, "${p.moduleName}")
         if (p.sourceSets.hasProperty('shims')) {
-            p.ext.moduleShimsDir = new File (p.sourceSets.shims.output.classesDir, "${p.moduleName}")
+            p.ext.moduleShimsDir = new File (p.sourceSets.shims.java.outputDir, "${p.moduleName}")
         }
     }
 
@@ -1303,15 +1301,15 @@
 void addJSL(Project project, String name, String pkg, List<String> addExports, Closure compile) {
     def lowerName = name.toLowerCase()
 
-    def modulePath = "${project.sourceSets.main.output.classesDir}"
-    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/main"
+    def modulePath = "${project.sourceSets.main.java.outputDir}"
+    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/java/main"
     def compileCompilers = project.task("compile${name}Compilers",
             type: JavaCompile,
             dependsOn: project.compileJava) {
         description = "Compile the $name JSL Compilers"
 
         classpath =
-               project.files(project.sourceSets.jslc.output.classesDir) +
+               project.files(project.sourceSets.jslc.java.outputDir) +
                project.configurations.antlr
         source = [project.file("src/main/jsl-$lowerName")]
         destinationDir = project.file("$project.buildDir/classes/jsl-compilers/$lowerName")
@@ -1787,7 +1785,7 @@
         source += "$buildDir/gensrc/java"
         source += project.sourceSets.shaders.output
 
-        destinationDir = project.sourceSets.main.output.classesDir
+        destinationDir = project.sourceSets.main.java.outputDir
         options.compilerArgs.addAll([
             '-h', "$buildDir/gensrc/headers/",  // Note: this creates the native headers
             '-implicit:none',
@@ -1932,8 +1930,8 @@
     // a new task for each of the decora files, preferring instead just to create a rule?? Also
     // need "clean" tasks for each compile task.
 
-    def modulePath = "${project.sourceSets.main.output.classesDir}"
-    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/main"
+    def modulePath = "${project.sourceSets.main.java.outputDir}"
+    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/java/main"
     addJSL(project, "Decora", "com/sun/scenario/effect/impl/hw/d3d/hlsl", decoraAddExports) { sourceDir, destinationDir ->
         [[fileName: "ColorAdjust", generator: "CompileJSL", outputs: "-all"],
          [fileName: "Brightpass", generator: "CompileJSL", outputs: "-all"],
@@ -1950,7 +1948,7 @@
                 workingDir = project.projectDir
                 main = settings.generator
                 classpath = configurations.compile + configurations.antlr
-                classpath += files(project.sourceSets.jslc.output.classesDir)
+                classpath += files(project.sourceSets.jslc.java.outputDir)
 
                 classpath += files("${project.projectDir}/src/jslc/resources")
 
@@ -2039,7 +2037,7 @@
                 workingDir = project.projectDir
                 main = "CompileJSL"
                 classpath = configurations.compile + configurations.antlr
-                classpath += files(project.sourceSets.jslc.output.classesDir)
+                classpath += files(project.sourceSets.jslc.java.outputDir)
                 classpath += files(project.sourceSets.jslc.resources)
                 classpath += files("$buildDir/classes/jsl-compilers/prism",
                     project.projectDir.path + "/src/main/jsl-prism") // for the .stg
@@ -2056,7 +2054,7 @@
     processResources.dependsOn processDecoraShaders, processPrismShaders
 
     test {
-        def cssDir = file("$buildDir/classes/main/javafx")
+        def cssDir = file("$buildDir/classes/java/main/${moduleName}/javafx")
         jvmArgs "-Djavafx.toolkit=test.com.sun.javafx.pgstub.StubToolkit",
             "-DCSS_META_DATA_TEST_DIR=$cssDir"
         enableAssertions = true
@@ -2071,33 +2069,35 @@
     // To enable the IDEs to all be happy (no red squiggles) we need to have the libraries
     // available in some known location. Maybe in the future the Gradle plugins to each
     // of the IDEs will be good enough that we won't need this hack anymore.
-    classes << {
-        // Copy all of the download libraries to the libs directory for the sake of the IDEs
-        File libsDir = rootProject.file("build/libs");
-
-        // In some IDEs (Eclipse for example), touching these libraries
-        // cauese a full build within the IDE. When gradle is used
-        // outside of the IDE, for example to build the native code,
-        // a full rebuild is caused within the IDE. The fix is to check
-        // for the presence of the target files in the lib directory
-        // and not copy the files if all are present.
-
-        libsDir.mkdirs();
-
-        def allLibsPresent = true
-        def libNames = [ "antlr-complete-3.5.2.jar" ]
-        libNames.each { name ->
-            File f = new File(libsDir, name)
-            if (!f.exists()) allLibsPresent = false
-        }
-        if (allLibsPresent) return;
-
-        for (File f : [configurations.compile.files, configurations.antlr.files].flatten()) {
-            copy {
-                into libsDir
-                from f.getParentFile()
-                include "**/antlr-complete-3.5.2.jar"
-                includeEmptyDirs = false
+    classes {
+        doLast {
+            // Copy all of the download libraries to the libs directory for the sake of the IDEs
+            File libsDir = rootProject.file("build/libs");
+
+            // In some IDEs (Eclipse for example), touching these libraries
+            // cauese a full build within the IDE. When gradle is used
+            // outside of the IDE, for example to build the native code,
+            // a full rebuild is caused within the IDE. The fix is to check
+            // for the presence of the target files in the lib directory
+            // and not copy the files if all are present.
+
+            libsDir.mkdirs();
+
+            def allLibsPresent = true
+            def libNames = [ "antlr-complete-3.5.2.jar" ]
+            libNames.each { name ->
+                File f = new File(libsDir, name)
+                if (!f.exists()) allLibsPresent = false
+            }
+            if (allLibsPresent) return;
+
+            for (File f : [configurations.compile.files, configurations.antlr.files].flatten()) {
+                copy {
+                    into libsDir
+                    from f.getParentFile()
+                    include "**/antlr-complete-3.5.2.jar"
+                    includeEmptyDirs = false
+                }
             }
         }
     }
@@ -2128,7 +2128,7 @@
     }
 
     test {
-        def cssDir = file("$buildDir/classes/main/javafx")
+        def cssDir = file("$buildDir/classes/java/main/${moduleName}/javafx")
         jvmArgs "-Djavafx.toolkit=test.com.sun.javafx.pgstub.StubToolkit",
             "-DCSS_META_DATA_TEST_DIR=$cssDir"
     }
@@ -2136,10 +2136,11 @@
     List<String> css2BinAddExports = [
             '--add-exports=java.base/sun.util.logging=javafx.graphics',
             ]
-    def modulePath = "${project.sourceSets.main.output.classesDir}"
-    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.graphics/build/classes/main"
-    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/main"
-    processResources << {
+    def modulePath = "${project.sourceSets.main.java.outputDir}"
+    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.graphics/build/classes/java/main"
+    modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/java/main"
+    processResources {
+      doLast {
         def cssFiles = fileTree(dir: "$moduleDir/com/sun/javafx/scene/control/skin")
         cssFiles.include "**/*.css"
         cssFiles.each { css ->
@@ -2156,6 +2157,7 @@
                 args css
             }
         }
+      }
     }
 
     processShimsResources.dependsOn(project.task("copyShimBss", type: Copy) {
@@ -2216,25 +2218,27 @@
         compile name: SWT_FILE_NAME
     }
 
-    classes << {
-        // Copy all of the download libraries to libs directory for the sake of the IDEs
-        File libsDir = rootProject.file("build/libs");
-        File swtLib = new File(libsDir, "swt-debug.jar")
-        libsDir.mkdirs();
-
-        // Skip copy if file is present.
-        if (swtLib.exists()) return;
-
-        for (File f : configurations.compile.files) {
-            // Have to rename the swt jar because it is some platform specific name but
-            // for the sake of the IDEs we need to have a single stable name that works
-            // on every platform
-            copy {
-                into libsDir
-                from f.getParentFile()
-                include "**/*swt*.jar"
-                includeEmptyDirs = false
-                rename ".*swt.*jar", "swt-debug\\.jar"
+    classes {
+        doLast {
+            // Copy all of the download libraries to libs directory for the sake of the IDEs
+            File libsDir = rootProject.file("build/libs");
+            File swtLib = new File(libsDir, "swt-debug.jar")
+            libsDir.mkdirs();
+
+            // Skip copy if file is present.
+            if (swtLib.exists()) return;
+
+            for (File f : configurations.compile.files) {
+                // Have to rename the swt jar because it is some platform specific name but
+                // for the sake of the IDEs we need to have a single stable name that works
+                // on every platform
+                copy {
+                    into libsDir
+                    from f.getParentFile()
+                    include "**/*swt*.jar"
+                    includeEmptyDirs = false
+                    rename ".*swt.*jar", "swt-debug\\.jar"
+                }
             }
         }
     }
@@ -2443,7 +2447,7 @@
     }
     processResources.dependsOn man
 
-    String buildClassesDir = "${sourceSets.main.output.classesDir}/${moduleName}"
+    String buildClassesDir = "${sourceSets.main.java.outputDir}/${moduleName}"
 
     // Compile the native launchers. These are included in jdk.packager.jmod.
     if (IS_WINDOWS && COMPILE_FXPACKAGER) {
@@ -2636,21 +2640,23 @@
         assemble.dependsOn buildJavaPackager
     }
 
-    classes << {
-        // Copy all of the download libraries to libs directory for the sake of the IDEs
-        File libsDir = rootProject.file("build/libs");
-        File antLib = new File(libsDir, "ant-1.8.2.jar")
-        libsDir.mkdirs();
-
-        // Skip copy if file is present.
-        if (antLib.exists()) return;
-
-        for (File f : configurations.compile.files) {
-            copy {
-                into libsDir
-                from f.getParentFile()
-                include "**/ant-1.8.2.jar"
-                includeEmptyDirs = false
+    classes {
+        doLast {
+            // Copy all of the download libraries to libs directory for the sake of the IDEs
+            File libsDir = rootProject.file("build/libs");
+            File antLib = new File(libsDir, "ant-1.8.2.jar")
+            libsDir.mkdirs();
+
+            // Skip copy if file is present.
+            if (antLib.exists()) return;
+
+            for (File f : configurations.compile.files) {
+                copy {
+                    into libsDir
+                    from f.getParentFile()
+                    include "**/ant-1.8.2.jar"
+                    includeEmptyDirs = false
+                }
             }
         }
     }
@@ -2757,7 +2763,7 @@
                 include "**"
             }
 
-            from (project.file("$rootProject.buildDir/../modules/jdk.packager/build/classes/main/jdk.packager.services")) {
+            from (project.file("$rootProject.buildDir/../modules/jdk.packager/build/classes/java/main/jdk.packager.services")) {
                 include "module-info.class"
             }
         }
@@ -2776,7 +2782,7 @@
                 include "**"
             }
 
-            from (project.file("$rootProject.buildDir/../modules/jdk.packager/build/classes/main/jdk.packager")) {
+            from (project.file("$rootProject.buildDir/../modules/jdk.packager/build/classes/java/main/jdk.packager")) {
                 include "module-info.class"
             }
         }
@@ -3402,35 +3408,37 @@
             }
 
             if (t.name == "win") {
-                def buildResources = task("buildResources") << {
-                    def rcOutputDir = "${nativeOutputDir}/${buildType}"
-                    mkdir rcOutputDir
-                    exec {
-                        environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
-                        commandLine (WIN.media.rcCompiler)
-                        args(WIN.media.glibRcFlags)
-                        args("/Fo${rcOutputDir}/${WIN.media.glibRcFile}", WIN.media.rcSource)
-                    }
-
-                    exec {
-                        environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
-                        commandLine (WIN.media.rcCompiler)
-                        args(WIN.media.gstreamerRcFlags)
-                        args("/Fo${rcOutputDir}/${WIN.media.gstreamerRcFile}", WIN.media.rcSource)
-                    }
-
-                    exec {
-                        environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
-                        commandLine (WIN.media.rcCompiler)
-                        args(WIN.media.fxpluginsRcFlags)
-                        args("/Fo${rcOutputDir}/${WIN.media.fxpluginsRcFile}", WIN.media.rcSource)
-                    }
-
-                    exec {
-                        environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
-                        commandLine (WIN.media.rcCompiler)
-                        args(WIN.media.jfxmediaRcFlags)
-                        args("/Fo${rcOutputDir}/${WIN.media.jfxmediaRcFile}", WIN.media.rcSource)
+                def buildResources = task("buildResources") {
+                    doLast {
+                        def rcOutputDir = "${nativeOutputDir}/${buildType}"
+                        mkdir rcOutputDir
+                        exec {
+                            environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
+                            commandLine (WIN.media.rcCompiler)
+                            args(WIN.media.glibRcFlags)
+                            args("/Fo${rcOutputDir}/${WIN.media.glibRcFile}", WIN.media.rcSource)
+                        }
+
+                        exec {
+                            environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
+                            commandLine (WIN.media.rcCompiler)
+                            args(WIN.media.gstreamerRcFlags)
+                            args("/Fo${rcOutputDir}/${WIN.media.gstreamerRcFile}", WIN.media.rcSource)
+                        }
+
+                        exec {
+                            environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
+                            commandLine (WIN.media.rcCompiler)
+                            args(WIN.media.fxpluginsRcFlags)
+                            args("/Fo${rcOutputDir}/${WIN.media.fxpluginsRcFile}", WIN.media.rcSource)
+                        }
+
+                        exec {
+                            environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
+                            commandLine (WIN.media.rcCompiler)
+                            args(WIN.media.jfxmediaRcFlags)
+                            args("/Fo${rcOutputDir}/${WIN.media.jfxmediaRcFile}", WIN.media.rcSource)
+                        }
                     }
                 }
 
@@ -3663,7 +3671,7 @@
 
         def compileJavaDOMBindingTask = task("compileJavaDOMBinding${t.capital}", type: JavaCompile,
                 dependsOn: [compileJava, compileNativeTask, copyNativeTask]) {
-            destinationDir = file("$buildDir/classes/main")
+            destinationDir = file("$buildDir/classes/java/main")
             classpath = configurations.compile
             source = project.sourceSets.main.java.srcDirs
             options.compilerArgs.addAll([
@@ -3684,7 +3692,7 @@
     task drtJar(type: Jar, dependsOn: compileJava) {
         archiveName = "drt.jar"
         destinationDir = file("$buildDir/test")
-        from "$buildDir/classes/main/javafx.web/"
+        from "$buildDir/classes/java/main/javafx.web/"
         include drtClasses
         includeEmptyDirs = false
     }
@@ -3775,7 +3783,7 @@
         destinationDir = file("$buildDir/testapp1")
         archiveName = testapp1JarName
         includeEmptyDirs = false
-        from project.sourceSets.testapp1.output.classesDir
+        from project.sourceSets.testapp1.java.outputDir
         include("testapp/**")
         include("com/javafx/main/**")
 
@@ -3796,7 +3804,7 @@
         destinationDir = file("$buildDir/testapp1")
         archiveName = "jar2.jar";
         includeEmptyDirs = false
-        from project.sourceSets.testapp1.output.classesDir
+        from project.sourceSets.testapp1.java.outputDir
         include("pkg2/**")
     }
 
@@ -3810,7 +3818,7 @@
     modtestapps.each { testapp ->
         def testappCapital = testapp.capitalize()
         def copyTestAppTask = task("copy${testappCapital}", type: Copy) {
-            from project.sourceSets."${testapp}".output.classesDir
+            from project.sourceSets."${testapp}".java.outputDir
             from project.sourceSets."${testapp}".output.resourcesDir
             into "${project.buildDir}/modules/${testapp}"
         }
@@ -3937,7 +3945,7 @@
         project.compileShimsJava.dependsOn(project.compileJava)
 
         def copyGeneratedShimsTask = task("copyGeneratedShims", type: Copy, dependsOn: [compileShimsJava, processShimsResources]) {
-            from project.sourceSets.shims.output.classesDir
+            from project.sourceSets.shims.java.outputDir
             into "${rootProject.buildDir}/shims"
             exclude("*/module-info.class")
         }
@@ -4184,7 +4192,7 @@
         description = "Creates the javafx-swt.jar for the $t.name target"
         archiveName = "${project(":swt").buildDir}/libs/javafx-swt.jar";
         includeEmptyDirs = false
-        from("${project(":swt").buildDir}/classes/main");
+        from("${project(":swt").buildDir}/classes/java/main");
         include("**/javafx/embed/swt/**")
 
         dependsOn(
@@ -4194,18 +4202,12 @@
             project(":swt").classes,
             // classes is needed for a jar copy
             )
-        onlyIf {
-            dependsOnTaskDidWork()
-        }
     }
 
     // FIXME: do we really need the index task for this modular jar?
     def javafxSwtIndexTask = task("javafxSwtIndex$t.capital") {
         //the following is a workaround for the lack of indexing in gradle 1.4 through 1.7
         dependsOn(javafxSwtTask)
-        onlyIf {
-            dependsOnTaskDidWork()
-        }
 
         doLast() {
             ant.jar (update: true, index: true, destfile: javafxSwtTask.archiveName)
@@ -4554,7 +4556,7 @@
             dependsOn(project.assemble)
             def buildDir = project.buildDir
             def sourceBuildDirs = [
-                "${buildDir}/classes/main/${project.moduleName}",
+                "${buildDir}/classes/java/main/${project.moduleName}",
             ]
 
             def moduleClassesDir = "$buildDir/${platformPrefix}module-classes"
@@ -4642,8 +4644,7 @@
                     from ("${webbld}/classes/ios",
                           "${webbld}/resources/ios")
                 } else {
-                    from ("${webbld}/classes/main",
-                          "${webbld}resources/main")
+                    from ("${webbld}/classes/java/main")
                 }
                 */
         }
--- a/build.properties	Fri Mar 16 00:35:18 2018 -0700
+++ b/build.properties	Fri Mar 16 06:07:02 2018 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -73,4 +73,4 @@
 ##############################################################################
 
 jfx.build.jdk.version.min=9
-jfx.build.jdk.buildnum.min=165
+jfx.build.jdk.buildnum.min=181
--- a/buildSrc/addExports	Fri Mar 16 00:35:18 2018 -0700
+++ b/buildSrc/addExports	Fri Mar 16 06:07:02 2018 -0700
@@ -7,9 +7,6 @@
 #
 # ----------------------------------------------------------------------
 #
-# Qualified exports for JDK-8177566
---add-exports=javafx.base/com.sun.javafx.reflect=javafx.fxml
---add-exports=javafx.base/com.sun.javafx.reflect=javafx.web
 # Reads for JDK-8195801
 --add-reads=javafx.graphics=jdk.unsupported
 #
--- a/buildSrc/android.gradle	Fri Mar 16 00:35:18 2018 -0700
+++ b/buildSrc/android.gradle	Fri Mar 16 06:07:02 2018 -0700
@@ -283,9 +283,9 @@
             dependsOn(project(":graphics").classes, project(":base").classes)
             description = "Task compiles web component for Android."
             classpath = files(
-                project(":controls").sourceSets.main.output.classesDir,
-                project(":graphics").sourceSets.main.output.classesDir,
-                project(":base").sourceSets.main.output.classesDir
+                project(":controls").sourceSets.main.java.outputDir,
+                project(":graphics").sourceSets.main.java.outputDir,
+                project(":base").sourceSets.main.java.outputDir
             )
             destinationDir = file("${project("web").buildDir}/classes/android")
             dependencyCacheDir = file("${project("web").buildDir}/dependency-cache")
--- a/buildSrc/build.gradle	Fri Mar 16 00:35:18 2018 -0700
+++ b/buildSrc/build.gradle	Fri Mar 16 06:07:02 2018 -0700
@@ -70,22 +70,8 @@
     }
 }
 
-// Include the to-be-generated antlr source files in the source set. We will generate
-// the antlr sources first before compilation.
-sourceSets {
-    main.java.srcDirs = ["src/main/java", "$buildDir/generated-src/antlr"]
-}
-
-// Workaround for lack of Antlr 3 support in Gradle. By defining a configuration,
-// we can then give it a class path and use that classpath to execute a java command
-getConfigurations().create("antlr3");
-
 dependencies {
-    compile     group: "org.antlr", name: "antlr",          version: "3.1.3"
     testCompile group: "junit",     name: "junit",          version: "4.8.2"
-    antlr3      group: "org.antlr", name: "antlr-runtime",  version: "3.1.3"
-    antlr3      group: "org.antlr", name: "stringtemplate", version: "3.2"
-    antlr3      group: "org.antlr", name: "antlr",          version: "3.1.3"
 }
 
 // At the moment the ASM library shipped with Gradle that is used to
@@ -102,24 +88,3 @@
     exclude("**/DepthTest.*");
     exclude("**/*Abstract*.*");
 }
-
-// This is the task that will call antlr to generate the sources
-task generateGrammarSource(type: JavaExec) {
-    description = "Generate JSL parser from Antlr3 grammars"
-    String dest = "$buildDir/generated-src/antlr/com/sun/scenario/effect/compiler"
-    String src = "src/main/antlr"
-    inputs.dir file(src)
-    outputs.dir file(dest)
-    def grammars = fileTree(src).include("**/*.g")
-    main = "org.antlr.Tool"
-    classpath = configurations.antlr3
-    args = ["-o", dest, grammars.files].flatten()
-    // See RT-30955. This should be removed when JDK-8015656 is fixed
-    ignoreExitValue = true
-}
-
-// Configure the compileJava task so that it relies on the task for generating
-// the grammar source (gotta have it prior to compilation)
-compileJava {
-    dependsOn(generateGrammarSource);
-}
--- a/buildSrc/dalvik.gradle	Fri Mar 16 00:35:18 2018 -0700
+++ b/buildSrc/dalvik.gradle	Fri Mar 16 06:07:02 2018 -0700
@@ -270,9 +270,9 @@
             dependsOn(project(":graphics").classes, project(":base").classes)
             description = "Task compiles web component for Android."
             classpath = files(
-                project(":controls").sourceSets.main.output.classesDir,
-                project(":graphics").sourceSets.main.output.classesDir,
-                project(":base").sourceSets.main.output.classesDir,
+                project(":controls").sourceSets.main.java.outputDir,
+                project(":graphics").sourceSets.main.java.outputDir,
+                project(":base").sourceSets.main.java.outputDir,
                 "${project("graphics").buildDir}/classes/dalvik"
             )
             destinationDir = file("${project("web").buildDir}/classes/android")
--- a/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java	Fri Mar 16 00:35:18 2018 -0700
+++ b/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java	Fri Mar 16 06:07:02 2018 -0700
@@ -1005,6 +1005,7 @@
                 f = new File(base.toURI());
             }
             //System.err.println(f.getPath());
+            assertTrue("" + f.getCanonicalPath() + " is not a directory", f.isDirectory());
             recursiveCheck(f, f.getPath().length() - 7);
         } catch (Exception ex) {
             ex.printStackTrace(System.err);
@@ -1019,7 +1020,7 @@
 
         if (javafx.scene.control.Control.class.isAssignableFrom(someClass) &&
                 Modifier.isAbstract(someClass.getModifiers()) == false &&
-                !Modifier.isPrivate(someClass.getModifiers()) == false) {
+                Modifier.isPrivate(someClass.getModifiers()) == false) {
             String what = someClass.getName();
             try {
                 // should get NoSuchMethodException if ctor is not public
@@ -1075,7 +1076,7 @@
                     final int len = file.getPath().length() - ".class".length();
                     final String clName =
                         file.getPath().substring(pathLength+1, len).replace(File.separatorChar,'.');
-                    if (clName.startsWith("test.javafx.scene") == false) continue;
+                    if (clName.startsWith("javafx.scene") == false) continue;
                     try {
                         final Class cl = Class.forName(clName);
                         if (cl != null) checkClass(cl);
--- a/modules/javafx.graphics/src/test/java/test/javafx/css/CssMetaDataTest.java	Fri Mar 16 00:35:18 2018 -0700
+++ b/modules/javafx.graphics/src/test/java/test/javafx/css/CssMetaDataTest.java	Fri Mar 16 06:07:02 2018 -0700
@@ -1122,6 +1122,7 @@
                 f = new File(base.toURI());
             }
             //System.err.println(f.getPath());
+            assertTrue("" + f.getCanonicalPath() + " is not a directory", f.isDirectory());
             recursiveCheck(f, f.getPath().length() - 7);
         } catch (Exception ex) {
             ex.printStackTrace(System.err);