Skip to content

Commit 3fe7185

Browse files
authored
Split kotlin modules (#316)
1 parent b603449 commit 3fe7185

17 files changed

Lines changed: 127 additions & 78 deletions

File tree

build-logic/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
`kotlin-dsl`
3+
id("org.jlleitschuh.gradle.ktlint")
34
}
45

56
repositories {
@@ -12,4 +13,7 @@ dependencies {
1213
implementation(libs.gradleTestLogger)
1314
implementation(libs.gradleErrorprone)
1415
implementation(libs.licenser)
16+
implementation(libs.gradleKotlinJvm)
17+
implementation(libs.gradleDokka)
18+
implementation(libs.gradleKtlint)
1519
}

build-logic/src/main/kotlin/cloud.base-conventions.gradle.kts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ tasks {
2727
options.errorprone {
2828
/* These are just annoying */
2929
disable(
30-
"JdkObsolete",
31-
"FutureReturnValueIgnored",
32-
"ImmutableEnumChecker",
33-
"StringSplitter",
34-
"EqualsGetClass",
35-
"CatchAndPrintStackTrace",
36-
"InlineMeSuggester",
30+
"JdkObsolete",
31+
"FutureReturnValueIgnored",
32+
"ImmutableEnumChecker",
33+
"StringSplitter",
34+
"EqualsGetClass",
35+
"CatchAndPrintStackTrace",
36+
"InlineMeSuggester",
3737
)
3838
}
3939
options.compilerArgs.addAll(listOf("-Xlint:-processing", "-Werror"))
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import org.jetbrains.dokka.gradle.DokkaTask
2+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
3+
4+
plugins {
5+
id("cloud.base-conventions")
6+
kotlin("jvm")
7+
id("org.jetbrains.dokka")
8+
id("org.jlleitschuh.gradle.ktlint")
9+
}
10+
11+
kotlin {
12+
jvmToolchain {
13+
(this as JavaToolchainSpec).apply {
14+
languageVersion.set(JavaLanguageVersion.of(8))
15+
}
16+
}
17+
}
18+
19+
val compileAndTest: Configuration by configurations.creating
20+
listOf(configurations.compileOnly, configurations.testImplementation).forEach { config ->
21+
config {
22+
extendsFrom(compileAndTest)
23+
}
24+
}
25+
26+
dependencies {
27+
compileAndTest(kotlin("stdlib-jdk8"))
28+
}
29+
30+
tasks {
31+
withType<DokkaTask> {
32+
dokkaSourceSets.named("main") {
33+
includes.from(layout.projectDirectory.file("src/main/descriptions.md"))
34+
/*externalDocumentationLink { // todo: fix KDoc linking to JavaDoc
35+
url.set(URL("https://javadoc.commandframework.cloud/"))
36+
packageListUrl.set(URL("https://javadoc.commandframework.cloud/allpackages-index.html"))
37+
}*/
38+
}
39+
}
40+
javadocJar {
41+
from(dokkaHtml)
42+
}
43+
withType<KotlinCompile> {
44+
kotlinOptions {
45+
jvmTarget = "1.8"
46+
}
47+
}
48+
}
49+
50+
kotlin {
51+
explicitApi()
52+
}

build-logic/src/main/kotlin/extensions.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import org.gradle.api.provider.Provider
44
// set by GitHub Actions
55
val Project.ci: Provider<Boolean>
66
get() = providers.environmentVariable("CI")
7-
.forUseAtConfigurationTime()
8-
.map { it.toBoolean() }
9-
.orElse(false)
7+
.forUseAtConfigurationTime()
8+
.map { it.toBoolean() }
9+
.orElse(false)
1010

1111
val Project.compileExamples: Boolean
1212
get() = providers.gradleProperty("compile-examples")
13-
.forUseAtConfigurationTime()
14-
.isPresent
13+
.forUseAtConfigurationTime()
14+
.isPresent

cloud-kotlin-extensions/build.gradle.kts

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
plugins {
2+
id("cloud.kotlin-conventions")
3+
}
4+
5+
dependencies {
6+
api(project(":cloud-core"))
7+
api(project(":cloud-annotations"))
8+
api(kotlin("reflect"))
9+
api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
10+
api("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.5.2")
11+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Module cloud-kotlin-coroutines-annotations
2+
3+
cloud-annotations extensions for Kotlin coroutine integration.
4+
5+
# Package cloud.commandframework.kotlin.coroutines.annotations
6+
7+
cloud-kotlin-coroutines-annotations classes and functions.

cloud-kotlin-extensions/src/main/kotlin/cloud/commandframework/kotlin/coroutines/KotlinAnnotatedMethods.kt renamed to cloud-kotlin/cloud-kotlin-coroutines-annotations/src/main/kotlin/cloud/commandframework/kotlin/coroutines/annotations/KotlinAnnotatedMethods.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
// SOFTWARE.
2323
//
24-
package cloud.commandframework.kotlin.coroutines
24+
package cloud.commandframework.kotlin.coroutines.annotations
2525

2626
import cloud.commandframework.annotations.AnnotationParser
2727
import cloud.commandframework.annotations.MethodCommandExecutionHandler
@@ -43,12 +43,15 @@ import kotlin.reflect.jvm.kotlinFunction
4343
/**
4444
* Adds coroutine support to the [AnnotationParser].
4545
*
46+
* @param scope coroutine scope
47+
* @param context coroutine context
48+
* @return annotation parser
4649
* @since 1.6.0
4750
*/
4851
public fun <C> AnnotationParser<C>.installCoroutineSupport(
4952
scope: CoroutineScope = GlobalScope,
5053
context: CoroutineContext = EmptyCoroutineContext
51-
) {
54+
): AnnotationParser<C> {
5255
if (manager().commandExecutionCoordinator() is CommandExecutionCoordinator.SimpleCoordinator) {
5356
RuntimeException(
5457
"""You are highly advised to not use the simple command execution coordinator together
@@ -61,6 +64,8 @@ public fun <C> AnnotationParser<C>.installCoroutineSupport(
6164
registerCommandExecutionMethodFactory(predicate) {
6265
KotlinMethodCommandExecutionHandler(scope, context, it)
6366
}
67+
68+
return this
6469
}
6570

6671
private class KotlinMethodCommandExecutionHandler<C>(

cloud-kotlin-extensions/src/test/kotlin/cloud/commandframework/kotlin/coroutines/KotlinAnnotatedMethodsTest.kt renamed to cloud-kotlin/cloud-kotlin-coroutines-annotations/src/test/kotlin/cloud/commandframework/kotlin/coroutines/annotations/KotlinAnnotatedMethodsTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
// SOFTWARE.
2323
//
24-
package cloud.commandframework.kotlin.coroutines
24+
package cloud.commandframework.kotlin.coroutines.annotations
2525

2626
import cloud.commandframework.CommandManager
2727
import cloud.commandframework.annotations.AnnotationParser
@@ -65,7 +65,7 @@ class KotlinAnnotatedMethodsTest {
6565
AnnotationParser(commandManager, TestCommandSender::class.java) {
6666
SimpleCommandMeta.empty()
6767
}
68-
.also { it.installCoroutineSupport() }
68+
.installCoroutineSupport()
6969
.parse(CommandMethods())
7070

7171
commandManager.executeCommand(TestCommandSender(), "test").await()
@@ -76,7 +76,7 @@ class KotlinAnnotatedMethodsTest {
7676
AnnotationParser(commandManager, TestCommandSender::class.java) {
7777
SimpleCommandMeta.empty()
7878
}
79-
.also { it.installCoroutineSupport() }
79+
.installCoroutineSupport()
8080
.parse(CommandMethods())
8181

8282
assertThrows<CommandExecutionException> {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
plugins {
2+
id("cloud.kotlin-conventions")
3+
}
4+
5+
dependencies {
6+
api(project(":cloud-core"))
7+
}

0 commit comments

Comments
 (0)