diff --git a/build.gradle b/build.gradle index db0acdcd64..c370413b3c 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,8 @@ buildscript { } } +ext.java8 = System.properties['java.version'].startsWith('1.8') + subprojects { apply plugin: 'java' @@ -32,10 +34,12 @@ subprojects { ext.distDir = "$buildDir/dist" ext.isReleaseVersion = !version.endsWith("SNAPSHOT") ext.baselib = "${rootProject.projectDir}/baselib" - ext.quasarJar = "${rootProject.projectDir}/quasar-core/build/libs/quasar-core-${version}.jar" // project(':quasar-core').jar.archivePath - + ext.quasarJar = "${rootProject.projectDir}/quasar-core/build/libs/quasar-core-${version}.jar" // project(':quasar-core').jar.archivePath + ext.asmVer = '5.0.4' ext.kotlinVer = '0.12.200' + + ext.java8 = rootProject.ext.java8 if (!project.hasProperty("sonatypeUsername") || !project.hasProperty("sonatypePassword")) { println "sonatype username or password not set" @@ -66,10 +70,14 @@ subprojects { } } + sourceSets { + jmh + } + configurations { compileOnly provided - markdownDoclet + // markdownDoclet } dependencies { @@ -88,11 +96,14 @@ subprojects { exclude group: "org.ow2.asm", module: '*' } testCompile "org.ow2.asm:asm:$asmVer" - testCompile 'org.openjdk.jmh:jmh-core:1.9.3' - testCompile 'org.openjdk.jmh:jmh-generator-annprocess:1.9.3' + + jmhCompile sourceSets.main.output + jmhCompile 'org.openjdk.jmh:jmh-core:1.9.3' + jmhCompile 'org.openjdk.jmh:jmh-generator-annprocess:1.9.3' + compileOnly 'org.kohsuke.metainf-services:metainf-services:1.5' // compileOnly 'com.google.auto.service:auto-service:1.0-rc1' // same as metainf-services - markdownDoclet "ch.raffael.pegdown-doclet:pegdown-doclet:1.1.1" + // markdownDoclet "ch.raffael.pegdown-doclet:pegdown-doclet:1.1.1" } sourceSets { @@ -112,43 +123,12 @@ subprojects { compileJava.dependsOn processResources classes { doLast { - ant.taskdef( - name:'scanSuspendables', classname:'co.paralleluniverse.fibers.instrument.SuspendablesScanner', - classpath: "build/classes/main:build/resources/main:" + configurations.provided.asPath + configurations.compile.asPath) - ant.scanSuspendables( - auto: false, - supersFile:"$sourceSets.main.output.resourcesDir/META-INF/suspendable-supers", - append: true) { - fileset(dir: sourceSets.main.output.classesDir) - } - - ant.taskdef(name:'instrumentation', classname:'co.paralleluniverse.fibers.instrument.InstrumentationTask', - classpath: "build/resources/main:build/classes/main:" + configurations.provided.asPath + configurations.compile.asPath) - ant.instrumentation(verbose:'true', check:'true', debug:'true') { - fileset(dir: sourceSets.main.output.classesDir) { - exclude(name: 'co/paralleluniverse/fibers/instrument/*.class') - } - } + scanAndInstrument(sourceSets.main, [configurations.provided, configurations.runtime]) } } test.dependsOn jar - - test { - beforeTest { desc -> - logger.quiet("Running test: " + desc) - } - - afterTest { desc, result -> - if(result.resultType == TestResult.ResultType.FAILURE) { - logger.quiet("Failed test ${desc.name} [${desc.className}] with exception: ${result.exception}") - if(result.exception != null) { - result.exception.printStackTrace() - } - } - } - } - + tasks.withType(Test) { useJUnit() // systemProperty 'co.paralleluniverse.fibers.verifyInstrumentation', 'true' @@ -163,8 +143,24 @@ subprojects { systemProperty 'co.paralleluniverse.flightRecorderDumpFile', 'quasar.log' systemProperty 'co.paralleluniverse.monitoring.flightRecorderSize', '200000' - jvmArgs "-javaagent:${quasarJar}" // =vdmc (verbose, debug, allow monitors, check class) + if(project.name != 'quasar-core') { + jvmArgs "-javaagent:${quasarJar}" // =vdmc (verbose, debug, allow monitors, check class) + } jvmArgs "-Xmx2048m" + + beforeTest { desc -> + logger.quiet("Running test: " + desc) + } + + afterTest { desc, result -> + if(result.resultType == TestResult.ResultType.FAILURE) { + logger.quiet("Failed test ${desc.name} [${desc.className}] with exception: ${result.exception}") + if(result.exception != null) { + result.exception.printStackTrace() + } + } + } + doLast() { println "file://" + getReports().getHtml().getDestination() + "/index.html" } @@ -188,7 +184,7 @@ subprojects { } tasks.withType(JavaExec) { - classpath += sourceSets.test.runtimeClasspath + classpath += sourceSets.test.runtimeClasspath + sourceSets.test.output + sourceSets.jmh.runtimeClasspath + sourceSets.jmh.output } @@ -197,22 +193,18 @@ subprojects { // } configure (javadoc) { - classpath += configurations.provided + classpath += configurations.provided options { - docletpath = configurations.markdownDoclet.files.asType(List) - doclet = 'ch.raffael.doclets.pegdown.PegdownDoclet' - addStringOption("parse-timeout", "10") + // docletpath = configurations.markdownDoclet.files.asType(List) + // doclet = 'ch.raffael.doclets.pegdown.PegdownDoclet' + // addStringOption("parse-timeout", "10") + options.addStringOption('Xdoclint:none', '-quiet') // stylesheetFile = rootProject.file('./baselib/javadoc.css') links = [ "http://docs.oracle.com/javase/7/docs/api/", "http://docs.guava-libraries.googlecode.com/git-history/v18.0/javadoc/" ] } - excludes = [ - "co/paralleluniverse/common/logging/**", - "co/paralleluniverse/common/monitoring/**", - "co/paralleluniverse/common/util/**", - ] } defaultTasks 'build' @@ -287,11 +279,119 @@ subprojects { } } + +def scanAndInstrument(sset, configs) { + def cp = '' + sset.output.classesDir + ':' + sset.output.resourcesDir + ':' + configs*.asPath.join(':') + + ant.taskdef( + name:'scanSuspendables', classname:'co.paralleluniverse.fibers.instrument.SuspendablesScanner', + classpath: cp) + ant.scanSuspendables( + auto: false, + supersFile:"$sset.output.resourcesDir/META-INF/suspendable-supers", + append: true) { + fileset(dir: sset.output.classesDir) + } + + ant.taskdef(name:'instrumentation', classname:'co.paralleluniverse.fibers.instrument.InstrumentationTask', + classpath: cp) + ant.instrumentation(verbose:'true', check:'true', debug:'true') { + fileset(dir: sset.output.classesDir) { + exclude(name: 'co/paralleluniverse/fibers/instrument/*.class') + } + } +} + project (':quasar-core') { + /* + * see: + * https://docs.gradle.org/current/userguide/java_plugin.html + * http://examples.javacodegeeks.com/core-java/gradle/gradle-sourcesets-example/ + * http://stackoverflow.com/questions/15870662/gradle-create-a-new-jar-from-each-sourceset + * http://stackoverflow.com/questions/18190614/compiling-a-project-with-different-java-source-compatibility + * https://softnoise.wordpress.com/2014/09/07/gradle-sub-project-test-dependencies-in-multi-project-builds/ + */ + apply plugin: 'com.github.johnrengelman.shadow' + [compileJava, compileTestJava, classes, jar]*.enabled = false + + sourceSets { + main { + java { + srcDir 'src/main/java' + srcDir 'src/jdk7/java' + } + } + + jdk7 { + java { + srcDir 'src/main/java' + srcDir 'src/jdk7/java' + } + + compileClasspath += main.compileClasspath // += main.uoutput + runtimeClasspath += main.runtimeClasspath // += main.uoutput + } + + jdk7test { + java { + srcDir 'src/test/java' + } + + compileClasspath += jdk7.output + test.compileClasspath + runtimeClasspath += compileClasspath + test.runtimeClasspath + } + + jdk8 { + java { + srcDir 'src/main/java' + srcDir 'src/jdk8/java' + } + + compileClasspath += main.compileClasspath + runtimeClasspath += compileClasspath + } + + jdk8test { + java { + srcDir 'src/test/java' + srcDir 'src/jdk8Test/java' + } + + compileClasspath += jdk8.output + test.compileClasspath + runtimeClasspath += compileClasspath + test.runtimeClasspath + } + + jmh { + java { + srcDir 'src/jmh/java' + } + + compileClasspath += jdk8.output + jdk8test.compileClasspath + jdk8test.output + runtimeClasspath += compileClasspath + test.runtimeClasspath + } + } + + configurations { + jdk7Archives.extendsFrom runtime + jdk8Archives.extendsFrom runtime + + // jdk7TestCompile.extendsFrom testCompile + // jdk7TestRuntime.extendsFrom testRuntime + // jdk8testCompile sourceSets.jdk8.output + // jdk8testCompile.extendsFrom testCompile + // jdk8testRuntime.extendsFrom testRuntime + } + + // if (ext.java8) { + // sourceSets { + // + // } + // } + dependencies { - compile ":jsr166e" + jdk7Compile ":jsr166e" compile ":high-scale-lib" compile "org.hdrhistogram:HdrHistogram:2.1.3" compile("org.latencyutils:LatencyUtils:2.0.2") { @@ -312,46 +412,137 @@ project (':quasar-core') { provided 'junit:junit:4.12' } - jar { - from zipTree("${baselib}/jsr166e.jar") // include non-Maven jars - from zipTree("${baselib}/high-scale-lib.jar") // include non-Maven jars - manifest { - attributes( + def ssets = [sourceSets.jdk7] + if(ext.java8) { + ssets += sourceSets.jdk8 + } + + ssets.forEach { set -> + configure(project.tasks["${set.name}Classes"]) { + doLast { + rootProject.scanAndInstrument(set, [configurations["${set.name}Runtime"], configurations.provided, configurations.runtime]) + } + } + + def jarTask = task("${set.name}Jar", type: Jar) { + from set.output + from zipTree("${baselib}/high-scale-lib.jar") // include non-Maven jars + exclude 'META-INF/INDEX.LIST' + + manifest { + attributes( "Built-By" : System.getProperty("user.name"), "Implementation-Title" : project.name, "Implementation-Version" : version, "Implementation-Vendor" : vendor, "Premain-Class" : "co.paralleluniverse.fibers.instrument.JavaAgent", - "Agent-Class" : "co.paralleluniverse.fibers.instrument.JavaAgent", + "Agent-Class" : "co.paralleluniverse.fibers.instrument.JavaAgent", "Can-Retransform-Classes" : "true", "Can-Redefine-Classes" : "true", - // "Class-Path" : configurations.runtime.collect { "lib/"+it.getName() }.join(',') - ) + // "Class-Path" : configurations.runtime.collect { "lib/"+it.getName() }.join(',') + ) + } + } + + def shadowJarTask = task("${set.name}ShadowJar", type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar, dependsOn: jarTask) { + outputs.upToDateWhen { false } + + classifier = '' // overwrite jar + destinationDir = file("$buildDir/libs") + + from set.output + + configurations = [project.configurations.runtime, project.configurations["${set.name}Runtime"]] + dependencies { + include(dependency('org.ow2.asm:.*:.*')) + include(dependency(':high-scale-lib')) + } + exclude 'META-INF/INDEX.LIST' + + relocate 'org.objectweb.asm.', 'co.paralleluniverse.asm.' + + manifest.inheritFrom jarTask.manifest + } + + def testTask = task("${set.name}Test", type: Test, dependsOn: shadowJarTask) { + testClassesDir = project.sourceSets["${set.name}test"].output.classesDir + classpath = project.sourceSets["${set.name}test"].runtimeClasspath + + project.afterEvaluate { + jvmArgs "-javaagent:${shadowJarTask.archivePath}" + } + } + + artifacts { + archives shadowJarTask } - } - shadowJar { - outputs.upToDateWhen { false } + assemble.dependsOn shadowJarTask + check.dependsOn testTask + } - // artifactAttached = false - classifier = 'shadow' - destinationDir = file("$buildDir/libs") + + compileJdk7Java { + sourceCompatibility = '1.7' + targetCompatibility = '1.7' + } + + jdk7Jar { + from zipTree("${baselib}/jsr166e.jar") // include non-Maven jars + } + jdk7ShadowJar { dependencies { - include(dependency('org.ow2.asm:.*:.*')) include(dependency(':jsr166e')) - include(dependency(':high-scale-lib')) } - - relocate 'org.objectweb.asm.', 'co.paralleluniverse.asm.' - - doLast { - logger.info("$buildDir/libs/${project.name}-${project.version}-${classifier}.jar -> $buildDir/libs/${project.name}-${project.version}.jar") - file("$buildDir/libs/${project.name}-${version}-${classifier}.jar").renameTo(file("$buildDir/libs/${project.name}-${project.version}.jar")) + } + + artifacts { + jdk7Archives jdk7ShadowJar + } + + if (ext.java8) { + compileJdk8Java { + sourceCompatibility = '1.8' + targetCompatibility = '1.8' } + + compileJdk8testJava { + sourceCompatibility = '1.8' + targetCompatibility = '1.8' + } + + jdk8Jar { + classifier = 'jdk8' + } + + jdk8ShadowJar { + classifier = 'jdk8' + (classifier.empty ? '' : '-') + } + + artifacts { + jdk8Archives jdk8ShadowJar + } + } + + javadoc { + if (project.ext.java8) { + source = sourceSets.jdk8.allJava + } else { + source = sourceSets.jdk7.allJava + } + + // excludes = [ + // "co/paralleluniverse/common/logging/**", + // "co/paralleluniverse/common/monitoring/**", + // "co/paralleluniverse/common/util/**", + // ] + } + + task shadowJar(dependsOn: tasks.withType(com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar), overwrite: true) { } - shadowJar.dependsOn jar + assemble.dependsOn shadowJar build.dependsOn shadowJar install.dependsOn shadowJar signArchives.dependsOn shadowJar @@ -368,17 +559,11 @@ project (':quasar-core') { } } - if (System.properties['java.version'].startsWith('1.8') ) { + if (ext) { artifacts { - archives jar - archives project(':quasar-core-jdk8').jar archives sourcesJar archives javadocJar } - - signArchives.dependsOn ':quasar-core-jdk8:shadowJar' - install.dependsOn ':quasar-core-jdk8:shadowJar' - uploadArchives.dependsOn ':quasar-core-jdk8:shadowJar' } } @@ -386,7 +571,7 @@ project (':quasar-actors') { //project.evaluationDependsOn(':quasar-core') dependencies { - provided project(':quasar-core') + provided project(path: ':quasar-core', configuration: 'jdk7Archives') // compile 'org.mutabilitydetector:MutabilityDetector:0.9.2' compile "org.slf4j:slf4j-api:1.7.12" compile "net.bytebuddy:byte-buddy:0.6.5" @@ -401,7 +586,7 @@ project (':quasar-actors') { project (':quasar-galaxy') { dependencies { - provided project(':quasar-core') + provided project(path: ':quasar-core', configuration: 'jdk7Archives') compile project(':quasar-actors') compile ("co.paralleluniverse:galaxy:1.4") { @@ -447,13 +632,21 @@ project (':quasar-galaxy') { task javadoc(type: Javadoc, dependsOn: subprojects.javadoc) { title = "Quasar ${project(':quasar-core').version}" destinationDir = file("docs/javadoc") - source = project(':quasar-core').sourceSets.main.allJava + project(':quasar-actors').sourceSets.main.allJava + + if (project.ext.java8) { + source = project(':quasar-core').sourceSets.jdk8.allJava + } else { + source = project(':quasar-core').sourceSets.jdk7.allJava + } + source += project(':quasar-actors').sourceSets.main.allJava + classpath = files(subprojects.collect { project -> project.sourceSets.main.compileClasspath }) options { - docletpath = project(':quasar-core').configurations.markdownDoclet.files.asType(List) - doclet = 'ch.raffael.doclets.pegdown.PegdownDoclet' - addStringOption("parse-timeout", "10") + // docletpath = project(':quasar-core').configurations.markdownDoclet.files.asType(List) + // doclet = 'ch.raffael.doclets.pegdown.PegdownDoclet' + // addStringOption("parse-timeout", "10") // stylesheetFile = rootProject.file('./baselib/javadoc.css') + options.addStringOption('Xdoclint:none', '-quiet') links = [ "http://docs.oracle.com/javase/7/docs/api/", "http://docs.guava-libraries.googlecode.com/git-history/v18.0/javadoc/" diff --git a/quasar-actors/src/test/java/co/paralleluniverse/actors/PrimitiveChannelRingBenchmark.java b/quasar-actors/src/jmh/java/co/paralleluniverse/actors/PrimitiveChannelRingBenchmark.java similarity index 100% rename from quasar-actors/src/test/java/co/paralleluniverse/actors/PrimitiveChannelRingBenchmark.java rename to quasar-actors/src/jmh/java/co/paralleluniverse/actors/PrimitiveChannelRingBenchmark.java diff --git a/quasar-actors/src/test/java/co/paralleluniverse/actors/RingBenchmark.java b/quasar-actors/src/jmh/java/co/paralleluniverse/actors/RingBenchmark.java similarity index 93% rename from quasar-actors/src/test/java/co/paralleluniverse/actors/RingBenchmark.java rename to quasar-actors/src/jmh/java/co/paralleluniverse/actors/RingBenchmark.java index 83026fe6cb..147f0e1230 100644 --- a/quasar-actors/src/test/java/co/paralleluniverse/actors/RingBenchmark.java +++ b/quasar-actors/src/jmh/java/co/paralleluniverse/actors/RingBenchmark.java @@ -1,5 +1,9 @@ package co.paralleluniverse.actors; +import co.paralleluniverse.actors.Actor; +import co.paralleluniverse.actors.ActorRef; +import co.paralleluniverse.actors.BasicActor; +import co.paralleluniverse.actors.MailboxConfig; import co.paralleluniverse.fibers.Fiber; import co.paralleluniverse.fibers.SuspendExecution; import co.paralleluniverse.strands.channels.Channels; diff --git a/quasar-actors/src/test/java/co/paralleluniverse/data/record/RecordJMHBenchmark.java b/quasar-actors/src/jmh/java/co/paralleluniverse/data/record/RecordJMHBenchmark.java similarity index 96% rename from quasar-actors/src/test/java/co/paralleluniverse/data/record/RecordJMHBenchmark.java rename to quasar-actors/src/jmh/java/co/paralleluniverse/data/record/RecordJMHBenchmark.java index aba2c082e5..d744572691 100644 --- a/quasar-actors/src/test/java/co/paralleluniverse/data/record/RecordJMHBenchmark.java +++ b/quasar-actors/src/jmh/java/co/paralleluniverse/data/record/RecordJMHBenchmark.java @@ -13,6 +13,9 @@ */ package co.paralleluniverse.data.record; +import co.paralleluniverse.data.record.Field; +import co.paralleluniverse.data.record.Record; +import co.paralleluniverse.data.record.RecordType; import java.util.concurrent.ThreadLocalRandom; import org.openjdk.jmh.Main; import org.openjdk.jmh.annotations.Benchmark; diff --git a/quasar-actors/src/main/java/co/paralleluniverse/data/record/DynamicGeneratedRecord.java b/quasar-actors/src/main/java/co/paralleluniverse/data/record/DynamicGeneratedRecord.java index 736b280d49..415121a694 100644 --- a/quasar-actors/src/main/java/co/paralleluniverse/data/record/DynamicGeneratedRecord.java +++ b/quasar-actors/src/main/java/co/paralleluniverse/data/record/DynamicGeneratedRecord.java @@ -14,10 +14,10 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.MethodVisitor; -import static org.objectweb.asm.Opcodes.*; -import org.objectweb.asm.Type; +import co.paralleluniverse.asm.ClassWriter; +import co.paralleluniverse.asm.MethodVisitor; +import static co.paralleluniverse.asm.Opcodes.*; +import co.paralleluniverse.asm.Type; /** * diff --git a/quasar-actors/src/test/java/co/paralleluniverse/actors/FJBenchmark.java b/quasar-actors/src/test/java/co/paralleluniverse/actors/FJBenchmark.java deleted file mode 100644 index dc957c9e0f..0000000000 --- a/quasar-actors/src/test/java/co/paralleluniverse/actors/FJBenchmark.java +++ /dev/null @@ -1,54 +0,0 @@ -package co.paralleluniverse.actors; - -import java.util.concurrent.TimeUnit; -import jsr166e.ForkJoinPool; -import jsr166e.ForkJoinTask; -import jsr166e.RecursiveAction; - - -public class FJBenchmark { - static final int PARALLELISM = 4; - static final int COUNT = 1000000; - static ForkJoinPool fjPool = new ForkJoinPool(PARALLELISM, ForkJoinPool.defaultForkJoinWorkerThreadFactory, null, true); - - public static void main(String[] args) throws Exception { - System.out.println("COMPILER: " + System.getProperty("java.vm.name")); - System.out.println("VERSION: " + System.getProperty("java.version")); - System.out.println("OS: " + System.getProperty("os.name")); - System.out.println("PROCESSORS: " + Runtime.getRuntime().availableProcessors()); - System.out.println(); - - for (int i = 0; i < 10; i++) - run(COUNT); - } - - static void run(int count) throws Exception { - RecursiveAction lastTask = new RecursiveAction() { - @Override - protected void compute() { - } - }; - final long start = System.nanoTime(); - fjPool.submit(new MyTask(count, lastTask)); - lastTask.get(); - System.out.println("count: " + count + " time: " + TimeUnit.MILLISECONDS.convert(System.nanoTime() - start, TimeUnit.NANOSECONDS)); - } - - static class MyTask extends RecursiveAction { - final int count; - final ForkJoinTask lastTask; - - public MyTask(int count, ForkJoinTask lastTask) { - this.count = count; - this.lastTask = lastTask; - } - - @Override - protected void compute() { - if (count > 0) - new MyTask(count - 1, lastTask).fork(); - else - lastTask.fork(); - } - } -} diff --git a/quasar-core-jdk8/build.gradle b/quasar-core-jdk8/build.gradle deleted file mode 100644 index b9598c5506..0000000000 --- a/quasar-core-jdk8/build.gradle +++ /dev/null @@ -1,148 +0,0 @@ -apply plugin: 'java' -apply plugin: 'com.github.johnrengelman.shadow' - -sourceCompatibility = '1.8' -targetCompatibility = '1.8' - -ext.quasarJar = "${libsDir}/quasar-core-${version}-jdk8.jar" // project(':quasar-core').jar.archivePath - -dependencies { - compile(project(':quasar-core')) { // - exclude module: "jsr166e" - } -} - -sourceSets { -// main { -// java { -// srcDirs += "../quasar-core/src/main/java" // project(":quasar-core").sourceSets.main.java.srcDirs -// } -// resources { -// //srcDirs += "../quasar-core/src/test/resources" // project(":quasar-core").sourceSets.main.resources.srcDirs -// runtimeClasspath += files("../quasar-core/build/resources/test") // project(':quasar-core').sourceSets.main.resources -// } -// } - test { - java { - srcDirs += "../quasar-core/src/test/java" // project(":quasar-core").sourceSets.test.java.srcDirs - } - resources { - srcDirs += "../quasar-core/src/test/resources" // project(":quasar-core").sourceSets.test.resources.srcDirs - runtimeClasspath += files("../quasar-core/build/resources/test") // project(':quasar-core').sourceSets.test.resources - } - } - -} - -classes { - doLast { - ant.taskdef( - name:'scanSuspendables', classname:'co.paralleluniverse.fibers.instrument.SuspendablesScanner', - classpath: "build/classes/main:build/resources/main:" + configurations.compile.asPath) - ant.scanSuspendables( - auto: false, - supersFile:"$sourceSets.main.output.resourcesDir/META-INF/suspendable-supers", - append: true) { - fileset(dir: project(':quasar-core').sourceSets.main.output.classesDir) - fileset(dir: sourceSets.main.output.classesDir) - } - - ant.taskdef(name:'instrumentation', classname:'co.paralleluniverse.fibers.instrument.InstrumentationTask', classpath: "build/resources/main:" + "build/classes/main:" + configurations.compile.asPath) - ant.instrumentation(verbose:'true', check:'true', debug:'true') { - fileset(dir: sourceSets.main.output.classesDir) { - exclude(name: 'co/paralleluniverse/fibers/instrument/*.class') - } - } - } -} - -//task jar(dependsOn: classes, type: Jar, overwrite: true) { -jar.dependsOn ':quasar-core:jar' -jar { - baseName = 'quasar-core' - classifier = 'jdk8' - - from(project(':quasar-core').sourceSets.main.output.classesDir) { - exclude fileTree(project.sourceSets.main.output.classesDir).collect { it.path - "${project.sourceSets.main.output.classesDir.path}/" } - } - from(project(':quasar-core').sourceSets.main.resources.srcDirs) { - exclude fileTree(project.sourceSets.main.resources.srcDirs.iterator().next()).collect { it.path - "${project.sourceSets.main.resources.srcDirs.path}/" } - } - // from project.sourceSets.main.output.classesDir - // from project.sourceSets.main.resources - - from zipTree("${baselib}/high-scale-lib.jar") // include non-Maven jars - - manifest { - attributes( - "Built-By" : System.getProperty("user.name"), - "Implementation-Title" : project.name, - "Implementation-Version" : version, - "Implementation-Vendor" : vendor, - "Premain-Class" : "co.paralleluniverse.fibers.instrument.JavaAgent", - "Can-Retransform-Classes" : "true", - "Can-Redefine-Classes" : "true", - // "Class-Path" : configurations.runtime.collect { "lib/"+it.getName() }.join(',') - ) - } -} - -shadowJar { - outputs.upToDateWhen { false } - - // artifactAttached = false - baseName = 'quasar-core' - classifier = 'jdk8-shadow' - destinationDir = file("$buildDir/libs") - - from(project(':quasar-core').sourceSets.main.output.classesDir) { - exclude fileTree(project.sourceSets.main.output.classesDir).collect { it.path - "${project.sourceSets.main.output.classesDir.path}/" } - } - from(project(':quasar-core').sourceSets.main.resources.srcDirs) { - exclude fileTree(project.sourceSets.main.resources.srcDirs.iterator().next()).collect { it.path - "${project.sourceSets.main.resources.srcDirs.path}/" } - } - // from project.sourceSets.main.output.classesDir - // from project.sourceSets.main.resources - - dependencies { - include(dependency('org.ow2.asm:.*:.*')) - include(dependency(':high-scale-lib')) - } - - relocate 'org.objectweb.asm.', 'co.paralleluniverse.asm.' - - doLast { - logger.info("$buildDir/libs/${baseName}-${project.version}-${classifier}.jar -> $buildDir/libs/${baseName}-${project.version}-${jar.classifier}.jar") - file("$buildDir/libs/${baseName}-${project.version}-${classifier}.jar").renameTo(file("$buildDir/libs/${baseName}-${project.version}-${jar.classifier}.jar")) - } -} - -shadowJar.dependsOn jar -build.dependsOn shadowJar -install.dependsOn shadowJar -signArchives.dependsOn shadowJar -uploadArchives.dependsOn shadowJar - -uploadArchives.enabled = false -install.enabled = false - -tasks.withType(Test) { - allJvmArgs = [] - useJUnit() - // systemProperty 'co.paralleluniverse.fibers.verifyInstrumentation', 'true' - - // systemProperty "java.util.logging.config.file", "jul.properties" - systemProperty "log4j.configurationFile", "${rootProject.projectDir}/log4j.xml" - // systemProperty "Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector" - - // systemProperty 'co.paralleluniverse.debugMode', 'true' - systemProperty 'co.paralleluniverse.globalFlightRecorder', 'true' - systemProperty 'co.paralleluniverse.flightRecorderDumpFile', 'quasar.log' - systemProperty 'co.paralleluniverse.monitoring.flightRecorderSize', '200000' - - jvmArgs "-javaagent:${libsDir}/quasar-core-${version}-jdk8.jar" // =vdmc (verbose, debug, allow monitors, check class) - jvmArgs "-Xmx2048m" - doLast() { - println "file://" + getReports().getHtml().getDestination() + "/index.html" - } -} diff --git a/quasar-core-jdk8/src/main/resources/META-INF/suspendable-supers b/quasar-core-jdk8/src/main/resources/META-INF/suspendable-supers deleted file mode 100644 index 1601c76c53..0000000000 --- a/quasar-core-jdk8/src/main/resources/META-INF/suspendable-supers +++ /dev/null @@ -1,7 +0,0 @@ -co.paralleluniverse.fibers.FiberTask.get()Ljava/lang/Object; -co.paralleluniverse.fibers.FiberTask.get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -co.paralleluniverse.strands.Strand.get()Ljava/lang/Object; -co.paralleluniverse.strands.Strand.get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -co.paralleluniverse.strands.Strand.join()V -co.paralleluniverse.strands.Strand.join(JLjava/util/concurrent/TimeUnit;)V -# ----- diff --git a/quasar-core/log b/quasar-core/log new file mode 100644 index 0000000000..ae4521bee6 --- /dev/null +++ b/quasar-core/log @@ -0,0 +1,380 @@ +:quasar-core:processResources UP-TO-DATE +:quasar-core:compileJava SKIPPED +:quasar-core:classes SKIPPED +:quasar-core:compileJdk8Java/Users/pron/Projects/quasar/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java:26: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/ProcessUtil.java:19: warning: VMManagement is internal proprietary API and may be removed in a future release +import sun.management.VMManagement; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:16: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ConcurrentSkipListSet.java:11: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/OwnedSynchronizer2.java:19: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ThreadAccess.java:25: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/RunnableFiberTask.java:27: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/AbstractFuture.java:24: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:34: warning: Resource is internal proprietary API and may be removed in a future release +import sun.misc.Resource; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:35: warning: URLClassPath is internal proprietary API and may be removed in a future release +import sun.misc.URLClassPath; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:33: warning: Resource is internal proprietary API and may be removed in a future release +import sun.misc.Resource; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:34: warning: URLClassPath is internal proprietary API and may be removed in a future release +import sun.misc.URLClassPath; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/OwnedSynchronizer.java:18: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/channels/Selector.java:31: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/CircularBuffer.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/concurrent/AbstractQueuedLongSynchronizer.java:43: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/concurrent/AbstractQueuedSynchronizer.java:45: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/ArrayQueue.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/BoxQueue.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerArrayQueue.java:20: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerLinkedArrayQueue.java:21: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerLinkedQueue.java:20: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +warning: Supported source version 'RELEASE_6' from annotation processor 'org.kohsuke.metainf_services.AnnotationProcessorImpl' less than -source '1.8' +/Users/pron/Projects/quasar/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java:26: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/ProcessUtil.java:19: warning: VMManagement is internal proprietary API and may be removed in a future release +import sun.management.VMManagement; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:16: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ConcurrentSkipListSet.java:11: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/OwnedSynchronizer2.java:19: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ThreadAccess.java:25: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/RunnableFiberTask.java:27: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/AbstractFuture.java:24: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:34: warning: Resource is internal proprietary API and may be removed in a future release +import sun.misc.Resource; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:35: warning: URLClassPath is internal proprietary API and may be removed in a future release +import sun.misc.URLClassPath; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:33: warning: Resource is internal proprietary API and may be removed in a future release +import sun.misc.Resource; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:34: warning: URLClassPath is internal proprietary API and may be removed in a future release +import sun.misc.URLClassPath; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/OwnedSynchronizer.java:18: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/channels/Selector.java:31: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/CircularBuffer.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/concurrent/AbstractQueuedLongSynchronizer.java:43: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/concurrent/AbstractQueuedSynchronizer.java:45: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/ArrayQueue.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/BoxQueue.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerArrayQueue.java:20: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerLinkedArrayQueue.java:21: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerLinkedQueue.java:20: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java:26: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/ProcessUtil.java:19: warning: VMManagement is internal proprietary API and may be removed in a future release +import sun.management.VMManagement; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:16: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ConcurrentSkipListSet.java:11: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/OwnedSynchronizer2.java:19: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ThreadAccess.java:25: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/RunnableFiberTask.java:27: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/AbstractFuture.java:24: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:34: warning: Resource is internal proprietary API and may be removed in a future release +import sun.misc.Resource; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:35: warning: URLClassPath is internal proprietary API and may be removed in a future release +import sun.misc.URLClassPath; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:33: warning: Resource is internal proprietary API and may be removed in a future release +import sun.misc.Resource; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:34: warning: URLClassPath is internal proprietary API and may be removed in a future release +import sun.misc.URLClassPath; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/OwnedSynchronizer.java:18: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/channels/Selector.java:31: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/CircularBuffer.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/concurrent/AbstractQueuedLongSynchronizer.java:43: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/concurrent/AbstractQueuedSynchronizer.java:45: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/ArrayQueue.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/BoxQueue.java:17: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerArrayQueue.java:20: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerLinkedArrayQueue.java:21: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/queues/SingleConsumerLinkedQueue.java:20: warning: Unsafe is internal proprietary API and may be removed in a future release +import sun.misc.Unsafe; + ^ +/Users/pron/Projects/quasar/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java:342: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final Unsafe UNSAFE = UtilUnsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/Fiber.java:1713: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final sun.misc.Unsafe UNSAFE = UtilUnsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/ProcessUtil.java:27: warning: VMManagement is internal proprietary API and may be removed in a future release + VMManagement vmManagement = (VMManagement) jvmField.get(runtimeMXBean); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/ProcessUtil.java:27: warning: VMManagement is internal proprietary API and may be removed in a future release + VMManagement vmManagement = (VMManagement) jvmField.get(runtimeMXBean); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:30: warning: Unsafe is internal proprietary API and may be removed in a future release + public static Unsafe getUnsafe1() { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:33: warning: Unsafe is internal proprietary API and may be removed in a future release + return Unsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:35: warning: Unsafe is internal proprietary API and may be removed in a future release + Field f = Unsafe.class.getDeclaredField("theUnsafe"); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:37: warning: Unsafe is internal proprietary API and may be removed in a future release + return (Unsafe) f.get(UtilUnsafe.class); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:43: warning: Unsafe is internal proprietary API and may be removed in a future release + public static Unsafe getUnsafe() { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:45: warning: Unsafe is internal proprietary API and may be removed in a future release + return Unsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:48: warning: Unsafe is internal proprietary API and may be removed in a future release + return java.security.AccessController.doPrivileged(new java.security.PrivilegedExceptionAction() { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:50: warning: Unsafe is internal proprietary API and may be removed in a future release + public Unsafe run() throws Exception { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:51: warning: Unsafe is internal proprietary API and may be removed in a future release + final Class k = sun.misc.Unsafe.class; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/common/util/UtilUnsafe.java:51: warning: Unsafe is internal proprietary API and may be removed in a future release + final Class k = sun.misc.Unsafe.class; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ConcurrentSkipListPriorityQueue.java:422: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final sun.misc.Unsafe UNSAFE; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ConcurrentSkipListPriorityQueue.java:503: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final sun.misc.Unsafe UNSAFE; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ConcurrentSkipListPriorityQueue.java:1566: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final sun.misc.Unsafe UNSAFE; + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/OwnedSynchronizer2.java:102: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final Unsafe UNSAFE = UtilUnsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ThreadAccess.java:32: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final Unsafe UNSAFE = UtilUnsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/RunnableFiberTask.java:320: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final Unsafe UNSAFE = UtilUnsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/strands/AbstractFuture.java:147: warning: Unsafe is internal proprietary API and may be removed in a future release + private static final Unsafe UNSAFE = UtilUnsafe.getUnsafe(); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:87: warning: Resource is internal proprietary API and may be removed in a future release + Resource res = ucp().getResource(path, false); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:124: warning: Resource is internal proprietary API and may be removed in a future release + private Resource instrument(final String className, final Resource res) { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:124: warning: Resource is internal proprietary API and may be removed in a future release + private Resource instrument(final String className, final Resource res) { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:125: warning: Resource is internal proprietary API and may be removed in a future release + return new Resource() { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:208: warning: Resource is internal proprietary API and may be removed in a future release + defineClassMethod = URLClassLoader.class.getDeclaredMethod("defineClass", String.class, Resource.class); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:217: warning: Resource is internal proprietary API and may be removed in a future release + private Class defineClass(String name, Resource res) throws IOException { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:229: warning: URLClassPath is internal proprietary API and may be removed in a future release + private URLClassPath ucp() { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoader.java:231: warning: URLClassPath is internal proprietary API and may be removed in a future release + return (URLClassPath) ucpField.get(this); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:79: warning: Resource is internal proprietary API and may be removed in a future release + Resource res = ucp().getResource(path, false); + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:114: warning: Resource is internal proprietary API and may be removed in a future release + private Resource instrument(final String className, final Resource res) { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:114: warning: Resource is internal proprietary API and may be removed in a future release + private Resource instrument(final String className, final Resource res) { + ^ +/Users/pron/Projects/quasar/quasar-core/src/main/java/co/paralleluniverse/fibers/instrument/QuasarURLClassLoaderHelper.java:115: warning: Resource is internal proprietary API and may be removed in a future release + return new Resource() { + ^ +Note: Some input files use unchecked or unsafe operations. +Note: Recompile with -Xlint:unchecked for details. +100 warnings + +:quasar-core:processJdk8Resources UP-TO-DATE +:quasar-core:jdk8Classes +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/StampedLock$WriteLockView.lock()V in java/util/concurrent/locks/Lock NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/AsyncFiberSocketChannel.read([Ljava/nio/ByteBuffer;II)J in java/nio/channels/ScatteringByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/AsyncFiberSocketChannel.write([Ljava/nio/ByteBuffer;II)J in java/nio/channels/GatheringByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/ReentrantReadWriteLock$ReadLock.lockInterruptibly()V in java/util/concurrent/locks/Lock NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/AsyncFiberSocketChannel.write(Ljava/nio/ByteBuffer;)I in java/nio/channels/WritableByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method in a parent of: co/paralleluniverse/fibers/io/AsyncFiberSocketChannel.write(Ljava/nio/ByteBuffer;)I in java/nio/channels/ByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/AbstractQueuedLongSynchronizer$ConditionObject.await(JLjava/util/concurrent/TimeUnit;)Z in java/util/concurrent/locks/Condition NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/AbstractQueuedSynchronizer$ConditionObject.awaitNanos(J)J in java/util/concurrent/locks/Condition NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/ReentrantLock.tryLock(JLjava/util/concurrent/TimeUnit;)Z in java/util/concurrent/locks/Lock NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/FiberTask.get()Ljava/lang/Object; in java/util/concurrent/Future NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.write([Ljava/nio/ByteBuffer;)J in java/nio/channels/GatheringByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.read([Ljava/nio/ByteBuffer;)J in java/nio/channels/ScatteringByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/AbstractFuture.get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; in java/util/concurrent/Future NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/AbstractQueuedSynchronizer$ConditionObject.await()V in java/util/concurrent/locks/Condition NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/AbstractQueuedSynchronizer$ConditionObject.awaitUninterruptibly()V in java/util/concurrent/locks/Condition NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.close()V in java/nio/channels/Channel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.close()V in java/io/Closeable NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.close()V in java/lang/AutoCloseable NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method in a parent of: co/paralleluniverse/fibers/io/FiberFileChannel.close()V in java/nio/channels/ReadableByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method in a parent of: co/paralleluniverse/fibers/io/FiberFileChannel.close()V in java/nio/channels/ByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method in a parent of: co/paralleluniverse/fibers/io/FiberFileChannel.close()V in java/nio/channels/SeekableByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.read(Ljava/nio/ByteBuffer;)I in java/nio/channels/SeekableByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.read(Ljava/nio/ByteBuffer;)I in java/nio/channels/ReadableByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method in a parent of: co/paralleluniverse/fibers/io/FiberFileChannel.read(Ljava/nio/ByteBuffer;)I in java/nio/channels/ByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/fibers/io/FiberFileChannel.write(Ljava/nio/ByteBuffer;)I in java/nio/channels/SeekableByteChannel NOT IN PROJECT +[ant:scanSuspendables] Found parent of suspendable method: co/paralleluniverse/strands/concurrent/AbstractQueuedLongSynchronizer$ConditionObject.awaitUntil(Ljava/util/Date;)Z in java/util/concurrent/locks/Condition NOT IN PROJECT +:quasar-core:compileJdk8testJavawarning: Supported source version 'RELEASE_6' from annotation processor 'org.kohsuke.metainf_services.AnnotationProcessorImpl' less than -source '1.8' +Note: Some input files use unchecked or unsafe operations. +Note: Recompile with -Xlint:unchecked for details. +1 warning + +:quasar-core:processJdk8testResources UP-TO-DATE +:quasar-core:jdk8testClasses +:quasar-core:compileJmhJavawarning: [options] bootstrap class path not set in conjunction with -source 1.7 +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.arrayBlockingQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.singleConsumerLinkedObjectQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.fibers.FiberOverheadJMHBenchmark.fiber', AverageTime, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.singleConsumerArrayIntQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.linkedBlockingQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.fibers.FiberOverheadJMHBenchmark.baseline', AverageTime, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.concurrentLinkedQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.linkedTransferQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.singleConsumerLinkedArrayIntQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.fibers.FiberOverheadJMHBenchmark.fiberNoPark', AverageTime, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.concurrent.util.DelayQueueJMHBenchmark.delayQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.concurrent.util.DelayQueueJMHBenchmark.delayQueue1', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.singleConsumerLinkedArrayObjectQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.singleConsumerLinkedIntQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.strands.queues.QueueJMHBenchmark.singleConsumerArrayObjectQueue', Throughput, {}} already exists, overwriting +Note: Benchmark entry {'co.paralleluniverse.concurrent.util.DelayQueueJMHBenchmark.singleConsumerNonblockingProducerDelayQueue', Throughput, {}} already exists, overwriting + +:quasar-core:processJmhResources UP-TO-DATE +:quasar-core:jmhClasses +:quasar-core:compileTestJava SKIPPED +:quasar-core:processTestResources UP-TO-DATE +:quasar-core:testClasses UP-TO-DATE +:quasar-core:runobjc[4926]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. + +# JMH 1.9.3 (released 17 days ago) +# VM invoker: /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/bin/java +# VM options: -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j.configurationFile=/Users/pron/Projects/quasar/log4j.xml -javaagent:/Users/pron/Projects/quasar/quasar-core/build/libs/quasar-core-0.7.1-SNAPSHOT.jar -Xmx2048m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +# Warmup: 3 iterations, 5 s each +# Measurement: 5 iterations, 5 s each +# Timeout: 10 min per iteration +# Threads: 1 thread, will synchronize iterations +# Benchmark mode: Average time, time/op +# Benchmark: co.paralleluniverse.fibers.FiberOverheadJMHBenchmark.baseline +# Parameters: (DEPTH = 3, STACK = 16) + +# Run progress: 0.00% complete, ETA 00:16:00 +# Fork: 1 of 1 +objc[4927]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. +# Warmup Iteration 1: \ No newline at end of file diff --git a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/Counter.java b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/Counter.java similarity index 94% rename from quasar-core/src/main/java/co/paralleluniverse/common/monitoring/Counter.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/Counter.java index 6989fca3ff..0cbcb742cf 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/Counter.java +++ b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/Counter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2011-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java similarity index 96% rename from quasar-core/src/main/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java index 61858a72d6..af0b650a94 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java +++ b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java @@ -12,6 +12,9 @@ */ package co.paralleluniverse.common.monitoring; +import co.paralleluniverse.common.monitoring.ExecutorServiceLatencyProbe; +import co.paralleluniverse.common.monitoring.ForkJoinInfo; +import co.paralleluniverse.common.monitoring.ForkJoinPoolMXBean; import java.lang.management.ManagementFactory; import javax.management.InstanceAlreadyExistsException; import javax.management.InstanceNotFoundException; diff --git a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java similarity index 97% rename from quasar-core/src/main/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java index f6cf625662..006c3cf0ca 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java +++ b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java @@ -12,6 +12,8 @@ */ package co.paralleluniverse.common.monitoring; +import co.paralleluniverse.common.monitoring.ExecutorServiceLatencyProbe; +import co.paralleluniverse.common.monitoring.Metrics; import com.codahale.metrics.Gauge; import static com.codahale.metrics.MetricRegistry.name; import jsr166e.ForkJoinPool; diff --git a/quasar-core/src/main/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java b/quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/MapUtil.java b/quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/MapUtil.java similarity index 100% rename from quasar-core/src/main/java/co/paralleluniverse/concurrent/util/MapUtil.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/concurrent/util/MapUtil.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java b/quasar-core/src/jdk7/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java similarity index 99% rename from quasar-core/src/main/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java index 658834f39b..f4c4f30e2d 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java +++ b/quasar-core/src/jdk7/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java @@ -1,6 +1,6 @@ /* * Quasar: lightweight threads and actors for the JVM. - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/ReceivePort.java b/quasar-core/src/jdk7/java/co/paralleluniverse/strands/channels/ReceivePort.java similarity index 96% rename from quasar-core/src/main/java/co/paralleluniverse/strands/channels/ReceivePort.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/strands/channels/ReceivePort.java index e589e09e01..21752f92ab 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/ReceivePort.java +++ b/quasar-core/src/jdk7/java/co/paralleluniverse/strands/channels/ReceivePort.java @@ -1,6 +1,6 @@ /* * Quasar: lightweight threads and actors for the JVM. - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by @@ -23,7 +23,7 @@ * @param Message the type of messages that can be received from this channel. * @author pron */ -public interface ReceivePort extends Port { +public interface ReceivePort extends Port, AutoCloseable { /** * Retrieves a message from the channels, possibly blocking until one becomes available. * diff --git a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SendPort.java b/quasar-core/src/jdk7/java/co/paralleluniverse/strands/channels/SendPort.java similarity index 98% rename from quasar-core/src/main/java/co/paralleluniverse/strands/channels/SendPort.java rename to quasar-core/src/jdk7/java/co/paralleluniverse/strands/channels/SendPort.java index 144d664fc8..522fe09bfa 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SendPort.java +++ b/quasar-core/src/jdk7/java/co/paralleluniverse/strands/channels/SendPort.java @@ -1,6 +1,6 @@ /* * Quasar: lightweight threads and actors for the JVM. - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/Counter.java b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/Counter.java similarity index 94% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/Counter.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/Counter.java index 3eea57e8d3..d885fade8e 100644 --- a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/Counter.java +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/Counter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2011-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/ForkJoinPoolMonitor.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/JMXForkJoinPoolMonitor.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/MetricsForkJoinPoolMonitor.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java similarity index 97% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java index e3c02bc8cc..972188f529 100644 --- a/quasar-core-jdk8/src/main/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/common/monitoring/SimpleReservoir.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerFactory.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ExtendedForkJoinWorkerThread.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ForkJoinUtil.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/MonitoredForkJoinPool.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/forkjoin/ParkableForkJoinTask.java diff --git a/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java new file mode 100644 index 0000000000..6d43a62a29 --- /dev/null +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/AbstractCompletableExecutorService.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * + * This program and the accompanying materials are dual-licensed under + * either the terms of the Eclipse Public License v1.0 as published by + * the Eclipse Foundation + * + * or (per the licensee's choosing) + * + * under the terms of the GNU Lesser General Public License version 3.0 + * as published by the Free Software Foundation. + */ +package co.paralleluniverse.concurrent.util; + +import java.util.concurrent.AbstractExecutorService; +import java.util.concurrent.Callable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.RunnableFuture; + +/** + * + * @author pron + */ +/** + * Implements {@link CompletableExecutorService} execution methods atop the abstract {@link #execute} + * method. More concretely, the {@code submit}, {@code invokeAny} and {@code invokeAll} methods + * create {@link CompletableFutureTask} instances and pass them to {@link #execute}. + * + *

In addition to {@link #execute}, subclasses must implement all methods related to shutdown and + * termination. + */ +public abstract class AbstractCompletableExecutorService extends AbstractExecutorService implements CompletableExecutorService { + @Override + public CompletableFuture submit(Runnable task) { + return (CompletableFuture) super.submit(task); + } + + @Override + public CompletableFuture submit(Runnable task, T result) { + return (CompletableFuture) super.submit(task, result); + } + + @Override + public CompletableFuture submit(Callable task) { + return (CompletableFuture) super.submit(task); + } + + @Override + protected RunnableFuture newTaskFor(final Runnable runnable, final T value) { + return new CompletableFutureTask(new Callable() { + @Override + public T call() { + runnable.run(); + return value; + } + }); + } + + @Override + protected RunnableFuture newTaskFor(Callable callable) { + return new CompletableFutureTask(callable); + } +} diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/CompletableExecutorService.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java similarity index 94% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java index 646dedb46f..f92d20dff7 100644 --- a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/CompletableFutureTask.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/MapUtil.java b/quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/MapUtil.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/concurrent/util/MapUtil.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/concurrent/util/MapUtil.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java b/quasar-core/src/jdk8/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/fibers/FiberForkJoinScheduler.java diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/fibers/futures/AsyncCompletionStage.java b/quasar-core/src/jdk8/java/co/paralleluniverse/fibers/futures/AsyncCompletionStage.java similarity index 100% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/fibers/futures/AsyncCompletionStage.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/fibers/futures/AsyncCompletionStage.java diff --git a/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/PortAutoCloseable.java b/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/PortAutoCloseable.java new file mode 100644 index 0000000000..64196e2889 --- /dev/null +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/PortAutoCloseable.java @@ -0,0 +1,36 @@ +/* + * Quasar: lightweight threads and actors for the JVM. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. + * + * This program and the accompanying materials are dual-licensed under + * either the terms of the Eclipse Public License v1.0 as published by + * the Eclipse Foundation + * + * or (per the licensee's choosing) + * + * under the terms of the GNU Lesser General Public License version 3.0 + * as published by the Free Software Foundation. + */ +package co.paralleluniverse.strands.channels; + +public interface PortAutoCloseable extends AutoCloseable { + /** + * Closes the channel so that no more messages could be sent to it. Messages already sent to the channel will still be received. + */ + @Override + default void close() { + } + + /** + * Tests whether the channel has been closed and no more messages await in the channel. + * + * If this method returns {@code true} all + * future calls to {@link #receive() receive} are guaranteed to return {@code null}, and calls to {@code receive} on a primitive channel + * will throw a {@link EOFException}. + * + * @return {@code true} if the channels has been closed and no more messages will be received; {@code false} otherwise. + */ + default boolean isClosed() { + return false; + } +} diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/strands/channels/ReceivePort.java b/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/ReceivePort.java similarity index 80% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/strands/channels/ReceivePort.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/ReceivePort.java index a8a73a9848..766690e86d 100644 --- a/quasar-core-jdk8/src/main/java/co/paralleluniverse/strands/channels/ReceivePort.java +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/ReceivePort.java @@ -24,7 +24,7 @@ * @author pron */ @FunctionalInterface -public interface ReceivePort extends Port { +public interface ReceivePort extends Port, PortAutoCloseable { /** * Retrieves a message from the channels, possibly blocking until one becomes available. * @@ -69,26 +69,9 @@ default Message tryReceive() { } } - /** - * Closes the channel so that no more messages could be sent to it. Messages already sent to the channel will still be received. - */ - default void close() {} - - /** - * Tests whether the channel has been closed and no more messages await in the channel. - * - * If this method returns {@code true} all - * future calls to {@link #receive() receive} are guaranteed to return {@code null}, and calls to {@code receive} on a primitive channel - * will throw a {@link EOFException}. - * - * @return {@code true} if the channels has been closed and no more messages will be received; {@code false} otherwise. - */ - default boolean isClosed() { - return false; - } - public static class EOFException extends Exception { public static EOFException instance = new EOFException(); + private EOFException() { } diff --git a/quasar-core-jdk8/src/main/java/co/paralleluniverse/strands/channels/SendPort.java b/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/SendPort.java similarity index 90% rename from quasar-core-jdk8/src/main/java/co/paralleluniverse/strands/channels/SendPort.java rename to quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/SendPort.java index 983b1ac870..8199c73f36 100644 --- a/quasar-core-jdk8/src/main/java/co/paralleluniverse/strands/channels/SendPort.java +++ b/quasar-core/src/jdk8/java/co/paralleluniverse/strands/channels/SendPort.java @@ -24,7 +24,7 @@ * @author pron */ @FunctionalInterface -public interface SendPort extends Port, AutoCloseable { +public interface SendPort extends Port, PortAutoCloseable { /** * Sends a message to the channel, possibly blocking until there's room available in the channel. * @@ -84,16 +84,11 @@ default boolean trySend(Message message) { } /** - * Closes the channel so that no more messages could be sent to it. Messages already sent to the channel will still be received. - */ - @Override - default void close() {} - - /** - * Closes the channel so that no more messages could be sent to it, and signifies an exception occurred in the producer. - * The exception will be thrown when the consumer calls {@link ReceivePort}'s {@code receive} or {@code tryReceive}, + * Closes the channel so that no more messages could be sent to it, and signifies an exception occurred in the producer. + * The exception will be thrown when the consumer calls {@link ReceivePort}'s {@code receive} or {@code tryReceive}, * wrapped by a {@link ProducerException}. * Messages already sent to the channel prior to calling this method will still be received. */ - default void close(Throwable t) {} + default void close(Throwable t) { + } } diff --git a/quasar-core-jdk8/src/test/java/co/paralleluniverse/fibers/futures/AsyncCompletionStageTest.java b/quasar-core/src/jdk8test/java/co/paralleluniverse/fibers/futures/AsyncCompletionStageTest.java similarity index 70% rename from quasar-core-jdk8/src/test/java/co/paralleluniverse/fibers/futures/AsyncCompletionStageTest.java rename to quasar-core/src/jdk8test/java/co/paralleluniverse/fibers/futures/AsyncCompletionStageTest.java index c664392a01..4525813022 100644 --- a/quasar-core-jdk8/src/test/java/co/paralleluniverse/fibers/futures/AsyncCompletionStageTest.java +++ b/quasar-core/src/jdk8test/java/co/paralleluniverse/fibers/futures/AsyncCompletionStageTest.java @@ -17,8 +17,6 @@ import co.paralleluniverse.fibers.Fiber; import co.paralleluniverse.fibers.FiberForkJoinScheduler; import co.paralleluniverse.fibers.FiberScheduler; -import co.paralleluniverse.fibers.SuspendExecution; -import co.paralleluniverse.strands.SuspendableCallable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import static org.hamcrest.CoreMatchers.*; @@ -40,14 +38,11 @@ public AsyncCompletionStageTest() { public void simpleTest1() throws Exception { final CompletableFuture fut = new CompletableFuture(); - final Fiber fiber = new Fiber<>(scheduler, new SuspendableCallable() { - @Override - public String run() throws SuspendExecution, InterruptedException { - try { - return AsyncCompletionStage.get(fut); - } catch (ExecutionException e) { - throw new RuntimeException(e); - } + final Fiber fiber = new Fiber<>(scheduler, () -> { + try { + return AsyncCompletionStage.get(fut); + } catch (ExecutionException e) { + throw new RuntimeException(e); } }).start(); @@ -70,16 +65,13 @@ public void run() { public void testException() throws Exception { final CompletableFuture fut = new CompletableFuture(); - final Fiber fiber = new Fiber<>(scheduler, new SuspendableCallable() { - @Override - public String run() throws SuspendExecution, InterruptedException { - try { - String res = AsyncCompletionStage.get(fut); - fail(); - return res; - } catch (ExecutionException e) { - throw Exceptions.rethrow(e.getCause()); - } + final Fiber fiber = new Fiber<>(scheduler, () -> { + try { + String res = AsyncCompletionStage.get(fut); + fail(); + return res; + } catch (ExecutionException e) { + throw Exceptions.rethrow(e.getCause()); } }).start(); diff --git a/quasar-core/src/test/java/co/paralleluniverse/concurrent/util/DelayQueueBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/concurrent/util/DelayQueueBenchmark.java similarity index 100% rename from quasar-core/src/test/java/co/paralleluniverse/concurrent/util/DelayQueueBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/concurrent/util/DelayQueueBenchmark.java diff --git a/quasar-core/src/test/java/co/paralleluniverse/concurrent/util/DelayQueueJMHBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/concurrent/util/DelayQueueJMHBenchmark.java similarity index 100% rename from quasar-core/src/test/java/co/paralleluniverse/concurrent/util/DelayQueueJMHBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/concurrent/util/DelayQueueJMHBenchmark.java diff --git a/quasar-core/src/test/java/co/paralleluniverse/fibers/FiberOverheadJMHBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/fibers/FiberOverheadJMHBenchmark.java similarity index 99% rename from quasar-core/src/test/java/co/paralleluniverse/fibers/FiberOverheadJMHBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/fibers/FiberOverheadJMHBenchmark.java index 7bf7e65ca2..0dae378bd5 100644 --- a/quasar-core/src/test/java/co/paralleluniverse/fibers/FiberOverheadJMHBenchmark.java +++ b/quasar-core/src/jmh/java/co/paralleluniverse/fibers/FiberOverheadJMHBenchmark.java @@ -1,6 +1,6 @@ /* * Quasar: lightweight threads and actors for the JVM. - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core/src/test/java/co/paralleluniverse/strands/StrandsBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/strands/StrandsBenchmark.java similarity index 100% rename from quasar-core/src/test/java/co/paralleluniverse/strands/StrandsBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/strands/StrandsBenchmark.java diff --git a/quasar-core/src/test/java/co/paralleluniverse/strands/ThreadsBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/strands/ThreadsBenchmark.java similarity index 100% rename from quasar-core/src/test/java/co/paralleluniverse/strands/ThreadsBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/strands/ThreadsBenchmark.java diff --git a/quasar-core/src/test/java/co/paralleluniverse/strands/queues/QueueBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/strands/queues/QueueBenchmark.java similarity index 100% rename from quasar-core/src/test/java/co/paralleluniverse/strands/queues/QueueBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/strands/queues/QueueBenchmark.java diff --git a/quasar-core/src/test/java/co/paralleluniverse/strands/queues/QueueJMHBenchmark.java b/quasar-core/src/jmh/java/co/paralleluniverse/strands/queues/QueueJMHBenchmark.java similarity index 100% rename from quasar-core/src/test/java/co/paralleluniverse/strands/queues/QueueJMHBenchmark.java rename to quasar-core/src/jmh/java/co/paralleluniverse/strands/queues/QueueJMHBenchmark.java diff --git a/quasar-core/src/main/java/co/paralleluniverse/common/util/DelegatingEquals.java b/quasar-core/src/main/java/co/paralleluniverse/common/util/DelegatingEquals.java index a2faa53b98..591140ef1f 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/common/util/DelegatingEquals.java +++ b/quasar-core/src/main/java/co/paralleluniverse/common/util/DelegatingEquals.java @@ -27,7 +27,7 @@ public interface DelegatingEquals { * return o.equals(delegate); * else * return delegate.equals(o); - * } + * }} */ @Override boolean equals(Object o); diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutors.java b/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutors.java index fa125b417b..da91cacd4c 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutors.java +++ b/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/CompletableExecutors.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. + * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by diff --git a/quasar-core/src/main/java/co/paralleluniverse/fibers/FiberAsync.java b/quasar-core/src/main/java/co/paralleluniverse/fibers/FiberAsync.java index 4884568353..5233937bb6 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/fibers/FiberAsync.java +++ b/quasar-core/src/main/java/co/paralleluniverse/fibers/FiberAsync.java @@ -24,19 +24,20 @@ /** * A general helper class that transforms asynchronous requests to synchronous (fiber-blocking) calls. * - * ### Usage example: + *

Usage example

* - * Assume that operation `Foo.asyncOp(FooCompletion callback)` is an asynchronous operation, where `Completion` is defined as: + * Assume that operation {@code Foo.asyncOp(FooCompletion callback)} is an asynchronous operation, where {@code Completion} is defined as: * - * ```java + *
{@code
  * interface FooCompletion {
  *     void success(String result);
  *     void failure(FooException exception);
  * }
- * ```
+ * }
+ * * We then define the following subclass: * - * ```java + *
{@code
  * class FooAsync extends FiberAsync implements FooCompletion {
  *     {@literal @}Override
  *     public void success(String result) {
@@ -48,11 +49,11 @@
  *         asyncFailed(exception);
  *     }
  * }
- * ```
+ * }
* * Then, to turn the operation into a fiber-blocking one, we can define: * - * ```java + *
{@code
  * String op() {
  *     return new FooAsync() {
  *         protected void requestAsync() {
@@ -60,7 +61,7 @@
  *         }
  *     }.run();
  * }
- * ```
+ * }
* * @param The value returned by the async request * @param An exception class that could be thrown by the async request diff --git a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectReceiveListener.java b/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectReceiveListener.java index 9e634b232f..2389320217 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectReceiveListener.java +++ b/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectReceiveListener.java @@ -14,7 +14,6 @@ package co.paralleluniverse.strands.channels; import co.paralleluniverse.fibers.SuspendExecution; -import co.paralleluniverse.strands.channels.ReceivePort; /** * A listener associated with a {@link Selector#receive(ReceivePort, SelectReceiveListener) receive SelectAction}, which is called if an only if diff --git a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectSendListener.java b/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectSendListener.java index f6ed5cdd8c..ba955f0ff2 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectSendListener.java +++ b/quasar-core/src/main/java/co/paralleluniverse/strands/channels/SelectSendListener.java @@ -14,7 +14,6 @@ package co.paralleluniverse.strands.channels; import co.paralleluniverse.fibers.SuspendExecution; -import co.paralleluniverse.strands.channels.SendPort; /** * A listener associated with a {@link Selector#send(SendPort, Object, SelectSendListener) send SelectAction}, which is called if an only if diff --git a/settings.gradle b/settings.gradle index 734e9a9da3..6e9d53e255 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,2 @@ include 'quasar-core','quasar-actors','quasar-galaxy','quasar-kotlin' -if (System.properties['java.version'].startsWith('1.8') ) { - include 'quasar-core-jdk8' -} +