From f11b95b3d163a80dd2f2685d9ce02584e398a3f3 Mon Sep 17 00:00:00 2001 From: lorenz <stu203404@mail.uni-kiel.de> Date: Tue, 23 Mar 2021 12:43:01 +0100 Subject: [PATCH] Add @RegisterForReflection --- theodolite-quarkus/build.gradle | 1 + .../theodolite/benchmark/KubernetesBenchmarkDeployment.kt | 2 ++ .../main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt | 2 ++ .../theodolite/strategies/restriction/RestrictionStrategy.kt | 2 ++ .../theodolite/strategies/searchstrategy/CompositeStrategy.kt | 2 ++ .../theodolite/strategies/searchstrategy/SearchStrategy.kt | 2 ++ theodolite-quarkus/src/main/kotlin/theodolite/util/Config.kt | 2 ++ .../src/main/kotlin/theodolite/util/KafkaConfig.kt | 1 + .../src/main/kotlin/theodolite/util/LoadDimension.kt | 3 +++ theodolite-quarkus/src/main/kotlin/theodolite/util/Resource.kt | 3 +++ theodolite-quarkus/src/main/kotlin/theodolite/util/Results.kt | 3 +++ 11 files changed, 23 insertions(+) diff --git a/theodolite-quarkus/build.gradle b/theodolite-quarkus/build.gradle index 1ceb09377..7f32c0c5b 100644 --- a/theodolite-quarkus/build.gradle +++ b/theodolite-quarkus/build.gradle @@ -25,6 +25,7 @@ dependencies { implementation 'org.slf4j:slf4j-simple:1.7.29' implementation 'io.github.microutils:kotlin-logging:1.12.0' implementation 'io.fabric8:kubernetes-client:5.0.0-alpha-2' + implementation 'io.quarkus:quarkus-kubernetes-client' implementation 'org.apache.kafka:kafka-clients:2.7.0' implementation 'khttp:khttp:1.0.0' } diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt b/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt index 342ceebb8..d8656bc3c 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt @@ -2,10 +2,12 @@ package theodolite.benchmark import io.fabric8.kubernetes.api.model.KubernetesResource import io.fabric8.kubernetes.client.DefaultKubernetesClient +import io.quarkus.runtime.annotations.RegisterForReflection import org.apache.kafka.clients.admin.NewTopic import theodolite.k8s.K8sManager import theodolite.k8s.TopicManager +@RegisterForReflection class KubernetesBenchmarkDeployment( val namespace: String, val resources: List<KubernetesResource>, diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt b/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt index 19a0cb61c..da7d2328b 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt @@ -1,5 +1,6 @@ package theodolite.execution +import io.quarkus.runtime.annotations.RegisterForReflection import mu.KotlinLogging import theodolite.benchmark.Benchmark import theodolite.benchmark.BenchmarkExecution @@ -13,6 +14,7 @@ import java.time.Instant private val logger = KotlinLogging.logger {} +@RegisterForReflection class BenchmarkExecutorImpl( benchmark: Benchmark, results: Results, diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/restriction/RestrictionStrategy.kt b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/restriction/RestrictionStrategy.kt index b2e09a0cc..75c7e86b5 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/restriction/RestrictionStrategy.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/restriction/RestrictionStrategy.kt @@ -1,5 +1,6 @@ package theodolite.strategies.restriction +import io.quarkus.runtime.annotations.RegisterForReflection import theodolite.util.LoadDimension import theodolite.util.Resource import theodolite.util.Results @@ -8,6 +9,7 @@ import theodolite.util.Results * A "Restriction Strategy" restricts a list of resources based on the current * results of all previously performed benchmarks. */ +@RegisterForReflection abstract class RestrictionStrategy(val results: Results) { /** * Next Restrict the given resource list for the given load based on the result object. diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/CompositeStrategy.kt b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/CompositeStrategy.kt index 8ffca54fa..01d841c91 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/CompositeStrategy.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/CompositeStrategy.kt @@ -1,10 +1,12 @@ package theodolite.strategies.searchstrategy +import io.quarkus.runtime.annotations.RegisterForReflection import theodolite.execution.BenchmarkExecutor import theodolite.strategies.restriction.RestrictionStrategy import theodolite.util.LoadDimension import theodolite.util.Resource +@RegisterForReflection class CompositeStrategy( benchmarkExecutor: BenchmarkExecutor, private val searchStrategy: SearchStrategy, diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/SearchStrategy.kt b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/SearchStrategy.kt index d57246ca4..888a58585 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/SearchStrategy.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/SearchStrategy.kt @@ -1,9 +1,11 @@ package theodolite.strategies.searchstrategy +import io.quarkus.runtime.annotations.RegisterForReflection import theodolite.execution.BenchmarkExecutor import theodolite.util.LoadDimension import theodolite.util.Resource +@RegisterForReflection abstract class SearchStrategy(val benchmarkExecutor: BenchmarkExecutor) { /** * Find smallest suitable resource from the specified resource list for the given load. diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/util/Config.kt b/theodolite-quarkus/src/main/kotlin/theodolite/util/Config.kt index a6120564c..15defa6c7 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/util/Config.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/util/Config.kt @@ -1,7 +1,9 @@ package theodolite.util +import io.quarkus.runtime.annotations.RegisterForReflection import theodolite.strategies.searchstrategy.CompositeStrategy +@RegisterForReflection data class Config( val loads: List<LoadDimension>, val resources: List<Resource>, diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/util/KafkaConfig.kt b/theodolite-quarkus/src/main/kotlin/theodolite/util/KafkaConfig.kt index d21e8c77f..46960ccdb 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/util/KafkaConfig.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/util/KafkaConfig.kt @@ -13,6 +13,7 @@ class KafkaConfig { return topics.map { topic -> NewTopic(topic.name, topic.numPartitions, topic.replicationFactor) } } + @RegisterForReflection class TopicWrapper { lateinit var name: String var numPartitions by Delegates.notNull<Int>() diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/util/LoadDimension.kt b/theodolite-quarkus/src/main/kotlin/theodolite/util/LoadDimension.kt index 29d47460b..654c4d0cc 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/util/LoadDimension.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/util/LoadDimension.kt @@ -1,5 +1,8 @@ package theodolite.util +import io.quarkus.runtime.annotations.RegisterForReflection + +@RegisterForReflection data class LoadDimension(private val number: Int, private val type: String) { fun get(): Int { return this.number diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/util/Resource.kt b/theodolite-quarkus/src/main/kotlin/theodolite/util/Resource.kt index cb172e0b8..c62f785a4 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/util/Resource.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/util/Resource.kt @@ -1,5 +1,8 @@ package theodolite.util +import io.quarkus.runtime.annotations.RegisterForReflection + +@RegisterForReflection data class Resource(private val number: Int, private val type: String) { fun get(): Int { return this.number diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/util/Results.kt b/theodolite-quarkus/src/main/kotlin/theodolite/util/Results.kt index 91bde7179..2f746a17a 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/util/Results.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/util/Results.kt @@ -1,5 +1,8 @@ package theodolite.util +import io.quarkus.runtime.annotations.RegisterForReflection + +@RegisterForReflection class Results { private val results: MutableMap<Pair<LoadDimension, Resource>, Boolean> = mutableMapOf() -- GitLab