El ejemplo de Kotlin Quasar no funciona

Estoy probando el ejemplo del actor Kotlin Quasar. Quasar y Kotlin: una combinación poderosa Entonces, la pregunta es, ¿está este ejemplo desactualizado y hay alguna documentation en la que pueda descubrir cómo usar Kotlin y Quasar?

Este es mi file gradle.build.

group 'no.inmeta.kotlin.akka' version '1.0-SNAPSHOT' buildscript { ext.kotlin_version = '1.0.1' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "co.paralleluniverse:quasar-kotlin:0.7.4" testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version" } 

Soy parte del equipo Quasar.

La publicación cita testings de Quasar que puedes ejecutar clonando el repository Quasar y ejecutando, por ejemplo, gradle :quasar-kotlin:build (requiere la installation de Gradle), pero para nuevos proyectos / experimentos sugiero que comiences desde la plantilla de kotlin , la twig kotlin que ahora usa el último Kotlin 1.0.1-2 (y para simplificar, el último Quasar 0.7.5-SNAPSHOT que depende de él).

A partir de esa plantilla, construí este proyecto (más información sobre cómo configurarlo y ejecutarlo en el file README principal) que ejecuta las mismas testings Quasar actor que los progtwigs normales en lugar de las testings. Aquí está su build.gradle :

 group 'no.inmeta.kotlin.akka' version '1.0-SNAPSHOT' buildscript { ext.kotlinVer = '1.0.1-2' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVer" } } apply plugin: 'kotlin' apply plugin: 'application' [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' sourceCompatibility = 1.8 // 1.7 targetCompatibility = 1.8 // 1.7 configurations { quasar } configurations.all { resolutionStrategy { failOnVersionConflict() } } repositories { // mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/releases" } maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } // maven { url 'https://maven.java.net/content/repositories/snapshots' } } ext.classifier = ':jdk8' // ':' ext.quasarVer = '0.7.5-SNAPSHOT' dependencies { compile "co.paralleluniverse:quasar-core:${quasarVer}${classifier}" compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" compile "org.jetbrains.kotlin:kotlin-reflect:$kotlinVer" compile "co.paralleluniverse:quasar-kotlin:${quasarVer}" quasar "co.paralleluniverse:quasar-core:${quasarVer}${classifier}@jar" } applicationDefaultJvmArgs = [ "-Dco.paralleluniverse.fibers.verifyInstrumentation=true", "-Dco.paralleluniverse.fibers.detectRunawayFibers=false", "-javaagent:${configurations.quasar.singleFile}" // =v, =d ] // mainClassName = 'co.paralleluniverse.kotlin.actors1.PingPongKt' mainClassName = 'co.paralleluniverse.kotlin.actors2.PingPongWithDeferKt' task wrapper(type: Wrapper) { gradleVersion = '2.12' } defaultTasks 'run' 

Algunas notas sobre las diferencias con su file de compilation:

  • Desde que convertí las testings a los progtwigs, mainClassName el complemento de la application y su configuration (aquí, applicationDefaultJvmArgs y mainClassName ) y también establecí la tarea pnetworkingeterminada de Gradle para run .
  • Además de lo anterior, se ha generado y enviado un contenedor gradle para que ./gradlew sea ​​todo lo que necesita en la command-line, sin necesidad de tener una installation local de Gradle (la forma de ejecutarlo en un IDE depende del IDE) .
  • Necesita ejecutar el agente Quasar (o la instrumentación AoT pero usando el agente aquí) de modo que haya una configuration de quasar apunte al artefacto que luego se usa para pasar el argumento JVM -javaagent:${configurations.quasar.singleFile} .
  • Usando Java 8 como Quasar tiene una compilation optimizada específica para él.

También tenga en count que ahora hay una twig 1.0 del proyecto quasar-kotlin-jetbrains-webinar (que ahora es el HEAD uno en realidad), que contiene el código fuente complementario de este seminario web invitado con IntelliJ , portado a los últimos Kotlin y Quasar también.

Déjeme saber si esto ayuda.