Skip to content

Commit

Permalink
Remove jcenter and bintray repositories and update depencencies (#208)
Browse files Browse the repository at this point in the history
* chore(deps): Remove jcenter and bintray repository

Update following dependencies:
* detekt
* koin

* chore(deps): Update ktlint to 0.44.0 and format code according to new rules

* chore(deps): Update mockk to 1.12.2

* chore(deps): Update slf4j to 1.7.36

* chore(deps): Update junit jupiter to 5.6.2

* chore(deps): Update assertk to 0.25

* chore(deps): Update Dokka to 1.6.10
  • Loading branch information
hendrikstill committed Mar 15, 2022
1 parent 54bd8b1 commit d9da943
Show file tree
Hide file tree
Showing 32 changed files with 399 additions and 349 deletions.
34 changes: 15 additions & 19 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
kotlin("jvm") version "1.4.30"
id("org.jetbrains.dokka") version "0.10.1"
id("org.jetbrains.dokka") version "1.6.10"
`maven-publish`
id("io.gitlab.arturbosch.detekt") version "1.9.1"
id("org.jlleitschuh.gradle.ktlint") version "9.3.0"
id("io.gitlab.arturbosch.detekt") version "1.19.0"
id("org.jlleitschuh.gradle.ktlint") version "10.2.1"
id("de.jansauer.printcoverage") version "2.0.0"
jacoco
id("com.github.dawnwords.jacoco.badge") version "0.2.0"
Expand All @@ -20,20 +20,18 @@ java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenLocal()
google()
jcenter()
maven { url = uri("https://kotlin.bintray.com/ktor") }
maven { url = uri("https://kotlin.bintray.com/kotlinx") }
jcenter() { url = uri("https://dl.bintray.com/kotlin/dokka") }
mavenCentral()
}

val ktorVersion: String by project
val koinVersion: String by project
val mockkVersion: String by project
val jupiterVersion: String by project
val assertVersion: String by project
val assertKVersion: String by project
val dataBobVersion: String by project
val jsonAssertVersion: String by project
val kotlinLoggingVersion: String by project
val slf4jVersion: String by project

dependencies {
implementation(kotlin("stdlib-jdk8"))
Expand All @@ -42,19 +40,18 @@ dependencies {
implementation("io.ktor:ktor-client-cio:$ktorVersion")
implementation("io.ktor:ktor-client-json-jvm:$ktorVersion")
implementation("io.ktor:ktor-client-gson:$ktorVersion")
implementation("org.koin:koin-core:$koinVersion")
implementation("org.slf4j:slf4j-simple:1.7.30")
implementation("io.insert-koin:koin-core:$koinVersion")
implementation("org.slf4j:slf4j-simple:$slf4jVersion")
implementation("io.github.microutils:kotlin-logging:$kotlinLoggingVersion")
testImplementation("org.koin:koin-test:$koinVersion") {
testImplementation("io.insert-koin:koin-test:$koinVersion") {
exclude(group = "org.mockito")
exclude(group = "junit")
}
testImplementation("io.mockk:mockk:$mockkVersion")
implementation("org.junit.jupiter:junit-jupiter-api:$jupiterVersion")
testImplementation("com.willowtreeapps.assertk:assertk-jvm:$assertVersion")
testImplementation("com.willowtreeapps.assertk:assertk-jvm:$assertKVersion")
testImplementation("org.skyscreamer:jsonassert:$jsonAssertVersion")

testImplementation("io.github.daviddenton:databob.kotlin:$dataBobVersion")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$jupiterVersion")
}

Expand All @@ -66,15 +63,14 @@ tasks.withType<KotlinCompile> {
}

tasks {
val dokka by getting(DokkaTask::class)
val dokkaHtml by getting(DokkaTask::class)

dokka {
outputFormat = "html"
outputDirectory = "$rootDir/docs"
dokkaHtml {
outputDirectory.set(rootDir.resolve("docs"))
}
}

defaultTasks("dokka")
defaultTasks("dokkaHtml")

val sourcesJar by tasks.registering(Jar::class) {
classifier = "sources"
Expand Down Expand Up @@ -120,7 +116,7 @@ detekt {
}

ktlint {
version.set("0.22.0")
version.set("0.44.0")
ignoreFailures.set(false)
}

Expand Down
3 changes: 3 additions & 0 deletions config/detekt-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ console-reports:
- 'ComplexityReport'
- 'NotificationReport'

build:
maxIssues: 10 # break the build if more than ten weighted issues are found

# disabled rule-sets
comments:
active: false
Expand Down
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
ktorVersion=1.4.0
koinVersion=2.1.6
kotlinLoggingVersion=1.12.0
mockkVersion=1.10.0
jupiterVersion=5.6.2
assertVersion=0.20
dataBobVersion=1.9.0
mockkVersion=1.12.2
jupiterVersion=5.8.2
assertKVersion=0.25
jsonAssertVersion=1.5.0
slf4jVersion=1.7.36

kotlin.code.style=official
kotlin_version=1.3.50
Expand Down
3 changes: 2 additions & 1 deletion src/main/kotlin/khome/core/boot/servicestore/ServiceStore.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ interface ServiceStoreInterface {
fun clear()
}

internal class ServiceStore : Iterable<MutableMap.MutableEntry<String, List<String>>>,
internal class ServiceStore :
Iterable<MutableMap.MutableEntry<String, List<String>>>,
ServiceStoreInterface {
override val list = ConcurrentHashMap<String, List<String>>()
override operator fun iterator() = list.iterator()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import khome.KhomeSession
import khome.communicating.CALLER_ID
import mu.KotlinLogging

internal class ServiceStoreInitializerImpl (
internal class ServiceStoreInitializerImpl(
private val khomeSession: KhomeSession,
private val serviceStore: ServiceStoreInterface
) : ServiceStoreInitializer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import khome.KhomeSession
import khome.communicating.CALLER_ID
import khome.core.koin.KhomeComponent
import khome.entities.ActuatorStateUpdater
import khome.values.EntityId
import khome.entities.EntityRegistrationValidation
import khome.entities.SensorStateUpdater
import khome.values.EntityId
import kotlinx.coroutines.ObsoleteCoroutinesApi
import mu.KotlinLogging

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package khome.core.exceptions

class EventStreamException(override val message: String) : RuntimeException()
class EventStreamException(override val message: String) : RuntimeException()
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package khome.core.exceptions

class InvalidAttributeValueTypeException(override val message: String) : RuntimeException()
class InvalidAttributeValueTypeException(override val message: String) : RuntimeException()
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package khome.core.exceptions

class InvalidStateValueTypeException(override val message: String) : RuntimeException()
class InvalidStateValueTypeException(override val message: String) : RuntimeException()
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ internal class EntityRegistrationValidation(
################ ERROR #################
""".trimIndent()
""".trimIndent()
}

throw EntityRegistrationValidationException("Entity registration validation failed!")
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/khome/extending/entities/BaseFactories.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package khome.extending.entities
import khome.KhomeApplication
import khome.communicating.ServiceCommandResolver
import khome.entities.Attributes
import khome.values.EntityId
import khome.entities.State
import khome.entities.devices.Actuator
import khome.entities.devices.Sensor
import khome.values.EntityId

/**
* Base factories
Expand Down
35 changes: 19 additions & 16 deletions src/main/kotlin/khome/extending/entities/actuators/Cover.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,24 +30,27 @@ inline fun <reified S : State<*>, reified A : Attributes> KhomeApplication.Cover

@Suppress("FunctionName")
fun KhomeApplication.PositionableCover(objectId: ObjectId): PositionableCover =
Cover(objectId, ServiceCommandResolver { state ->
when (state.value) {
PositionableCoverValue.OPEN -> state.currentPosition?.let { position ->
DefaultResolvedServiceCommand(
service = "set_cover_position".service,
serviceData = PositionableCoverServiceData(position)
Cover(
objectId,
ServiceCommandResolver { state ->
when (state.value) {
PositionableCoverValue.OPEN -> state.currentPosition?.let { position ->
DefaultResolvedServiceCommand(
service = "set_cover_position".service,
serviceData = PositionableCoverServiceData(position)
)
} ?: DefaultResolvedServiceCommand(
service = "open_cover".service,
serviceData = EntityIdOnlyServiceData()
)
} ?: DefaultResolvedServiceCommand(
service = "open_cover".service,
serviceData = EntityIdOnlyServiceData()
)

PositionableCoverValue.CLOSED -> DefaultResolvedServiceCommand(
service = "close_cover".service,
serviceData = EntityIdOnlyServiceData()
)

PositionableCoverValue.CLOSED -> DefaultResolvedServiceCommand(
service = "close_cover".service,
serviceData = EntityIdOnlyServiceData()
)
}
}
})
)

data class PositionableCoverState(
override val value: PositionableCoverValue,
Expand Down
11 changes: 7 additions & 4 deletions src/main/kotlin/khome/extending/entities/actuators/Switch.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package khome.extending.entities.actuators
import khome.KhomeApplication
import khome.communicating.ServiceCommandResolver
import khome.entities.Attributes
import khome.values.EntityId
import khome.entities.devices.Actuator
import khome.extending.entities.Actuator
import khome.extending.entities.SwitchableState
import khome.extending.entities.mapSwitchable
import khome.values.EntityId
import khome.values.FriendlyName
import khome.values.ObjectId
import khome.values.PowerConsumption
Expand All @@ -20,9 +20,12 @@ typealias PowerSwitch = Switch<PowerSwitchAttributes>

@Suppress("FunctionName")
inline fun <reified A : Attributes> KhomeApplication.Switch(objectId: ObjectId): Switch<A> =
Actuator(EntityId.fromPair("switch".domain to objectId), ServiceCommandResolver { switchableState ->
mapSwitchable(switchableState.value)
})
Actuator(
EntityId.fromPair("switch".domain to objectId),
ServiceCommandResolver { switchableState ->
mapSwitchable(switchableState.value)
}
)

@Suppress("FunctionName")
fun KhomeApplication.PowerMeasuringSwitch(objectId: ObjectId): PowerSwitch = Switch(objectId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,33 +27,36 @@ typealias Thermostat = Actuator<ThermostatState, ThermostatAttributes>

@Suppress("FunctionName")
fun KhomeApplication.Thermostat(objectId: ObjectId): Thermostat {
return ClimateControl(objectId, ServiceCommandResolver { desiredState ->
when (desiredState.value) {
ThermostatStateValue.OFF -> {
DefaultResolvedServiceCommand(
service = "turn_off".service,
serviceData = EntityIdOnlyServiceData()
)
}

ThermostatStateValue.HEAT -> {
desiredState.temperature?.let { temperature ->
return ClimateControl(
objectId,
ServiceCommandResolver { desiredState ->
when (desiredState.value) {
ThermostatStateValue.OFF -> {
DefaultResolvedServiceCommand(
service = "set_temperature".service,
serviceData = ThermostatServiceData(temperature, hvacMode = "heat".hvacMode)
service = "turn_off".service,
serviceData = EntityIdOnlyServiceData()
)
} ?: (if (desiredState.presetMode.isNone) null else desiredState.presetMode)?.let { preset ->
DefaultResolvedServiceCommand(
service = "set_preset_mode".service,
serviceData = ThermostatServiceData(presetMode = preset)
}

ThermostatStateValue.HEAT -> {
desiredState.temperature?.let { temperature ->
DefaultResolvedServiceCommand(
service = "set_temperature".service,
serviceData = ThermostatServiceData(temperature, hvacMode = "heat".hvacMode)
)
} ?: (if (desiredState.presetMode.isNone) null else desiredState.presetMode)?.let { preset ->
DefaultResolvedServiceCommand(
service = "set_preset_mode".service,
serviceData = ThermostatServiceData(presetMode = preset)
)
} ?: DefaultResolvedServiceCommand(
service = "turn_on".service,
serviceData = EntityIdOnlyServiceData()
)
} ?: DefaultResolvedServiceCommand(
service = "turn_on".service,
serviceData = EntityIdOnlyServiceData()
)
}
}
}
})
)
}

data class ThermostatState(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package khome.extending.entities.actuators.inputs
import khome.KhomeApplication
import khome.communicating.ServiceCommandResolver
import khome.entities.Attributes
import khome.values.EntityId
import khome.entities.devices.Actuator
import khome.extending.entities.Actuator
import khome.extending.entities.SwitchableState
import khome.extending.entities.mapSwitchable
import khome.values.EntityId
import khome.values.FriendlyName
import khome.values.Icon
import khome.values.ObjectId
Expand All @@ -19,9 +19,12 @@ typealias InputBoolean = Actuator<SwitchableState, InputBooleanAttributes>

@Suppress("FunctionName")
fun KhomeApplication.InputBoolean(objectId: ObjectId): InputBoolean =
Actuator(EntityId.fromPair("input_boolean".domain to objectId), ServiceCommandResolver { desiredState ->
mapSwitchable(desiredState.value)
})
Actuator(
EntityId.fromPair("input_boolean".domain to objectId),
ServiceCommandResolver { desiredState ->
mapSwitchable(desiredState.value)
}
)

data class InputBooleanAttributes(
val editable: Boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,15 @@ typealias InputDate = Actuator<InputDateState, InputDateAttributes>

@Suppress("FunctionName")
fun KhomeApplication.InputDate(objectId: ObjectId): InputDate =
Actuator(EntityId.fromPair("input_datetime".domain to objectId), ServiceCommandResolver { desiredState ->
DefaultResolvedServiceCommand(
service = "set_datetime".service,
serviceData = InputDateServiceData(desiredState.value)
)
})
Actuator(
EntityId.fromPair("input_datetime".domain to objectId),
ServiceCommandResolver { desiredState ->
DefaultResolvedServiceCommand(
service = "set_datetime".service,
serviceData = InputDateServiceData(desiredState.value)
)
}
)

data class InputDateState(override val value: LocalDate) : State<LocalDate>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,17 @@ typealias InputDateTime = Actuator<InputDateTimeState, InputDateTimeAttributes>

@Suppress("FunctionName")
fun KhomeApplication.InputDateTime(objectId: ObjectId): InputDateTime =
Actuator(EntityId.fromPair("input_datetime".domain to objectId), ServiceCommandResolver { desiredState ->
DefaultResolvedServiceCommand(
service = "set_datetime".service,
serviceData = InputDateTimeServiceData(
desiredState.value
Actuator(
EntityId.fromPair("input_datetime".domain to objectId),
ServiceCommandResolver { desiredState ->
DefaultResolvedServiceCommand(
service = "set_datetime".service,
serviceData = InputDateTimeServiceData(
desiredState.value
)
)
)
})
}
)

data class InputDateTimeState(override val value: LocalDateTime) : State<LocalDateTime>

Expand Down
Loading

0 comments on commit d9da943

Please sign in to comment.