Skip to content

Commit

Permalink
fix(core): explicitly serialise File due to upstream issue
Browse files Browse the repository at this point in the history
  • Loading branch information
Malinskiy committed Sep 4, 2021
1 parent 86b63bb commit 9b20099
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Versions.kt
Expand Up @@ -23,7 +23,7 @@ object Versions {
val espressoRules = "1.0.1"
val espressoRunner = "1.0.1"
val junit = "4.12"
val gson = "2.8.7"
val gson = "2.8.8"
val apacheCommonsText = "1.9"
val apacheCommonsIO = "2.9.0"
val influxDbClient = "2.21"
Expand Down
10 changes: 8 additions & 2 deletions core/src/main/kotlin/com/malinskiy/marathon/di/Modules.kt
@@ -1,18 +1,20 @@
package com.malinskiy.marathon.di

import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.malinskiy.marathon.Marathon
import com.malinskiy.marathon.analytics.TrackerFactory
import com.malinskiy.marathon.analytics.external.AnalyticsFactory
import com.malinskiy.marathon.analytics.internal.pub.Track
import com.malinskiy.marathon.execution.Configuration
import com.malinskiy.marathon.execution.progress.ProgressReporter
import com.malinskiy.marathon.io.FileManager
import com.malinskiy.marathon.json.FileSerializer
import com.malinskiy.marathon.time.SystemTimer
import com.malinskiy.marathon.time.Timer
import org.koin.core.KoinApplication
import org.koin.core.context.startKoin
import org.koin.dsl.module
import java.io.File
import java.time.Clock

val analyticsModule = module {
Expand All @@ -23,7 +25,11 @@ val analyticsModule = module {

val coreModule = module {
single { FileManager(get<Configuration>().outputDir) }
single { Gson() }
single {
GsonBuilder()
.registerTypeAdapter(File::class.java, FileSerializer())
.create()
}
single<Clock> { Clock.systemDefaultZone() }
single<Timer> { SystemTimer(get()) }
single { ProgressReporter(get()) }
Expand Down
14 changes: 14 additions & 0 deletions core/src/main/kotlin/com/malinskiy/marathon/json/FileSerializer.kt
@@ -0,0 +1,14 @@
package com.malinskiy.marathon.json

import com.google.gson.JsonElement
import com.google.gson.JsonPrimitive
import com.google.gson.JsonSerializationContext
import com.google.gson.JsonSerializer
import java.io.File
import java.lang.reflect.Type

internal class FileSerializer : JsonSerializer<File> {
override fun serialize(src: File, typeOfSrc: Type?, context: JsonSerializationContext?): JsonElement {
return JsonPrimitive(src.absolutePath)
}
}

0 comments on commit 9b20099

Please sign in to comment.