Update kotlin and coroutines dependencies

This commit is contained in:
Major
2019-07-13 15:14:35 +01:00
parent cd06a69245
commit 8753bedf7e
7 changed files with 24 additions and 25 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
plugins { plugins {
id 'org.jetbrains.kotlin.jvm' version '1.2.60' apply(false) id 'org.jetbrains.kotlin.jvm' version '1.3.40' apply(false)
id 'org.jetbrains.intellij' version '0.3.6' apply(false) id 'org.jetbrains.intellij' version '0.4.9' apply(false)
id 'org.jmailen.kotlinter' version '1.16.0' apply(false) id 'org.jmailen.kotlinter' version '1.16.0' apply(false)
id 'org.sonarqube' version '2.6.2' id 'org.sonarqube' version '2.6.2'
id "io.gitlab.arturbosch.detekt" version "1.0.0.RC8" id "io.gitlab.arturbosch.detekt" version "1.0.0.RC8"
+1
View File
@@ -12,6 +12,7 @@ dependencies {
compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib-jdk8' compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib-jdk8'
compile group: 'org.jetbrains.kotlin', name: 'kotlin-scripting-common' compile group: 'org.jetbrains.kotlin', name: 'kotlin-scripting-common'
compile group: 'org.jetbrains.kotlin', name: 'kotlin-script-runtime'
compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-jdk8', version: kotlinxCoroutinesVersion compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-jdk8', version: kotlinxCoroutinesVersion
compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: kotlinxCoroutinesVersion compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: kotlinxCoroutinesVersion
+2 -3
View File
@@ -1,4 +1,3 @@
import kotlinx.coroutines.experimental.*
import org.apollo.game.action.ActionBlock import org.apollo.game.action.ActionBlock
import org.apollo.game.action.AsyncDistancedAction import org.apollo.game.action.AsyncDistancedAction
import org.apollo.game.message.impl.ObjectActionMessage import org.apollo.game.message.impl.ObjectActionMessage
@@ -13,8 +12,8 @@ import org.apollo.net.message.Message
val DUMMY_IDS = setOf<Int>(823) val DUMMY_IDS = setOf<Int>(823)
on { ObjectActionMessage::class } on { ObjectActionMessage::class }
.where { option == 2 && id in DUMMY_IDS } .where { option == 2 && id in DUMMY_IDS }
.then { DummyAction.start(this, it, position) } .then { DummyAction.start(this, it, position) }
class DummyAction(val player: Player, position: Position) : AsyncDistancedAction<Player>(0, true, player, position, DISTANCE) { class DummyAction(val player: Player, position: Position) : AsyncDistancedAction<Player>(0, true, player, position, DISTANCE) {
@@ -3,14 +3,10 @@ package org.apollo.game.action
import java.util.concurrent.CancellationException import java.util.concurrent.CancellationException
import java.util.concurrent.atomic.AtomicInteger import java.util.concurrent.atomic.AtomicInteger
import java.util.concurrent.atomic.AtomicReference import java.util.concurrent.atomic.AtomicReference
import kotlin.coroutines.experimental.Continuation import kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED
import kotlin.coroutines.experimental.CoroutineContext import kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn
import kotlin.coroutines.experimental.EmptyCoroutineContext import kotlinx.coroutines.suspendCancellableCoroutine
import kotlin.coroutines.experimental.RestrictsSuspension import kotlin.coroutines.*
import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED
import kotlin.coroutines.experimental.intrinsics.createCoroutineUnchecked
import kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn
import kotlinx.coroutines.experimental.suspendCancellableCoroutine
typealias ActionPredicate = () -> Boolean typealias ActionPredicate = () -> Boolean
typealias ActionBlock = suspend ActionCoroutine.() -> Unit typealias ActionBlock = suspend ActionCoroutine.() -> Unit
@@ -57,7 +53,7 @@ class ActionCoroutine : Continuation<Unit> {
*/ */
fun start(block: ActionBlock): ActionCoroutine { fun start(block: ActionBlock): ActionCoroutine {
val coroutine = ActionCoroutine() val coroutine = ActionCoroutine()
val continuation = block.createCoroutineUnchecked(coroutine, coroutine) val continuation = block.createCoroutine(coroutine, coroutine)
coroutine.resumeContinuation(continuation) coroutine.resumeContinuation(continuation)
@@ -66,8 +62,11 @@ class ActionCoroutine : Continuation<Unit> {
} }
override val context: CoroutineContext = EmptyCoroutineContext override val context: CoroutineContext = EmptyCoroutineContext
override fun resume(value: Unit) {} override fun resumeWith(result: Result<Unit>) {
override fun resumeWithException(exception: Throwable) = throw exception if (result.isFailure) {
throw result.exceptionOrNull()!!
}
}
private fun resumeContinuation(continuation: Continuation<Unit>, allowCancellation: Boolean = true) { private fun resumeContinuation(continuation: Continuation<Unit>, allowCancellation: Boolean = true) {
try { try {
@@ -108,7 +107,7 @@ class ActionCoroutine : Continuation<Unit> {
} }
private suspend fun awaitCondition(condition: ActionCoroutineCondition) { private suspend fun awaitCondition(condition: ActionCoroutineCondition) {
return suspendCoroutineOrReturn { cont -> return suspendCoroutineUninterceptedOrReturn { cont ->
next.compareAndSet(null, ActionCoroutineStep(condition, cont)) next.compareAndSet(null, ActionCoroutineStep(condition, cont))
COROUTINE_SUSPENDED COROUTINE_SUSPENDED
} }
@@ -118,7 +117,7 @@ class ActionCoroutine : Continuation<Unit> {
* Stop execution of this continuation. * Stop execution of this continuation.
*/ */
suspend fun stop(): Nothing { suspend fun stop(): Nothing {
suspendCancellableCoroutine<Unit>(true) { cont -> suspendCancellableCoroutine<Unit> { cont ->
next.set(null) next.set(null)
cont.cancel() cont.cancel()
} }
@@ -2,7 +2,6 @@ package org.apollo.game.plugin.kotlin
import kotlin.reflect.KClass import kotlin.reflect.KClass
import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.annotations.KotlinScript
import kotlin.script.experimental.annotations.KotlinScriptFileExtension
import org.apollo.game.command.Command import org.apollo.game.command.Command
import org.apollo.game.command.CommandListener import org.apollo.game.command.CommandListener
import org.apollo.game.message.handler.MessageHandler import org.apollo.game.message.handler.MessageHandler
@@ -16,8 +15,7 @@ import org.apollo.game.model.event.PlayerEvent
import org.apollo.game.plugin.PluginContext import org.apollo.game.plugin.PluginContext
import org.apollo.net.message.Message import org.apollo.net.message.Message
@KotlinScript("Apollo Plugin Script") @KotlinScript("Apollo Plugin Script", fileExtension = "plugin.kts")
@KotlinScriptFileExtension("plugin.kts")
abstract class KotlinPluginScript(private var world: World, val context: PluginContext) { abstract class KotlinPluginScript(private var world: World, val context: PluginContext) {
var startListener: (World) -> Unit = { _ -> } var startListener: (World) -> Unit = { _ -> }
var stopListener: (World) -> Unit = { _ -> } var stopListener: (World) -> Unit = { _ -> }
+3 -1
View File
@@ -1 +1,3 @@
kotlin { experimental { coroutines 'enable' } } kotlin {
}
+3 -3
View File
@@ -1,6 +1,6 @@
ext { ext {
kotlinVersion = '1.2.60' kotlinVersion = '1.3.40'
kotlinxCoroutinesVersion = '0.24.0' kotlinxCoroutinesVersion = '1.3.0-M2'
junitVersion = '4.12' junitVersion = '4.12'
powermockVersion = '1.6.4' powermockVersion = '1.6.4'
bouncycastleVersion = '1.54' bouncycastleVersion = '1.54'
@@ -16,5 +16,5 @@ ext {
junitJupiterVersion = '5.1.0' junitJupiterVersion = '5.1.0'
mockkVersion = '1.7.15' mockkVersion = '1.7.15'
assertkVersion = '0.9' assertkVersion = '0.9'
detektVersion = '1.0.0.RC8' detektVersion = '1.0.0-RC16'
} }