# HG changeset patch # User kcr # Date 1520464885 28800 # Wed Mar 07 15:21:25 2018 -0800 # Node ID f2e8bd19f82d405f34f96f7d2356b78b5a363336 # Parent 74a27d49d1a9ac2bc43c939ca3dc2bb8165be6b0 8199071: Fix gradle deprecation warnings Reviewed-by: diff --git a/build.gradle b/build.gradle --- a/build.gradle +++ b/build.gradle @@ -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 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 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") @@ -1788,7 +1786,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', @@ -1933,8 +1931,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"], @@ -1951,7 +1949,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") @@ -2040,7 +2038,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 @@ -2057,7 +2055,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 @@ -2072,33 +2070,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 + } } } } @@ -2129,7 +2129,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" } @@ -2137,10 +2137,11 @@ List 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 -> @@ -2157,6 +2158,7 @@ args css } } + } } processShimsResources.dependsOn(project.task("copyShimBss", type: Copy) { @@ -2215,25 +2217,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" + } } } } @@ -2467,7 +2471,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) { @@ -2660,21 +2664,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 + } } } } @@ -2781,7 +2787,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" } } @@ -2800,7 +2806,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" } } @@ -3426,35 +3432,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) + } } } @@ -3687,7 +3695,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([ @@ -3708,7 +3716,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 } @@ -3799,7 +3807,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/**") @@ -3820,7 +3828,7 @@ destinationDir = file("$buildDir/testapp1") archiveName = "jar2.jar"; includeEmptyDirs = false - from project.sourceSets.testapp1.output.classesDir + from project.sourceSets.testapp1.java.outputDir include("pkg2/**") } @@ -3834,7 +3842,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}" } @@ -3961,7 +3969,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") } @@ -4208,7 +4216,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( @@ -4218,18 +4226,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) @@ -4578,7 +4580,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" @@ -4666,8 +4668,7 @@ from ("${webbld}/classes/ios", "${webbld}/resources/ios") } else { - from ("${webbld}/classes/main", - "${webbld}resources/main") + from ("${webbld}/classes/java/main") } */ } diff --git a/buildSrc/android.gradle b/buildSrc/android.gradle --- a/buildSrc/android.gradle +++ b/buildSrc/android.gradle @@ -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") diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -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); -} diff --git a/buildSrc/dalvik.gradle b/buildSrc/dalvik.gradle --- a/buildSrc/dalvik.gradle +++ b/buildSrc/dalvik.gradle @@ -279,9 +279,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") diff --git a/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java b/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java --- a/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java +++ b/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java @@ -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); diff --git a/modules/javafx.graphics/src/test/java/test/javafx/css/CssMetaDataTest.java b/modules/javafx.graphics/src/test/java/test/javafx/css/CssMetaDataTest.java --- a/modules/javafx.graphics/src/test/java/test/javafx/css/CssMetaDataTest.java +++ b/modules/javafx.graphics/src/test/java/test/javafx/css/CssMetaDataTest.java @@ -1124,6 +1124,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);