Skip to content

Commit fdd6f34

Browse files
authored
Merge branch 'master' into master
2 parents 1cfac9f + 9fbab0f commit fdd6f34

40 files changed

Lines changed: 711 additions & 530 deletions

File tree

android-test/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,6 @@ dependencies {
7979
androidTestImplementation(libs.androidx.test.runner)
8080
androidTestImplementation(libs.kotlin.test)
8181
androidTestImplementation(libs.kotlin.time)
82-
androidTestImplementation(libs.test.assertj)
82+
androidTestImplementation(libs.test.assertk)
8383
androidTestImplementation(libs.test.junit)
8484
}

build-support/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ gradlePlugin {
2323

2424
dependencies {
2525
implementation(libs.kotlin.gradle.plugin)
26+
implementation(libs.tapmoc.gradle.plugin)
2627
}

build-support/src/main/kotlin/BuildSupport.kt

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,48 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16+
import java.nio.charset.StandardCharsets
17+
import org.gradle.api.GradleException
18+
import org.gradle.api.JavaVersion
1619
import org.gradle.api.Plugin
1720
import org.gradle.api.Project
21+
import org.gradle.api.artifacts.VersionCatalog
22+
import org.gradle.api.artifacts.VersionCatalogsExtension
23+
import org.gradle.api.tasks.compile.JavaCompile
24+
import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode
25+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
26+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
27+
import tapmoc.configureKotlinCompatibility
1828

1929
class BuildSupport : Plugin<Project> {
2030
override fun apply(project: Project) {
21-
// Do nothing.
31+
project.configureKotlinCompatibility(project.getVersionByName("kotlinCoreLibrariesVersion"))
32+
33+
// `project.configureJavaCompatibility(8)` is not used as the code would compile with JDK 8.
34+
// This will fail as `RealBufferedSource.kt` uses a Java API not available in Java 8:` InputStream.transferTo`
35+
// To use `project.configureJavaCompatibility`, the min supported Java version would need to be bumped to 11
36+
project.tasks.withType(KotlinCompile::class.java).configureEach {
37+
compilerOptions {
38+
jvmTarget.set(JvmTarget.JVM_1_8)
39+
jvmDefault.set(JvmDefaultMode.NO_COMPATIBILITY)
40+
}
41+
}
42+
project.tasks.withType(JavaCompile::class.java) {
43+
options.encoding = StandardCharsets.UTF_8.toString()
44+
sourceCompatibility = JavaVersion.VERSION_1_8.toString()
45+
targetCompatibility = JavaVersion.VERSION_1_8.toString()
46+
}
47+
}
48+
}
49+
50+
val Project.versionCatalog: VersionCatalog
51+
get() = project.extensions.getByType(VersionCatalogsExtension::class.java).find("libs").get()
52+
53+
fun Project.getVersionByName(name: String): String {
54+
val version = versionCatalog.findVersion(name)
55+
return if (version.isPresent) {
56+
version.get().requiredVersion
57+
} else {
58+
throw GradleException("Could not find a version for `$name`")
2259
}
2360
}

build.gradle.kts

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,16 @@ import com.diffplug.gradle.spotless.SpotlessExtension
33
import com.vanniktech.maven.publish.MavenPublishBaseExtension
44
import groovy.util.Node
55
import groovy.util.NodeList
6-
import java.nio.charset.StandardCharsets
76
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
87
import org.gradle.api.tasks.testing.logging.TestLogEvent.FAILED
98
import org.gradle.api.tasks.testing.logging.TestLogEvent.PASSED
109
import org.gradle.api.tasks.testing.logging.TestLogEvent.SKIPPED
1110
import org.gradle.api.tasks.testing.logging.TestLogEvent.STARTED
1211
import org.jetbrains.dokka.gradle.DokkaTask
13-
import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode
14-
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1512
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
1613
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
1714
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
1815
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
19-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2016

2117
plugins {
2218
id("build-support").apply(false)
@@ -32,6 +28,7 @@ buildscript {
3228
classpath(libs.spotless)
3329
classpath(libs.bnd)
3430
classpath(libs.vanniktech.publish.plugin)
31+
classpath(libs.tapmoc.gradle.plugin)
3532
}
3633

3734
repositories {
@@ -182,19 +179,6 @@ subprojects {
182179
}
183180
}
184181

185-
tasks.withType<KotlinCompile>().configureEach {
186-
compilerOptions {
187-
jvmTarget = JvmTarget.JVM_1_8
188-
jvmDefault = JvmDefaultMode.NO_COMPATIBILITY
189-
}
190-
}
191-
192-
tasks.withType<JavaCompile> {
193-
options.encoding = StandardCharsets.UTF_8.toString()
194-
sourceCompatibility = JavaVersion.VERSION_1_8.toString()
195-
targetCompatibility = JavaVersion.VERSION_1_8.toString()
196-
}
197-
198182
val testJavaVersion = System.getProperty("test.java.version", "").toIntOrNull()
199183
tasks.withType<Test> {
200184
val javaToolchains = project.extensions.getByType<JavaToolchainService>()

gradle/libs.versions.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
[versions]
22
burst = "2.11.0"
33
jmh = "1.37"
4-
kotlin = "2.3.0"
4+
kotlin = "2.3.10"
5+
# Set to lower version than KGP version to maximize compatibility
6+
kotlinCoreLibrariesVersion = "2.1.21"
57
ktlint = "0.48.2"
68

79
[libraries]
@@ -22,7 +24,7 @@ kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotl
2224
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
2325
kotlin-time = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version = "0.7.1-0.6.x-compat" }
2426
spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "8.0.0" }
25-
test-assertj = { module = "org.assertj:assertj-core", version = "3.27.6" }
27+
tapmoc-gradle-plugin = { module = "com.gradleup.tapmoc:com.gradleup.tapmoc.gradle.plugin", version = "0.4.0"}
2628
test-assertk = "com.willowtreeapps.assertk:assertk:0.28.1"
2729
test-jimfs = "com.google.jimfs:jimfs:1.3.1"
2830
test-junit = { module = "junit:junit", version = "4.13.2" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

okio-nodefilesystem/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
id("org.jetbrains.dokka")
1010
id("com.vanniktech.maven.publish.base")
1111
id("binary-compatibility-validator")
12+
id("build-support")
1213
}
1314

1415
kotlin {

okio-testing-support/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ kotlin {
6464
.also { wasmMain ->
6565
wasmMain.dependsOn(commonMain)
6666
}
67+
val wasmWasiMain by getting {
68+
dependencies {
69+
implementation(project(":okio-wasifilesystem"))
70+
}
71+
}
6772
}
6873
}
6974
}

okio-testing-support/src/commonMain/kotlin/okio/AbstractFileSystemTest.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ import kotlin.test.assertFalse
2525
import kotlin.test.assertNull
2626
import kotlin.test.assertTrue
2727
import kotlin.test.fail
28+
import kotlin.time.Clock
2829
import kotlin.time.Duration.Companion.milliseconds
2930
import kotlin.time.Duration.Companion.minutes
3031
import kotlin.time.Duration.Companion.seconds
32+
import kotlin.time.Instant
3133
import okio.ByteString.Companion.encodeUtf8
3234
import okio.ByteString.Companion.toByteString
3335
import okio.Path.Companion.toPath
@@ -2705,7 +2707,7 @@ abstract class AbstractFileSystemTest(
27052707
*/
27062708
private fun Instant.minFileSystemTime(): Instant {
27072709
val paddedInstant = minus(200.milliseconds)
2708-
return fromEpochSeconds(paddedInstant.epochSeconds)
2710+
return Instant.fromEpochSeconds(paddedInstant.epochSeconds)
27092711
}
27102712

27112713
/**
@@ -2720,7 +2722,7 @@ abstract class AbstractFileSystemTest(
27202722
*/
27212723
private fun Instant.maxFileSystemTime(): Instant {
27222724
val paddedInstant = plus(200.milliseconds)
2723-
return fromEpochSeconds(paddedInstant.plus(2.seconds).epochSeconds)
2725+
return Instant.fromEpochSeconds(paddedInstant.plus(2.seconds).epochSeconds)
27242726
}
27252727

27262728
/**

okio-testing-support/src/commonMain/kotlin/okio/FakeClock.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
*/
1616
package okio
1717

18+
import kotlin.time.Clock
1819
import kotlin.time.Duration
20+
import kotlin.time.Instant
1921

2022
class FakeClock : Clock {
21-
var time = fromEpochSeconds(1609459200L) // 2021-01-01T00:00:00Z
23+
var time = Instant.fromEpochSeconds(1609459200L) // 2021-01-01T00:00:00Z
2224

2325
override fun now() = time
2426

0 commit comments

Comments
 (0)