Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor RuntimeConfig #1173

Merged
merged 9 commits into from
Feb 17, 2025
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Enhance EmAggregate of SelfOpt to cope with other targetLimits [#1131](https://github.com/ie3-institute/simona/issues/1131)
- Switched to `pureconfig` [#608](https://github.com/ie3-institute/simona/issues/608)
- Removing generated methods and cleaning up in config [#1170](https://github.com/ie3-institute/simona/issues/1170)
- Refactor `RuntimeConfig` [#1172](https://github.com/ie3-institute/simona/issues/1172)

### Fixed
- Fix rendering of references in documentation [#505](https://github.com/ie3-institute/simona/issues/505)
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/edu/ie3/simona/agent/em/EmAgent.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import edu.ie3.datamodel.models.input.EmInput
import edu.ie3.datamodel.models.result.system.{EmResult, FlexOptionsResult}
import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ComplexPower
import edu.ie3.simona.agent.participant.statedata.BaseStateData.FlexControlledData
import edu.ie3.simona.config.SimonaConfig.EmRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.EmRuntimeConfig
import edu.ie3.simona.event.ResultEvent
import edu.ie3.simona.event.ResultEvent.{
FlexOptionsResultEvent,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import edu.ie3.simona.agent.participant.pv.PvAgent
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.agent.participant.storage.StorageAgent
import edu.ie3.simona.agent.participant.wec.WecAgent
import edu.ie3.simona.config.RuntimeConfig._
import edu.ie3.simona.config.SimonaConfig
import edu.ie3.simona.config.SimonaConfig._
import edu.ie3.simona.event.ResultEvent
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.CriticalFailureException
Expand Down Expand Up @@ -75,7 +75,7 @@ class GridAgentController(
environmentRefs: EnvironmentRefs,
simulationStartDate: ZonedDateTime,
simulationEndDate: ZonedDateTime,
participantsConfig: SimonaConfig.Simona.Runtime.Participant,
participantsConfig: Participant,
outputConfig: SimonaConfig.Simona.Output.Participant,
resolution: Long,
listener: Iterable[ActorRef[ResultEvent]],
Expand Down Expand Up @@ -174,7 +174,7 @@ class GridAgentController(
* A map from coupling point to set of actor references
*/
private def buildParticipantToActorRef(
participantsConfig: SimonaConfig.Simona.Runtime.Participant,
participantsConfig: Participant,
outputConfig: SimonaConfig.Simona.Output.Participant,
participants: Vector[SystemParticipantInput],
thermalIslandGridsByBusId: Map[UUID, ThermalGrid],
Expand Down Expand Up @@ -823,7 +823,7 @@ class GridAgentController(
*/
private def buildStorage(
storageInput: StorageInput,
modelConfiguration: SimonaConfig.StorageRuntimeConfig,
modelConfiguration: StorageRuntimeConfig,
primaryServiceProxy: ClassicRef,
simulationStartDate: ZonedDateTime,
simulationEndDate: ZonedDateTime,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import edu.ie3.simona.agent.state.ParticipantAgentState.{
HandleInformation,
}
import edu.ie3.simona.agent.{SimonaAgent, ValueStore}
import edu.ie3.simona.config.SimonaConfig
import edu.ie3.simona.config.RuntimeConfig.BaseRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.InconsistentStateException
import edu.ie3.simona.io.result.AccompaniedSimulationResult
Expand All @@ -47,9 +47,9 @@ import edu.ie3.simona.model.participant.{
}
import edu.ie3.simona.ontology.messages.Activation
import edu.ie3.simona.ontology.messages.flex.FlexibilityMessage.{
FlexActivation,
FlexResponse,
IssueFlexControl,
FlexActivation,
}
import edu.ie3.simona.ontology.messages.services.ServiceMessage.RegistrationResponseMessage.RegistrationSuccessfulMessage
import edu.ie3.simona.ontology.messages.services.ServiceMessage.{
Expand Down Expand Up @@ -94,7 +94,7 @@ abstract class ParticipantAgent[
MS <: ModelState,
D <: ParticipantStateData[PD],
I <: SystemParticipantInput,
MC <: SimonaConfig.BaseRuntimeConfig,
MC <: BaseRuntimeConfig,
M <: SystemParticipant[CD, PD, MS],
](
scheduler: ActorRef,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ import edu.ie3.simona.agent.state.ParticipantAgentState.{
Calculate,
HandleInformation,
}
import edu.ie3.simona.config.SimonaConfig
import edu.ie3.simona.config.RuntimeConfig.BaseRuntimeConfig
import edu.ie3.simona.event.ResultEvent
import edu.ie3.simona.event.ResultEvent.{
FlexOptionsResultEvent,
Expand Down Expand Up @@ -108,7 +108,7 @@ protected trait ParticipantAgentFundamentals[
MS <: ModelState,
D <: ParticipantStateData[PD],
I <: SystemParticipantInput,
MC <: SimonaConfig.BaseRuntimeConfig,
MC <: BaseRuntimeConfig,
M <: SystemParticipant[CD, PD, MS],
] extends ServiceRegistration[PD, CD, MS, D, I, MC, M] {
this: ParticipantAgent[PD, CD, MS, D, I, MC, M] =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService.{
ActorWeatherService,
}
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.config.SimonaConfig
import edu.ie3.simona.config.RuntimeConfig.BaseRuntimeConfig
import edu.ie3.simona.exceptions.agent.ServiceRegistrationException
import edu.ie3.simona.model.participant.{
CalcRelevantData,
Expand All @@ -33,7 +33,7 @@ trait ServiceRegistration[
MS <: ModelState,
D <: ParticipantStateData[PD],
I <: SystemParticipantInput,
MC <: SimonaConfig.BaseRuntimeConfig,
MC <: BaseRuntimeConfig,
M <: SystemParticipant[CD, PD, MS],
] {
this: ParticipantAgent[PD, CD, MS, D, I, MC, M] =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import edu.ie3.simona.agent.participant.{
}
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.agent.state.ParticipantAgentState.HandleInformation
import edu.ie3.simona.config.SimonaConfig.EvcsRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.EvcsRuntimeConfig
import edu.ie3.simona.model.participant.evcs.EvcsModel
import edu.ie3.simona.model.participant.evcs.EvcsModel.{
EvcsRelevantData,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import edu.ie3.simona.agent.participant.statedata.{
}
import edu.ie3.simona.agent.state.AgentState
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.config.SimonaConfig.EvcsRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.EvcsRuntimeConfig
import edu.ie3.simona.event.ResultEvent.ParticipantResultEvent
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import edu.ie3.simona.agent.participant.ParticipantAgent
import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ComplexPower
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.config.SimonaConfig.FixedFeedInRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.FixedFeedInRuntimeConfig
import edu.ie3.simona.model.participant.CalcRelevantData.FixedRelevantData
import edu.ie3.simona.model.participant.FixedFeedInModel
import edu.ie3.simona.model.participant.ModelState.ConstantState
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.InputModelContainer
import edu.ie3.simona.agent.state.AgentState
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.config.SimonaConfig.FixedFeedInRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.FixedFeedInRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.{
InconsistentStateException,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService
import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService.ActorWeatherService
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.config.SimonaConfig.HpRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.HpRuntimeConfig
import edu.ie3.simona.model.participant.HpModel
import edu.ie3.simona.model.participant.HpModel.{HpRelevantData, HpState}
import org.apache.pekko.actor.{ActorRef, Props}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import edu.ie3.simona.agent.participant.statedata.{
}
import edu.ie3.simona.agent.state.AgentState
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.config.SimonaConfig.HpRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.HpRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.{
AgentInitializationException,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import edu.ie3.simona.agent.participant.load.LoadAgentFundamentals.{
}
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.config.SimonaConfig.LoadRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.LoadRuntimeConfig
import edu.ie3.simona.model.participant.CalcRelevantData.LoadRelevantData
import edu.ie3.simona.model.participant.ModelState.ConstantState
import edu.ie3.simona.model.participant.load.profile.ProfileLoadModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.InputModelContainer
import edu.ie3.simona.agent.state.AgentState
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.config.SimonaConfig.LoadRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.LoadRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.InconsistentStateException
import edu.ie3.simona.io.result.AccompaniedSimulationResult
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService
import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService.ActorWeatherService
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.config.SimonaConfig.PvRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.PvRuntimeConfig
import edu.ie3.simona.model.participant.ModelState.ConstantState
import edu.ie3.simona.model.participant.PvModel
import edu.ie3.simona.model.participant.PvModel.PvRelevantData
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.InputModelContainer
import edu.ie3.simona.agent.state.AgentState
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.config.SimonaConfig.PvRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.PvRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.{
AgentInitializationException,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import edu.ie3.datamodel.models.input.system.SystemParticipantInput
import edu.ie3.simona.agent.participant.data.Data.PrimaryData.PrimaryDataWithComplexPower
import edu.ie3.simona.agent.participant.data.Data.{PrimaryData, SecondaryData}
import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService
import edu.ie3.simona.config.SimonaConfig
import edu.ie3.simona.config.RuntimeConfig.BaseRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.ontology.messages.flex.FlexibilityMessage.FlexResponse
import org.apache.pekko.actor.typed.ActorRef
Expand Down Expand Up @@ -66,7 +66,7 @@ object ParticipantStateData {
*/
final case class ParticipantInitializingStateData[
I <: SystemParticipantInput,
C <: SimonaConfig.BaseRuntimeConfig,
C <: BaseRuntimeConfig,
PD <: PrimaryData,
](
inputModel: InputModelContainer[I],
Expand Down Expand Up @@ -110,7 +110,7 @@ object ParticipantStateData {
*/
final case class ParticipantInitializeStateData[
I <: SystemParticipantInput,
C <: SimonaConfig.BaseRuntimeConfig,
C <: BaseRuntimeConfig,
PD <: PrimaryData,
](
inputModel: InputModelContainer[I],
Expand All @@ -129,7 +129,7 @@ object ParticipantStateData {

def apply[
I <: SystemParticipantInput,
C <: SimonaConfig.BaseRuntimeConfig,
C <: BaseRuntimeConfig,
PD <: PrimaryData,
](
inputModel: I,
Expand Down Expand Up @@ -158,7 +158,7 @@ object ParticipantStateData {
)
def apply[
I <: SystemParticipantInput,
C <: SimonaConfig.BaseRuntimeConfig,
C <: BaseRuntimeConfig,
PD <: PrimaryData,
](
inputModel: I,
Expand Down Expand Up @@ -189,7 +189,7 @@ object ParticipantStateData {

def apply[
I <: SystemParticipantInput,
C <: SimonaConfig.BaseRuntimeConfig,
C <: BaseRuntimeConfig,
PD <: PrimaryData,
](
inputModel: I,
Expand Down Expand Up @@ -220,7 +220,7 @@ object ParticipantStateData {

def apply[
I <: SystemParticipantInput,
C <: SimonaConfig.BaseRuntimeConfig,
C <: BaseRuntimeConfig,
PD <: PrimaryData,
](
inputModel: I,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import edu.ie3.simona.agent.participant.ParticipantAgent
import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ComplexPower
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.config.SimonaConfig.StorageRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.StorageRuntimeConfig
import edu.ie3.simona.model.participant.StorageModel
import edu.ie3.simona.model.participant.StorageModel.{
StorageRelevantData,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import edu.ie3.simona.agent.participant.statedata.{
BaseStateData,
ParticipantStateData,
}
import edu.ie3.simona.config.SimonaConfig.StorageRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.StorageRuntimeConfig
import edu.ie3.simona.event.ResultEvent.ParticipantResultEvent
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService
import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService.ActorWeatherService
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData
import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData
import edu.ie3.simona.config.SimonaConfig.WecRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.WecRuntimeConfig
import edu.ie3.simona.model.participant.ModelState.ConstantState
import edu.ie3.simona.model.participant.WecModel
import edu.ie3.simona.model.participant.WecModel._
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.InputMode
import edu.ie3.simona.agent.participant.wec.WecAgent.neededServices
import edu.ie3.simona.agent.state.AgentState
import edu.ie3.simona.agent.state.AgentState.Idle
import edu.ie3.simona.config.SimonaConfig.WecRuntimeConfig
import edu.ie3.simona.config.RuntimeConfig.WecRuntimeConfig
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.agent.{
AgentInitializationException,
Expand Down
18 changes: 12 additions & 6 deletions src/main/scala/edu/ie3/simona/config/ConfigFailFast.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ package edu.ie3.simona.config

import com.typesafe.config.{Config, ConfigException}
import com.typesafe.scalalogging.LazyLogging
import edu.ie3.simona.config.RuntimeConfig.{
BaseRuntimeConfig,
LoadRuntimeConfig,
ParticipantRuntimeConfigs,
StorageRuntimeConfig,
}
import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource.{
CouchbaseParams,
InfluxDb1xParams,
Expand Down Expand Up @@ -274,7 +280,7 @@ object ConfigFailFast extends LazyLogging {
* Sub configuration tree to check
*/
private def checkParticipantRuntimeConfiguration(
subConfig: SimonaConfig.Simona.Runtime.Participant
subConfig: RuntimeConfig.Participant
): Unit = {
if (subConfig.requestVoltageDeviationThreshold < 0)
throw new InvalidConfigParameterException(
Expand Down Expand Up @@ -318,7 +324,7 @@ object ConfigFailFast extends LazyLogging {
* the runtime listener config
*/
private def checkRuntimeListenerConfiguration(
listenerConfig: SimonaConfig.Simona.Runtime.Listener
listenerConfig: RuntimeConfig.Listener
): Unit = {
listenerConfig.kafka.foreach(kafka =>
checkKafkaParams(kafka, Seq(kafka.topic))
Expand All @@ -330,8 +336,8 @@ object ConfigFailFast extends LazyLogging {
* i.e. uuid and scaling factor
*/
private def checkBaseRuntimeConfigs(
defaultConfig: SimonaConfig.BaseRuntimeConfig,
individualConfigs: List[SimonaConfig.BaseRuntimeConfig],
defaultConfig: BaseRuntimeConfig,
individualConfigs: List[BaseRuntimeConfig],
defaultString: String = "default",
): Unit = {
// special default config check
Expand Down Expand Up @@ -430,7 +436,7 @@ object ConfigFailFast extends LazyLogging {
* model behaviour and reference
*/
private def checkSpecificLoadModelConfig(
loadModelConfig: SimonaConfig.LoadRuntimeConfig
loadModelConfig: LoadRuntimeConfig
): Unit = {
if (!LoadModelBehaviour.isEligibleInput(loadModelConfig.modelBehaviour))
throw new InvalidConfigParameterException(
Expand Down Expand Up @@ -815,7 +821,7 @@ object ConfigFailFast extends LazyLogging {
* RuntimeConfig of Storages
*/
private def checkStoragesConfig(
storageRuntimeConfig: SimonaConfig.Simona.Runtime.Participant.Storage
storageRuntimeConfig: ParticipantRuntimeConfigs[StorageRuntimeConfig]
): Unit = {
if (
storageRuntimeConfig.defaultConfig.initialSoc < 0.0 || storageRuntimeConfig.defaultConfig.initialSoc > 1.0
Expand Down
Loading