1*27e8546dSMatt Gilbride import net.ltgt.gradle.errorprone.errorprone 2*27e8546dSMatt Gilbride <lambda>null3*27e8546dSMatt Gilbrideplugins { 4*27e8546dSMatt Gilbride id("io.github.reyerizo.gradle.jcstress") 5*27e8546dSMatt Gilbride } 6*27e8546dSMatt Gilbride <lambda>null7*27e8546dSMatt Gilbridebuildscript { 8*27e8546dSMatt Gilbride extra.apply{ 9*27e8546dSMatt Gilbride set("moduleName", "io.perfmark.javanine") 10*27e8546dSMatt Gilbride } 11*27e8546dSMatt Gilbride } 12*27e8546dSMatt Gilbride 13*27e8546dSMatt Gilbride val jdkVersion = JavaVersion.VERSION_1_9 14*27e8546dSMatt Gilbride 15*27e8546dSMatt Gilbride description = "PerfMark Java9 API" 16*27e8546dSMatt Gilbride <lambda>null17*27e8546dSMatt GilbridesourceSets { 18*27e8546dSMatt Gilbride create("jmh") 19*27e8546dSMatt Gilbride } 20*27e8546dSMatt Gilbride <lambda>null21*27e8546dSMatt Gilbrideval jmhImplementation by configurations.getting { 22*27e8546dSMatt Gilbride extendsFrom(configurations.implementation.get()) 23*27e8546dSMatt Gilbride } 24*27e8546dSMatt Gilbride <lambda>null25*27e8546dSMatt Gilbrideval jmhAnnotationProcessor by configurations.getting { 26*27e8546dSMatt Gilbride extendsFrom(configurations.annotationProcessor.get()) 27*27e8546dSMatt Gilbride } 28*27e8546dSMatt Gilbride <lambda>null29*27e8546dSMatt Gilbridedependencies { 30*27e8546dSMatt Gilbride implementation(project(":perfmark-impl")) 31*27e8546dSMatt Gilbride compileOnly(libs.jsr305) 32*27e8546dSMatt Gilbride 33*27e8546dSMatt Gilbride testImplementation(project(":perfmark-api")) 34*27e8546dSMatt Gilbride testImplementation(project(":perfmark-testing")) 35*27e8546dSMatt Gilbride jcstressImplementation(project(":perfmark-impl")) 36*27e8546dSMatt Gilbride 37*27e8546dSMatt Gilbride jmhImplementation(project(":perfmark-api")) 38*27e8546dSMatt Gilbride jmhImplementation(project(":perfmark-impl")) 39*27e8546dSMatt Gilbride jmhImplementation(project(":perfmark-java9")) 40*27e8546dSMatt Gilbride jmhImplementation(project(":perfmark-testing")) 41*27e8546dSMatt Gilbride jmhImplementation(libs.junit) 42*27e8546dSMatt Gilbride jmhImplementation(libs.jmhcore) 43*27e8546dSMatt Gilbride jmhAnnotationProcessor(libs.jmhanno) 44*27e8546dSMatt Gilbride } 45*27e8546dSMatt Gilbride <lambda>null46*27e8546dSMatt Gilbridetasks.named<JavaCompile>("compileJava") { 47*27e8546dSMatt Gilbride sourceCompatibility = jdkVersion.toString() 48*27e8546dSMatt Gilbride targetCompatibility = jdkVersion.toString() 49*27e8546dSMatt Gilbride } 50*27e8546dSMatt Gilbride <lambda>null51*27e8546dSMatt Gilbridetasks.named<JavaCompile>("compileJmhJava") { 52*27e8546dSMatt Gilbride sourceCompatibility = JavaVersion.VERSION_11.toString() 53*27e8546dSMatt Gilbride targetCompatibility = JavaVersion.VERSION_11.toString() 54*27e8546dSMatt Gilbride options.errorprone.excludedPaths.set(".*/build/generated/sources/annotationProcessor/.*") 55*27e8546dSMatt Gilbride 56*27e8546dSMatt Gilbride } 57*27e8546dSMatt Gilbride <lambda>null58*27e8546dSMatt Gilbridetasks.register<Test>("jmh") { 59*27e8546dSMatt Gilbride description = "Runs integration tests." 60*27e8546dSMatt Gilbride group = "stress" 61*27e8546dSMatt Gilbride 62*27e8546dSMatt Gilbride testClassesDirs = sourceSets["jmh"].output.classesDirs 63*27e8546dSMatt Gilbride classpath = sourceSets["jmh"].runtimeClasspath 64*27e8546dSMatt Gilbride 65*27e8546dSMatt Gilbride javaLauncher.set(javaToolchains.launcherFor({ 66*27e8546dSMatt Gilbride languageVersion.set(JavaLanguageVersion.of("11")) 67*27e8546dSMatt Gilbride })) 68*27e8546dSMatt Gilbride } 69*27e8546dSMatt Gilbride 70*27e8546dSMatt Gilbride <lambda>null71*27e8546dSMatt Gilbridetasks.named<Jar>("jar") { 72*27e8546dSMatt Gilbride exclude("io/perfmark/java9/Internal*") 73*27e8546dSMatt Gilbride } 74*27e8546dSMatt Gilbride <lambda>null75*27e8546dSMatt Gilbridetasks.named<Javadoc>("javadoc") { 76*27e8546dSMatt Gilbride exclude("io/perfmark/java9/**") 77*27e8546dSMatt Gilbride } 78*27e8546dSMatt Gilbride 79*27e8546dSMatt Gilbride // ./gradlew --no-daemon clean :perfmark-java9:jcstress <lambda>null80*27e8546dSMatt Gilbridejcstress { 81*27e8546dSMatt Gilbride jcstressDependency = "org.openjdk.jcstress:jcstress-core:0.5" 82*27e8546dSMatt Gilbride // mode "tough" 83*27e8546dSMatt Gilbride deoptRatio = "2" 84*27e8546dSMatt Gilbride } 85*27e8546dSMatt Gilbride <lambda>null86*27e8546dSMatt Gilbridetasks.named<JavaCompile>("compileJcstressJava") { 87*27e8546dSMatt Gilbride options.errorprone.excludedPaths.set(".*/build/generated/sources/annotationProcessor/.*") 88*27e8546dSMatt Gilbride } 89