diff --git a/README.md b/README.md
index 95f9d13..18996b5 100644
--- a/README.md
+++ b/README.md
@@ -63,7 +63,7 @@ dependencies {
```
Instructions for using with Maven, Ivy, etc. can be found
-on [Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder).
+on [Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder-jvm).
## Standalone usage
@@ -85,10 +85,10 @@ Encode and decode URL components defensively.
### Running with Gradle
```shell
-./gradlew run --args="-e 'a test &'" # -> a%20test%20%26
-./gradlew run --args="%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2
+./gradlew run --quiet --args="-e 'a test &'" # -> a%20test%20%26
+./gradlew run --quiet --args="%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2
-./gradlew run --args="-d 'a%20test%20%26'" # -> a test &
+./gradlew run --quiet --args="-d 'a%20test%20%26'" # -> a test &
```
### Running with Java
@@ -96,23 +96,23 @@ Encode and decode URL components defensively.
First build the jar file:
```shell
-./gradlew clean fatJar
+./gradlew fatJar
```
Then run it:
```shell
-java -jar lib/build/libs/urlencoder-*all.jar -e "a test &" # -> a%20test%20%26
-java -jar lib/build/libs/urlencoder-*all.jar "%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2
+java -jar urlencoder-app/build/libs/urlencoder-*all.jar -e "a test &" # -> a%20test%20%26
+java -jar urlencoder-app/build/libs/urlencoder-*all.jar "%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2
-java -jar lib/build/libs/urlencoder-*.all.jar -d "a%20test%20%26" # -> a test &
+java -jar urlencoder-app/build/libs/urlencoder-*all.jar -d "a%20test%20%26" # -> a test &
```
## Why not simply use `java.net.URLEncoder`?
Apart for being quite inefficient, some URL components encoded with `URLEncoder.encode` might not be able to be properly decoded.
-For example, a simply search query such as:
+For example, a simple search query such as:
```kotlin
val u = URLEncoder.encode("foo +bar", StandardCharsets.UTF_8)
@@ -139,4 +139,3 @@ foo++bar
Unfortunately, decoding with [Uri.decode](https://developer.android.com/reference/android/net/Uri#decode(java.lang.String)) on Android, [decodeURI](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI) in Javascript, etc. would yield the exact same result.
![URLEncoder](https://live.staticflickr.com/65535/52607534147_6197b42666_z.jpg)
-
diff --git a/app/pom.xml b/app/pom.xml
deleted file mode 100644
index 087b75b..0000000
--- a/app/pom.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
- 4.0.0
- net.thauvin.erik
- urlencoder
- 1.4.0-SNAPSHOT
- UrlEncoder for Kotlin
- A simple defensive application to encode/decode URL components
- https://github.com/ethauvin/urlencoder
-
-
- The Apache License, Version 2.0
- https://www.apache.org/licenses/LICENSE-2.0.txt
-
-
-
-
- gbevin
- Geert Bevin
- gbevin@uwyn.com
- https://github.com/gbevin
-
-
- ethauvin
- Erik C. Thauvin
- erik@thauvin.net
- https://erik.thauvin.net/
-
-
-
- scm:git://github.com/ethauvin/urlencoder.git
- scm:git@github.com:ethauvin/urlencoder.git
- https://github.com/ethauvin/urlencoder
-
-
- GitHub
- https://github.com/ethauvin/urlencoder/issues
-
-
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk8
- 1.9.0
- compile
-
-
- net.thauvin.erik
- urlencoder-lib
- 1.4.0-SNAPSHOT
- runtime
-
-
-
diff --git a/build.gradle.kts b/build.gradle.kts
index 53f13b1..c710ce6 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -24,6 +24,6 @@ group = "net.thauvin.erik"
version = "1.4.0-SNAPSHOT"
dependencies {
- kover(projects.lib)
- kover(projects.app)
+ kover(projects.urlencoderLib)
+ kover(projects.urlencoderApp)
}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 1919b2d..291ee4f 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -9,3 +9,14 @@ dependencies {
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0")
implementation("org.jetbrains.kotlinx:kover-gradle-plugin:0.7.1")
}
+
+dependencyLocking {
+ lockMode.set(LockMode.STRICT)
+}
+
+configurations {
+ // only lock compile & runtime to prevent error:
+ // Locking strict mode: Configuration ':buildSrc:testCompileClasspath' is locked but does not have lock state.
+ compileClasspath { resolutionStrategy.activateDependencyLocking() }
+ runtimeClasspath { resolutionStrategy.activateDependencyLocking() }
+}
diff --git a/buildSrc/gradle.lockfile b/buildSrc/gradle.lockfile
new file mode 100644
index 0000000..970d12d
--- /dev/null
+++ b/buildSrc/gradle.lockfile
@@ -0,0 +1,68 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+com.fasterxml.jackson.core:jackson-annotations:2.12.7=runtimeClasspath
+com.fasterxml.jackson.core:jackson-core:2.12.7=runtimeClasspath
+com.fasterxml.jackson.core:jackson-databind:2.12.7.1=runtimeClasspath
+com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=runtimeClasspath
+com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=runtimeClasspath
+com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=runtimeClasspath
+com.fasterxml.jackson:jackson-bom:2.12.7=runtimeClasspath
+com.fasterxml.woodstox:woodstox-core:6.2.4=runtimeClasspath
+com.github.ben-manes:gradle-versions-plugin:0.47.0=compileClasspath,runtimeClasspath
+com.squareup.moshi:moshi-kotlin:1.12.0=runtimeClasspath
+com.squareup.moshi:moshi:1.12.0=runtimeClasspath
+com.squareup.okhttp3:okhttp:4.11.0=runtimeClasspath
+com.squareup.okio:okio-jvm:3.2.0=runtimeClasspath
+com.squareup.okio:okio:3.2.0=runtimeClasspath
+com.thoughtworks.xstream:xstream:1.4.20=runtimeClasspath
+io.github.x-stream:mxparser:1.2.2=runtimeClasspath
+io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.0=compileClasspath,runtimeClasspath
+jakarta.activation:jakarta.activation-api:1.2.1=runtimeClasspath
+jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=runtimeClasspath
+org.codehaus.woodstox:stax2-api:4.2.1=runtimeClasspath
+org.jetbrains.dokka:dokka-core:1.8.20=compileClasspath,runtimeClasspath
+org.jetbrains.dokka:dokka-gradle-plugin:1.8.20=compileClasspath,runtimeClasspath
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=runtimeClasspath
+org.jetbrains.kotlin:kotlin-android-extensions:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-compiler-runner:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-daemon-client:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-native-utils:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-project-model:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.8.20=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-scripting-common:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0=runtimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20=compileClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=runtimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=compileClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21=runtimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=compileClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21=runtimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:1.8.20=compileClasspath
+org.jetbrains.kotlin:kotlin-stdlib:1.8.21=runtimeClasspath
+org.jetbrains.kotlin:kotlin-tooling-core:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-util-io:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlin:kotlin-util-klib:1.9.0=compileClasspath,runtimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=runtimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=runtimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=runtimeClasspath
+org.jetbrains.kotlinx:kover-gradle-plugin:0.7.1=compileClasspath,runtimeClasspath
+org.jetbrains:annotations:13.0=compileClasspath,runtimeClasspath
+org.jetbrains:markdown-jvm:0.3.1=compileClasspath,runtimeClasspath
+org.jetbrains:markdown:0.3.1=compileClasspath,runtimeClasspath
+org.jsoup:jsoup:1.15.3=runtimeClasspath
+xmlpull:xmlpull:1.1.3.1=runtimeClasspath
+empty=kotlinScriptDefExtensions
diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts
index 59e3a56..4186f9e 100644
--- a/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts
+++ b/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts
@@ -16,3 +16,21 @@ tasks.withType().configureEach {
isPreserveFileTimestamps = false
isReproducibleFileOrder = true
}
+
+dependencyLocking {
+ lockMode.set(LockMode.STRICT)
+ lockAllConfigurations()
+}
+
+tasks.register("resolveAndLockAllDependencies") {
+ // https://docs.gradle.org/current/userguide/dependency_locking.html#ex-resolving-all-configurations
+ group = "dependencies"
+ notCompatibleWithConfigurationCache("Filters configurations at execution time")
+ val resolvableConfigurations = configurations.matching { it.isCanBeResolved }
+ doFirst {
+ require(gradle.startParameter.isWriteDependencyLocks) { "$path must be run from the command line with the `--write-locks` flag" }
+ }
+ doLast {
+ resolvableConfigurations.forEach { it.resolve() }
+ }
+}
diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-jvm.gradle.kts
deleted file mode 100644
index fd1e8bf..0000000
--- a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-jvm.gradle.kts
+++ /dev/null
@@ -1,47 +0,0 @@
-package buildsrc.conventions.lang
-
-import buildsrc.utils.Rife2TestListener
-import org.gradle.api.tasks.testing.logging.TestExceptionFormat
-import org.gradle.api.tasks.testing.logging.TestLogEvent
-import org.jetbrains.kotlin.gradle.dsl.JvmTarget
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-
-/**
- * Common configuration for Kotlin/JVM projects
- *
- * (this can be removed after Kotlin Multiplatform migration)
- */
-
-plugins {
- id("buildsrc.conventions.base")
- kotlin("jvm")
- id("io.gitlab.arturbosch.detekt")
- id("org.jetbrains.kotlinx.kover")
-}
-
-java {
- withSourcesJar()
-}
-
-kotlin {
- jvmToolchain(11)
-}
-
-tasks.withType().configureEach {
- compilerOptions {
- jvmTarget.set(JvmTarget.JVM_11)
- }
-}
-
-tasks.withType().configureEach {
-// useJUnitPlatform()
-
- val testsBadgeApiKey = providers.gradleProperty("testsBadgeApiKey")
- addTestListener(Rife2TestListener(testsBadgeApiKey))
- testLogging {
- exceptionFormat = TestExceptionFormat.FULL
- events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED)
- }
-
- finalizedBy(tasks.matching { it.name == "koverXmlReport" })
-}
diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts
index 7978714..052fd92 100644
--- a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts
+++ b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts
@@ -43,8 +43,8 @@ kotlin {
sourceSets.configureEach {
languageSettings {
-// languageVersion =
-// apiVersion =
+ // languageVersion =
+ // apiVersion =
}
}
}
diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts
index 7e8bb2a..e29ad97 100644
--- a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts
+++ b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts
@@ -34,23 +34,21 @@ kotlin {
// ├── watchosX64
// └── watchosSimulatorArm64Main
- targets {
- linuxX64()
+ linuxX64()
- mingwX64()
+ mingwX64()
- macosX64()
- macosArm64()
+ macosX64()
+ macosArm64()
- // https://kotlinlang.org/docs/multiplatform-share-on-platforms.html#use-target-shortcuts
- ios() // iosArm64, iosX64
- watchos() // watchosArm32, watchosArm64, watchosX64
- tvos() // tvosArm64, tvosX64
+ // https://kotlinlang.org/docs/multiplatform-share-on-platforms.html#use-target-shortcuts
+ ios() // iosArm64, iosX64
+ watchos() // watchosArm32, watchosArm64, watchosX64
+ tvos() // tvosArm64, tvosX64
- iosSimulatorArm64()
- tvosSimulatorArm64()
- watchosSimulatorArm64()
- }
+ iosSimulatorArm64()
+ tvosSimulatorArm64()
+ watchosSimulatorArm64()
@Suppress("UNUSED_VARIABLE")
sourceSets {
@@ -79,22 +77,22 @@ kotlin {
val iosMain by getting { dependsOn(nativeMain) }
val iosTest by getting { dependsOn(nativeTest) }
-// val iosSimulatorArm64Main by getting { dependsOn(iosMain) }
-// val iosSimulatorArm64Test by getting { dependsOn(iosTest) }
-
-// // Apple - tvOS
-// val tvosMain by getting { dependsOn(nativeMain) }
-// val tvosTest by getting { dependsOn(nativeTest) }
-//
-// val tvosSimulatorArm64Main by getting { dependsOn(tvosMain) }
-// val tvosSimulatorArm64Test by getting { dependsOn(tvosTest) }
-//
-// // Apple - watchOS
-// val watchosMain by getting { dependsOn(nativeMain) }
-// val watchosTest by getting { dependsOn(nativeTest) }
-//
-// val watchosSimulatorArm64Main by getting { dependsOn(watchosMain) }
-// val watchosSimulatorArm64Test by getting { dependsOn(watchosTest) }
+ // val iosSimulatorArm64Main by getting { dependsOn(iosMain) }
+ // val iosSimulatorArm64Test by getting { dependsOn(iosTest) }
+
+ // // Apple - tvOS
+ // val tvosMain by getting { dependsOn(nativeMain) }
+ // val tvosTest by getting { dependsOn(nativeTest) }
+
+ // val tvosSimulatorArm64Main by getting { dependsOn(tvosMain) }
+ // val tvosSimulatorArm64Test by getting { dependsOn(tvosTest) }
+
+ // // Apple - watchOS
+ // val watchosMain by getting { dependsOn(nativeMain) }
+ // val watchosTest by getting { dependsOn(nativeTest) }
+
+ // val watchosSimulatorArm64Main by getting { dependsOn(watchosMain) }
+ // val watchosSimulatorArm64Test by getting { dependsOn(watchosTest) }
// val iosArm32Main by getting { dependsOn(desktopMain) }
// val iosArm32Test by getting { dependsOn(nativeTest) }
diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts
index 9155ad4..a3800c4 100644
--- a/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts
+++ b/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts
@@ -89,6 +89,7 @@ signing {
!isSnapshotVersion() || gradle.taskGraph.hasTask("publish")
})
}
+
tasks.withType().configureEach {
val signingRequiredPredicate = provider { signing.isRequired }
onlyIf { signingRequiredPredicate.get() }
@@ -106,3 +107,9 @@ val javadocJar by tasks.registering(Jar::class) {
from(tasks.dokkaJavadoc)
archiveClassifier.set("javadoc")
}
+
+publishing {
+ publications.withType().configureEach {
+ artifact(javadocJar)
+ }
+}
diff --git a/gradle.lockfile b/gradle.lockfile
new file mode 100644
index 0000000..9654a6a
--- /dev/null
+++ b/gradle.lockfile
@@ -0,0 +1,9 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+org.freemarker:freemarker:2.3.30=koverJvmReporter
+org.jetbrains.intellij.deps:coverage-report:1.0.19=koverJvmReporter
+org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.721=koverJvmAgent,koverJvmReporter
+org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.721=koverJvmReporter
+org.jetbrains:annotations:16.0.2=koverJvmReporter
+empty=koverExternalArtifacts
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..ec527a3
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,9 @@
+org.gradle.jvmargs=-Dfile.encoding=UTF-8
+
+org.gradle.caching=true
+org.gradle.parallel=true
+org.gradle.welcome=never
+
+# enableKgpDependencyResolution provides a smoother import experience in multiplatform projects
+# https://kotlinlang.org/docs/whatsnew1820.html#preview-of-gradle-composite-builds-support-in-kotlin-multiplatform
+kotlin.mpp.import.enableKgpDependencyResolution=true
diff --git a/lib/pom.xml b/lib/pom.xml
deleted file mode 100644
index 79c97ad..0000000
--- a/lib/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
- 4.0.0
- net.thauvin.erik
- urlencoder-lib
- 1.4.0-SNAPSHOT
- UrlEncoder for Kotlin
- A simple defensive library to encode/decode URL components
- https://github.com/ethauvin/urlencoder
-
-
- The Apache License, Version 2.0
- https://www.apache.org/licenses/LICENSE-2.0.txt
-
-
-
-
- gbevin
- Geert Bevin
- gbevin@uwyn.com
- https://github.com/gbevin
-
-
- ethauvin
- Erik C. Thauvin
- erik@thauvin.net
- https://erik.thauvin.net/
-
-
-
- scm:git://github.com/ethauvin/urlencoder.git
- scm:git@github.com:ethauvin/urlencoder.git
- https://github.com/ethauvin/urlencoder
-
-
- GitHub
- https://github.com/ethauvin/urlencoder/issues
-
-
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk8
- 1.9.0
- compile
-
-
-
diff --git a/lib/pom.xml.asc b/lib/pom.xml.asc
deleted file mode 100644
index fb5746a..0000000
--- a/lib/pom.xml.asc
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: BCPG v1.68
-
-iQIzBAABCAAdFiEEOckYpvaxKUI3I6Pxd2cCpqLaMw4FAmO46y8ACgkQd2cCpqLa
-Mw49qg//YPTr/FbXTVDB2KsPRRRMAMf3tQxvYknuMJsAIOTq9XfkmWM6XY+A1L6+
-Up98MLrBMFKckrZ90bypTCZGhIi52yoE6StchFMJiuLGE+OwQIwPxaX0LNN3pLD6
-BE5muGYZV762PeTkNU0oXNX+e0ReATnUHiriNvz9mZN/xDQLQ+C54wlu9wTKVC6l
-beDezJsNYS4OhQJuJk4bm7w5umEocvbOydzSa/a95hQY9EfsQOUkc4jdGbDRGjKX
-ladPDl8B+Y1+peJDkzcgL+A2T0mJ4bxouI32cGyQBXvawfcfz7ksifhoRDyESXrt
-YoQMcVb9Bnv/k2r4jPSb92znTwCWY7joXrTE44C3wUk6cg8QoCEmjAdEfxwCM17f
-pYIoejBGAMp3xYmzBJg4017e+Tg8hR2SrQHAF65GezEi/d9SOAevEp9aOPPSWOI1
-0LgMcBAE9yxCF2r8EHpFyD2dHfaOI9kKsBfGyKn+8ksu75l6bCZRFJu4syYaNLZn
-b9kHAHgmfikKMnHBZGr/SqYADnCLr/PwJFOhACDYtbhcXVm4PJT3l6Yep8xG1N84
-+qTFA6CuOZjAklonbroHlkgn8ixhuC9ZNtKaIH6zvdG9SoaN4yMu7Itk6GtAAQy6
-qCB+3oylZlKjh1mVo9X8iatL8rdgn8dsEwvC+ItsjsnxXtCPhX4=
-=amWH
------END PGP SIGNATURE-----
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 86af703..5e247de 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -23,6 +23,6 @@ dependencyResolutionManagement {
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
include(
- ":app",
- ":lib",
+ ":urlencoder-app",
+ ":urlencoder-lib",
)
diff --git a/app/build.gradle.kts b/urlencoder-app/build.gradle.kts
similarity index 69%
rename from app/build.gradle.kts
rename to urlencoder-app/build.gradle.kts
index 569519b..f9f6279 100644
--- a/app/build.gradle.kts
+++ b/urlencoder-app/build.gradle.kts
@@ -18,7 +18,7 @@
import org.jetbrains.dokka.gradle.DokkaTask
plugins {
- buildsrc.conventions.lang.`kotlin-jvm`
+ buildsrc.conventions.lang.`kotlin-multiplatform-jvm`
buildsrc.conventions.publishing
id("application")
id("com.github.ben-manes.versions")
@@ -29,13 +29,21 @@ description = "A simple defensive application to encode/decode URL components"
val deployDir = project.layout.projectDirectory.dir("deploy")
val urlEncoderMainClass = "net.thauvin.erik.urlencoder.UrlEncoder"
-dependencies {
- implementation(projects.lib)
- kover(projects.lib)
-
-// testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.25")
-// testImplementation("org.junit.jupiter:junit-jupiter:5.9.1")
- testImplementation(kotlin("test"))
+kotlin {
+ sourceSets {
+ commonMain {
+ dependencies {
+ implementation(projects.urlencoderLib)
+ }
+ }
+ jvmTest {
+ dependencies {
+ //implementation("com.willowtreeapps.assertk:assertk-jvm:0.25")
+ //implementation("org.junit.jupiter:junit-jupiter:5.9.1")
+ implementation(kotlin("test"))
+ }
+ }
+ }
}
base {
@@ -47,7 +55,7 @@ application {
}
tasks {
- jar {
+ jvmJar {
manifest {
attributes["Main-Class"] = urlEncoderMainClass
}
@@ -55,13 +63,13 @@ tasks {
val fatJar by registering(Jar::class) {
group = LifecycleBasePlugin.BUILD_GROUP
- dependsOn.addAll(listOf("compileJava", "compileKotlin", "processResources"))
+ dependsOn.addAll(listOf("compileJava", "compileKotlinJvm", "processResources"))
archiveClassifier.set("all")
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest { attributes(mapOf("Main-Class" to application.mainClass)) }
from(sourceSets.main.get().output)
- dependsOn(configurations.runtimeClasspath)
- from(configurations.runtimeClasspath.map { classpath ->
+ dependsOn(configurations.jvmRuntimeClasspath)
+ from(configurations.jvmRuntimeClasspath.map { classpath ->
classpath.incoming.artifacts.artifactFiles.files.filter { it.name.endsWith("jar") }.map { zipTree(it) }
})
}
@@ -70,28 +78,22 @@ tasks {
dependsOn(fatJar)
}
- withType().configureEach {
- destination = file("$projectDir/pom.xml")
- }
-
clean {
delete(deployDir)
}
withType().configureEach {
- dokkaSourceSets {
- named("main") {
- moduleName.set("UrlEncoder Application")
- }
+ dokkaSourceSets.configureEach {
+ moduleName.set("UrlEncoder Application")
}
}
val copyToDeploy by registering(Sync::class) {
group = PublishingPlugin.PUBLISH_TASK_GROUP
- from(configurations.runtimeClasspath) {
+ from(configurations.jvmRuntimeClasspath) {
exclude("annotations-*.jar")
}
- from(jar)
+ from(jvmJar)
into(deployDir)
}
@@ -101,13 +103,3 @@ tasks {
dependsOn(build, copyToDeploy)
}
}
-
-publishing {
- publications {
- create("mavenJava") {
- from(components["java"])
- artifactId = rootProject.name
- artifact(tasks.javadocJar)
- }
- }
-}
diff --git a/app/detekt-baseline.xml b/urlencoder-app/detekt-baseline.xml
similarity index 100%
rename from app/detekt-baseline.xml
rename to urlencoder-app/detekt-baseline.xml
diff --git a/urlencoder-app/gradle.lockfile b/urlencoder-app/gradle.lockfile
new file mode 100644
index 0000000..0994a46
--- /dev/null
+++ b/urlencoder-app/gradle.lockfile
@@ -0,0 +1,107 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+com.beust:jcommander:1.82=detekt
+com.fasterxml.jackson.core:jackson-annotations:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson.core:jackson-core:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson.core:jackson-databind:2.12.7.1=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson:jackson-bom:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.woodstox:woodstox-core:6.2.4=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt
+io.github.detekt.sarif4k:sarif4k-jvm:0.4.0=detekt
+io.github.detekt.sarif4k:sarif4k:0.4.0=detekt
+io.gitlab.arturbosch.detekt:detekt-api:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-cli:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-core:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-metrics:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-parser:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-html:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-md:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-tooling:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-utils:1.23.0=detekt
+jakarta.activation:jakarta.activation-api:1.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+junit:junit:4.13.2=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+net.java.dev.jna:jna:5.6.0=detekt
+org.codehaus.woodstox:stax2-api:4.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.freemarker:freemarker:2.3.30=koverJvmReporter
+org.freemarker:freemarker:2.3.31=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.hamcrest:hamcrest-core:1.3=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.dokka:dokka-analysis:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.dokka:dokka-base:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.dokka:dokka-core:1.8.20=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.jetbrains.dokka:kotlin-analysis-compiler:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.dokka:kotlin-analysis-intellij:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.intellij.deps:coverage-report:1.0.19=koverJvmReporter
+org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.721=koverJvmAgent,koverJvmReporter
+org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.721=koverJvmReporter
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.0=kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-reflect:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-script-runtime:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-script-runtime:1.9.0=kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-scripting-common:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-common:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain,metadataCommonMainCompileClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0=allSourceSetsCompileDependenciesMetadata,commonMainApiDependenciesMetadata,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationDependenciesMetadata,commonMainResolvableDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmMainResolvableDependenciesMetadata,jvmTestResolvableDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,metadataCompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-stdlib:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-test-annotations-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata
+org.jetbrains.kotlin:kotlin-test-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata
+org.jetbrains.kotlin:kotlin-test-junit:1.9.0=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-test:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.5=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt
+org.jetbrains:annotations:13.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,detekt,dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains:annotations:16.0.2=koverJvmReporter
+org.jetbrains:markdown-jvm:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.jetbrains:markdown:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.jsoup:jsoup:1.15.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.snakeyaml:snakeyaml-engine:2.6=detekt
+empty=annotationProcessor,commonMainIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,detektPlugins,dokkaPlugin,dokkaRuntime,jvmMainIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,koverExternalArtifacts,signatures,testAnnotationProcessor,testKotlinScriptDef,testKotlinScriptDefExtensions
diff --git a/app/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt b/urlencoder-app/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt
similarity index 100%
rename from app/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt
rename to urlencoder-app/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt
diff --git a/app/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt b/urlencoder-app/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt
similarity index 100%
rename from app/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt
rename to urlencoder-app/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt
diff --git a/lib/build.gradle.kts b/urlencoder-lib/build.gradle.kts
similarity index 70%
rename from lib/build.gradle.kts
rename to urlencoder-lib/build.gradle.kts
index ba01500..8675d8c 100644
--- a/lib/build.gradle.kts
+++ b/urlencoder-lib/build.gradle.kts
@@ -18,7 +18,7 @@
import org.jetbrains.dokka.gradle.DokkaTask
plugins {
- buildsrc.conventions.lang.`kotlin-jvm`
+ buildsrc.conventions.lang.`kotlin-multiplatform-jvm`
buildsrc.conventions.publishing
id("com.github.ben-manes.versions")
}
@@ -27,30 +27,32 @@ description = "A simple defensive library to encode/decode URL components"
val deployDir = project.layout.projectDirectory.dir("deploy")
-dependencies {
-// testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.25")
-// testImplementation("org.junit.jupiter:junit-jupiter:5.9.1")
- testImplementation(kotlin("test"))
+kotlin {
+ sourceSets {
+ jvmTest {
+ dependencies {
+ //implementation("com.willowtreeapps.assertk:assertk-jvm:0.25")
+ //implementation("org.junit.jupiter:junit-jupiter:5.9.1")
+ implementation(kotlin("test"))
+ }
+ }
+ }
}
+
base {
archivesName.set("${rootProject.name}-lib")
}
tasks {
- withType().configureEach {
- destination = file("$projectDir/pom.xml")
- }
clean {
delete(deployDir)
}
withType().configureEach {
- dokkaSourceSets {
- named("main") {
- moduleName.set("UrlEncoder Library")
- }
+ dokkaSourceSets.configureEach {
+ moduleName.set("UrlEncoder Library")
}
}
@@ -59,7 +61,7 @@ tasks {
from(configurations.runtimeClasspath) {
exclude("annotations-*.jar")
}
- from(jar)
+ from(jvmJar)
into(deployDir)
}
@@ -69,13 +71,3 @@ tasks {
dependsOn(build, copyToDeploy)
}
}
-
-publishing {
- publications {
- create("mavenJava") {
- from(components["java"])
- artifactId = "${rootProject.name}-lib"
- artifact(tasks.javadocJar)
- }
- }
-}
diff --git a/lib/detekt-baseline.xml b/urlencoder-lib/detekt-baseline.xml
similarity index 100%
rename from lib/detekt-baseline.xml
rename to urlencoder-lib/detekt-baseline.xml
diff --git a/urlencoder-lib/gradle.lockfile b/urlencoder-lib/gradle.lockfile
new file mode 100644
index 0000000..0994a46
--- /dev/null
+++ b/urlencoder-lib/gradle.lockfile
@@ -0,0 +1,107 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+com.beust:jcommander:1.82=detekt
+com.fasterxml.jackson.core:jackson-annotations:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson.core:jackson-core:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson.core:jackson-databind:2.12.7.1=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.jackson:jackson-bom:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+com.fasterxml.woodstox:woodstox-core:6.2.4=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt
+io.github.detekt.sarif4k:sarif4k-jvm:0.4.0=detekt
+io.github.detekt.sarif4k:sarif4k:0.4.0=detekt
+io.gitlab.arturbosch.detekt:detekt-api:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-cli:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-core:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-metrics:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-parser:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-html:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-md:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-rules:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-tooling:1.23.0=detekt
+io.gitlab.arturbosch.detekt:detekt-utils:1.23.0=detekt
+jakarta.activation:jakarta.activation-api:1.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+junit:junit:4.13.2=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+net.java.dev.jna:jna:5.6.0=detekt
+org.codehaus.woodstox:stax2-api:4.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.freemarker:freemarker:2.3.30=koverJvmReporter
+org.freemarker:freemarker:2.3.31=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.hamcrest:hamcrest-core:1.3=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.dokka:dokka-analysis:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.dokka:dokka-base:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.dokka:dokka-core:1.8.20=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.jetbrains.dokka:kotlin-analysis-compiler:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.dokka:kotlin-analysis-intellij:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.intellij.deps:coverage-report:1.0.19=koverJvmReporter
+org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.721=koverJvmAgent,koverJvmReporter
+org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.721=koverJvmReporter
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.0=kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-reflect:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-script-runtime:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-script-runtime:1.9.0=kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath
+org.jetbrains.kotlin:kotlin-scripting-common:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-common:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain
+org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain,metadataCommonMainCompileClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0=allSourceSetsCompileDependenciesMetadata,commonMainApiDependenciesMetadata,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationDependenciesMetadata,commonMainResolvableDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmMainResolvableDependenciesMetadata,jvmTestResolvableDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,metadataCompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlin:kotlin-stdlib:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain
+org.jetbrains.kotlin:kotlin-stdlib:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-test-annotations-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata
+org.jetbrains.kotlin:kotlin-test-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata
+org.jetbrains.kotlin:kotlin-test-junit:1.9.0=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-test:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.5=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt
+org.jetbrains:annotations:13.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,detekt,dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains:annotations:16.0.2=koverJvmReporter
+org.jetbrains:markdown-jvm:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.jetbrains:markdown:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime
+org.jsoup:jsoup:1.15.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime
+org.snakeyaml:snakeyaml-engine:2.6=detekt
+empty=annotationProcessor,commonMainIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,detektPlugins,dokkaPlugin,dokkaRuntime,jvmMainIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,koverExternalArtifacts,signatures,testAnnotationProcessor,testKotlinScriptDef,testKotlinScriptDefExtensions
diff --git a/lib/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt b/urlencoder-lib/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt
similarity index 100%
rename from lib/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt
rename to urlencoder-lib/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt
diff --git a/lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt b/urlencoder-lib/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt
similarity index 100%
rename from lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt
rename to urlencoder-lib/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt