From d3878df26db2132d8a280f8f7803dbe536fd3244 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 16:47:14 +0100 Subject: [PATCH 01/15] Introducing scalafix with organizing imports --- .gitattributes | 17 ++++++++++++++++- .scalafix.conf | 22 ++++++++++++++++++++++ build.gradle | 9 +++++++-- gradle/scripts/scalafix.gradle | 4 ++++ 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 .scalafix.conf create mode 100644 gradle/scripts/scalafix.gradle diff --git a/.gitattributes b/.gitattributes index 00a51aff5e..b3dbe874fb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,5 +2,20 @@ # https://help.github.com/articles/dealing-with-line-endings/ # # These are explicitly windows files and should use crlf -*.bat text eol=crlf +*.bat text eol=crlf +# sh files +*.sh text eol=lf +*.bash text eol=lf + +# These files are text and should be normalized +*.scala text +*.java text +*.groovy text +*.csv text +*.conf text + +# binary is a macro for -text -diff +*.png binary +*.jpg binary +*.jar binary diff --git a/.scalafix.conf b/.scalafix.conf new file mode 100644 index 0000000000..d75565c24c --- /dev/null +++ b/.scalafix.conf @@ -0,0 +1,22 @@ +rules = [ + OrganizeImports +] + +// default settings are stated explicitly, in case defaults might change +OrganizeImports { + blankLines = Auto + coalesceToWildcardImportThreshold = null // too risky, see documentation + expandRelative = true + groupExplicitlyImportedImplicitsSeparately = false + groupedImports = Merge + groups = [ + "*" + "re:(javax?|scala)\\." + ] + importSelectorsOrder = Ascii + importsOrder = Ascii + preset = DEFAULT + removeUnused = true +} + +lineEndings=preserve diff --git a/build.gradle b/build.gradle index 9d2e38be0b..d22ff82701 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,7 @@ plugins { id 'maven-publish' // publish to a maven repo (local or mvn central, has to be defined) id 'pmd' // code check, working on source code id 'com.diffplug.spotless' version '6.23.0'// code format + id 'io.github.cosmicsilence.scalafix' version '0.1.15' id "com.github.ben-manes.versions" version '0.50.0' id "de.undercouch.download" version "5.5.0" // downloads plugin id "kr.motd.sphinx" version "2.10.1" // documentation generation @@ -46,6 +47,7 @@ java { apply from: scriptsLocation + 'pmd.gradle' apply from: scriptsLocation + 'spotless.gradle' +apply from: scriptsLocation + 'scalafix.gradle' apply from: scriptsLocation + 'checkJavaVersion.gradle' apply from: scriptsLocation + 'tscfg.gradle' // config tasks apply from: scriptsLocation + 'documentation.gradle' // documentation tasks + configuration @@ -196,7 +198,9 @@ tasks.withType(ScalaCompile) { "-Xplugin:" + configurations.scalaCompilerPlugin.asPath, "-P:scapegoat:dataDir:" + buildDir + "/reports/scapegoat/src/", "-P:scapegoat:disabledInspections:VariableShadowing", - "-P:scapegoat:ignoredFiles:.*/SimonaConfig.scala" // see scapegoat-sbt page for this param + "-P:scapegoat:ignoredFiles:.*/SimonaConfig.scala", + // see scapegoat-sbt page for this param + "-Ywarn-unused" // required for scalafix OrganizeImports ] } @@ -205,7 +209,8 @@ compileTestScala { scalaCompileOptions.additionalParameters = [ "-Xplugin:" + configurations.scalaCompilerPlugin.asPath, "-P:scapegoat:dataDir:" + buildDir + "/reports/scapegoat/testsrc/", - "-P:scapegoat:disabledInspections:VariableShadowing" + "-P:scapegoat:disabledInspections:VariableShadowing", + "-Ywarn-unused" // required for scalafix OrganizeImports ] } diff --git a/gradle/scripts/scalafix.gradle b/gradle/scripts/scalafix.gradle new file mode 100644 index 0000000000..9886b1c18f --- /dev/null +++ b/gradle/scripts/scalafix.gradle @@ -0,0 +1,4 @@ +scalafix { + includes.set(["**/*.scala"]) + ignoreSourceSets.set(["scoverage"]) +} \ No newline at end of file From 175bc9349b61df34269d1cfcbea3a5ff48bf303e Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:04:45 +0100 Subject: [PATCH 02/15] Removing scapegoat --- Jenkinsfile | 6 ------ build.gradle | 18 ------------------ gradle/scripts/sonarqube.gradle | 5 ----- 3 files changed, 29 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 46e3837dd8..5abc76444c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -426,12 +426,6 @@ def publishReports(String relativeProjectDir) { // publish scalatest reports for main project only (currently the only one with scala sources!) publishHTML([allowMissing: false, alwaysLinkToLastBuild: true, escapeUnderscores: false, keepAll: true, reportDir: relativeProjectDir + '/build/reports/tests/scalatest', reportFiles: 'index.html', reportName: "${relativeProjectDir}_scala_tests_report", reportTitles: '']) - // publish scapegoat src report for main project only - publishHTML([allowMissing: false, alwaysLinkToLastBuild: true, escapeUnderscores: false, keepAll: true, reportDir: relativeProjectDir + '/build/reports/scapegoat/src', reportFiles: 'scapegoat.html', reportName: "${relativeProjectDir}_scapegoat_src_report", reportTitles: '']) - - // publish scapegoat testsrc report for main project only - publishHTML([allowMissing: false, alwaysLinkToLastBuild: true, escapeUnderscores: false, keepAll: true, reportDir: relativeProjectDir + '/build/reports/scapegoat/testsrc', reportFiles: 'scapegoat.html', reportName: "${relativeProjectDir}_scapegoat_testsrc_report", reportTitles: '']) - // scoverage report dir publishHTML([allowMissing: false, alwaysLinkToLastBuild: true, escapeUnderscores: false, keepAll: true, reportDir: relativeProjectDir + '/build/reports/scoverageTest', reportFiles: 'scoverage.xml', reportName: "${relativeProjectDir}_scoverage_report", reportTitles: '']) } diff --git a/build.gradle b/build.gradle index d22ff82701..f630187048 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,6 @@ ext { jtsVersion = '1.19.0' confluentKafkaVersion = '7.4.0' tscfgVersion = '1.0.2' - scapegoatVersion = '2.1.3' testContainerVersion = '0.41.0' @@ -142,10 +141,6 @@ dependencies { } implementation "org.locationtech.jts.io:jts-io-common:${jtsVersion}" - /* Scala compiler plugin for static code analysis */ - implementation "com.sksamuel.scapegoat:scalac-scapegoat-plugin_${scalaBinaryVersion}:${scapegoatVersion}" - scalaCompilerPlugin "com.sksamuel.scapegoat:scalac-scapegoat-plugin_${scalaBinaryVersion}:${scapegoatVersion}" - /* Kafka */ implementation "org.apache.kafka:kafka-clients:${confluentKafkaVersion}-ccs" implementation "io.confluent:kafka-streams-avro-serde:${confluentKafkaVersion}" @@ -187,29 +182,16 @@ shadowJar { archiveBaseName.set('simona') } - - -// scapegoat hook configuration -// https://github.com/sksamuel/scapegoat -// using compileScala instead of tasks.withType(ScalaCompile) prevents applying scapegoat to scala test classes -// see https://docs.gradle.org/current/userguide/scala_plugin.html#sec:configure_scala_classpath for details tasks.withType(ScalaCompile) { scalaCompileOptions.additionalParameters = [ "-Xplugin:" + configurations.scalaCompilerPlugin.asPath, - "-P:scapegoat:dataDir:" + buildDir + "/reports/scapegoat/src/", - "-P:scapegoat:disabledInspections:VariableShadowing", - "-P:scapegoat:ignoredFiles:.*/SimonaConfig.scala", - // see scapegoat-sbt page for this param "-Ywarn-unused" // required for scalafix OrganizeImports ] } -// separate scapegoat report for test classes compileTestScala { scalaCompileOptions.additionalParameters = [ "-Xplugin:" + configurations.scalaCompilerPlugin.asPath, - "-P:scapegoat:dataDir:" + buildDir + "/reports/scapegoat/testsrc/", - "-P:scapegoat:disabledInspections:VariableShadowing", "-Ywarn-unused" // required for scalafix OrganizeImports ] } diff --git a/gradle/scripts/sonarqube.gradle b/gradle/scripts/sonarqube.gradle index 80a9db4fd1..a5ecbb36ff 100644 --- a/gradle/scripts/sonarqube.gradle +++ b/gradle/scripts/sonarqube.gradle @@ -15,11 +15,6 @@ sonarqube { // reports stuff (for all languages) property 'sonar.junit.reportPaths', [ 'build/test-results/test'] // Comma-delimited list of paths to Surefire XML-format reports. - // unit tests reports dirs - // scapegoat report dir - property "sonar.scala.scapegoat.reportPaths", [ - "build/reports/scapegoat/src/scapegoat-scalastyle.xml", - "build/reports/scapegoat/testsrc/scapegoat-scalastyle.xml"] // Comma-delimited list of paths to Scapegoat reports in the Scalastyle format // scala specific stuff property 'sonar.scala.coverage.reportPaths', 'build/reports/scoverageTest/scoverage.xml' From 3f448375236e8926c3a099f98087fb6e4c90fb7a Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:31:07 +0100 Subject: [PATCH 03/15] Adding DisableSyntax rule --- .scalafix.conf | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.scalafix.conf b/.scalafix.conf index d75565c24c..de339c96c4 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -1,5 +1,6 @@ rules = [ - OrganizeImports + OrganizeImports, + DisableSyntax ] // default settings are stated explicitly, in case defaults might change @@ -19,4 +20,11 @@ OrganizeImports { removeUnused = true } +DisableSyntax { + noWhileLoops = true + noXml = true + noFinalize = true + noValPatterns = true +} + lineEndings=preserve From a5fc575654f090b047fcc40546835ef44981e43f Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:37:20 +0100 Subject: [PATCH 04/15] More rules --- .scalafix.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.scalafix.conf b/.scalafix.conf index de339c96c4..31a480ab07 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -1,6 +1,8 @@ rules = [ OrganizeImports, - DisableSyntax + DisableSyntax, + LeakingImplicitClassVal, + RedundantSyntax ] // default settings are stated explicitly, in case defaults might change From 04c39e3b9586bfdcb3a623e1885f9113ca165967 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:39:30 +0100 Subject: [PATCH 05/15] Adding scalafix check to CI --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5abc76444c..8ef7356638 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -106,7 +106,7 @@ node { sh 'java -version' - gradle('--refresh-dependencies clean spotlessCheck pmdMain pmdTest reportScoverage checkScoverage', projectName) + gradle('--refresh-dependencies clean spotlessCheck checkScalafix pmdMain pmdTest reportScoverage checkScoverage', projectName) sh(script: """set +x && cd $projectName""" + ''' set +x; ./gradlew javadoc''', returnStdout: true) } From 2f9b3c7c8ad027f032fc818580a9f8f0de44c67f Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:43:28 +0100 Subject: [PATCH 06/15] Line endings spotless --- .scalafix.conf | 1 - .scalafmt.conf | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafix.conf b/.scalafix.conf index 31a480ab07..a6ee3fe794 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -29,4 +29,3 @@ DisableSyntax { noValPatterns = true } -lineEndings=preserve diff --git a/.scalafmt.conf b/.scalafmt.conf index e69de29bb2..9ebae29f7a 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -0,0 +1 @@ +lineEndings=preserve From a2e8bbe83ec695b8c89598d38bbcef5c898c966c Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:45:27 +0100 Subject: [PATCH 07/15] Applying scalafix --- .../edu/ie3/simona/agent/SimonaAgent.scala | 6 ++-- .../ie3/simona/agent/grid/DBFSAlgorithm.scala | 30 +++++++++---------- .../edu/ie3/simona/agent/grid/GridAgent.scala | 9 +++--- .../agent/grid/GridAgentController.scala | 8 ++--- .../ie3/simona/agent/grid/GridAgentData.scala | 8 ++--- .../agent/grid/GridAgentDataHelper.scala | 4 +-- .../simona/agent/grid/GridEnvironment.scala | 6 ++-- .../agent/grid/GridResultsSupport.scala | 5 ++-- .../simona/agent/grid/PowerFlowSupport.scala | 8 ++--- .../simona/agent/grid/ReceivedValues.scala | 2 +- .../agent/grid/ReceivedValuesStore.scala | 2 +- .../simona/agent/grid/SweepValueStore.scala | 4 +-- .../agent/participant/ParticipantAgent.scala | 12 ++++---- .../ParticipantAgentFundamentals.scala | 21 +++++++------ .../participant/ServiceRegistration.scala | 8 ++--- .../simona/agent/participant/data/Data.scala | 2 +- .../data/primary/PrimaryDataService.scala | 2 +- .../data/secondary/SecondaryDataService.scala | 2 +- .../agent/participant/evcs/EvcsAgent.scala | 10 +++---- .../evcs/EvcsAgentFundamentals.scala | 5 ++-- .../fixedfeedin/FixedFeedInAgent.scala | 2 +- .../FixedFeedInAgentFundamentals.scala | 3 +- .../simona/agent/participant/hp/HpAgent.scala | 2 +- .../participant/hp/HpAgentFundamentals.scala | 5 ++-- .../agent/participant/load/LoadAgent.scala | 2 +- .../load/LoadAgentFundamentals.scala | 5 ++-- .../simona/agent/participant/pv/PvAgent.scala | 2 +- .../participant/pv/PvAgentFundamentals.scala | 5 ++-- .../participant/statedata/BaseStateData.scala | 2 +- .../statedata/DataCollectionStateData.scala | 2 +- .../statedata/ParticipantStateData.scala | 4 +-- .../agent/participant/wec/WecAgent.scala | 4 +-- .../wec/WecAgentFundamentals.scala | 3 +- .../edu/ie3/simona/api/ExtSimAdapter.scala | 8 ++--- .../edu/ie3/simona/config/ArgsParser.scala | 2 +- .../ie3/simona/config/ConfigFailFast.scala | 14 ++++----- .../ie3/simona/config/RefSystemParser.scala | 8 ++--- .../edu/ie3/simona/config/VoltLvlParser.scala | 4 +-- .../edu/ie3/simona/event/RuntimeEvent.scala | 4 +-- .../event/listener/DeadLetterListener.scala | 2 +- .../event/listener/ResultEventListener.scala | 8 ++--- .../event/listener/RuntimeEventListener.scala | 4 +-- .../listener/SimonaListenerWithFilter.scala | 2 +- .../listener/Transformer3wResultSupport.scala | 4 +-- .../ie3/simona/event/notifier/Notifier.scala | 2 +- .../exceptions/CharacteristicsException.scala | 4 +-- .../io/result/ResultEntityCsvSink.scala | 2 +- .../ie3/simona/io/result/ResultSinkType.scala | 2 +- .../ie3/simona/logging/SimonaLogging.scala | 2 +- .../logback/LogbackConfiguration.scala | 2 +- .../scala/edu/ie3/simona/main/RunSimona.scala | 9 +++--- .../ie3/simona/main/RunSimonaStandalone.scala | 12 ++++---- .../ie3/simona/model/SystemComponent.scala | 5 ++-- .../edu/ie3/simona/model/grid/GridModel.scala | 2 +- .../edu/ie3/simona/model/grid/LineModel.scala | 8 ++--- .../ie3/simona/model/grid/SwitchModel.scala | 4 +-- .../simona/model/grid/TransformerModel.scala | 2 +- .../model/grid/TransformerTapping.scala | 3 +- .../model/grid/TransformerTappingModel.scala | 2 +- .../simona/model/participant/ChpModel.scala | 3 +- .../model/participant/FixedFeedInModel.scala | 1 - .../simona/model/participant/HpModel.scala | 3 +- .../model/participant/SystemParticipant.scala | 4 +-- .../simona/model/participant/WecModel.scala | 2 +- .../model/participant/control/QControl.scala | 1 - .../model/participant/load/LoadModel.scala | 6 ++-- .../load/profile/LoadProfileKey.scala | 3 +- .../load/profile/LoadProfileStore.scala | 11 +++---- .../load/profile/ProfileLoadModel.scala | 2 +- .../load/profile/TypeDayProfile.scala | 4 +-- .../load/random/RandomLoadParamStore.scala | 4 +-- .../load/random/TypeDayParameters.scala | 5 ++-- .../thermal/CylindricalThermalStorage.scala | 2 +- .../simona/model/thermal/ThermalSink.scala | 4 +-- .../simona/model/thermal/ThermalStorage.scala | 3 +- .../simona/ontology/GridAgentHierarchy.scala | 6 ++-- .../ontology/messages/PowerMessage.scala | 2 +- .../ontology/messages/SchedulerMessage.scala | 2 +- .../ontology/messages/VoltageMessage.scala | 2 +- .../messages/services/ServiceMessage.scala | 4 +-- .../simona/scheduler/RuntimeNotifier.scala | 2 +- .../ie3/simona/scheduler/ScheduleLock.scala | 8 ++--- .../edu/ie3/simona/scheduler/Scheduler.scala | 6 ++-- .../ie3/simona/scheduler/SchedulerData.scala | 4 +-- .../ie3/simona/scheduler/TimeAdvancer.scala | 4 +-- .../ie3/simona/service/SimonaService.scala | 8 ++--- .../simona/service/ev/ExtEvDataService.scala | 4 +-- .../service/primary/PrimaryServiceProxy.scala | 12 ++++---- .../primary/PrimaryServiceWorker.scala | 4 +-- .../service/weather/SampleWeatherSource.scala | 6 ++-- .../service/weather/WeatherService.scala | 6 ++-- .../service/weather/WeatherSource.scala | 14 ++++----- .../weather/WeatherSourceWrapper.scala | 1 - .../scala/edu/ie3/simona/sim/SimonaSim.scala | 22 +++++++------- .../simona/sim/setup/ExtSimSetupData.scala | 2 +- .../ie3/simona/sim/setup/SetupHelper.scala | 4 +-- .../ie3/simona/sim/setup/SimonaSetup.scala | 2 +- .../sim/setup/SimonaStandaloneSetup.scala | 12 ++++---- .../edu/ie3/simona/util/ConfigUtil.scala | 5 ++-- .../ie3/simona/util/ResultFileHierarchy.scala | 10 +++---- .../util/scala/io/GraphicDataCleaner.scala | 2 +- .../scala/quantities/DefaultQuantities.scala | 2 +- .../util/scala/quantities/QuantityUtil.scala | 1 - .../util/scala/quantities/ReactivePower.scala | 4 +-- .../agent/grid/DBFSAlgorithmCenGridSpec.scala | 12 ++++---- .../DBFSAlgorithmFailedPowerFlowSpec.scala | 10 +++---- .../grid/DBFSAlgorithmParticipantSpec.scala | 18 +++++------ .../agent/grid/DBFSAlgorithmSupGridSpec.scala | 16 +++++----- .../agent/grid/DBFSMockGridAgents.scala | 8 ++--- .../agent/grid/GridAgentDataHelperSpec.scala | 3 +- .../agent/grid/GridAgentSetup2WSpec.scala | 20 ++++++------- .../agent/grid/GridAgentSetup3WSpec.scala | 20 ++++++------- .../agent/grid/GridResultsSupportSpec.scala | 2 +- .../agent/grid/PowerFlowSupportSpec.scala | 4 +-- .../agent/grid/ReceivedValuesStoreSpec.scala | 10 +++---- ...FixedFeedInAgentModelCalculationSpec.scala | 8 ++--- .../HpAgentModelCalculationSpec.scala | 8 ++--- .../LoadAgentFixedModelCalculationSpec.scala | 8 ++--- ...LoadAgentProfileModelCalculationSpec.scala | 8 ++--- .../ParticipantAgentExternalSourceSpec.scala | 8 ++--- .../ParticipantAgentFundamentalsSpec.scala | 8 ++--- .../participant/ParticipantAgentMock.scala | 2 +- .../PvAgentModelCalculationSpec.scala | 8 ++--- .../WecAgentModelCalculationSpec.scala | 8 ++--- .../ie3/simona/api/ExtSimAdapterSpec.scala | 10 +++---- .../simona/config/ConfigFailFastSpec.scala | 4 +-- .../simona/config/RefSystemParserSpec.scala | 4 +-- .../edu/ie3/simona/deploy/DeploySpec.scala | 1 - .../edu/ie3/simona/event/NotifierSpec.scala | 11 ++++--- .../ie3/simona/event/SimonaListenerSpec.scala | 8 ++--- .../listener/ResultEventListenerSpec.scala | 1 - .../RuntimeEventListenerKafkaSpec.scala | 2 +- .../listener/RuntimeEventListenerSpec.scala | 12 ++++---- .../integration/RunSimonaStandaloneIT.scala | 4 +-- .../io/file/ResultFileHierarchySpec.scala | 6 ++-- .../io/result/ResultEntityCsvSinkSpec.scala | 7 ++--- .../io/result/ResultEntityKafkaSpec.scala | 2 +- .../edu/ie3/simona/model/grid/LineSpec.scala | 2 -- .../model/grid/SystemComponentSpec.scala | 3 +- .../model/grid/TransformerModelSpec.scala | 1 - .../ApparentPowerAndHeatSpec.scala | 3 +- .../load/RandomLoadParamStoreSpec.scala | 4 +-- .../ie3/simona/scheduler/ScheduleLockIT.scala | 8 ++--- .../simona/scheduler/ScheduleLockSpec.scala | 10 +++---- .../ie3/simona/scheduler/SchedulerSpec.scala | 8 ++--- .../simona/scheduler/TimeAdvancerSpec.scala | 10 +++---- .../service/ev/ExtEvDataServiceSpec.scala | 6 ++-- .../primary/PrimaryServiceProxySpec.scala | 8 ++--- .../primary/PrimaryServiceProxySqlIT.scala | 12 ++++---- .../primary/PrimaryServiceWorkerSpec.scala | 8 ++--- .../primary/PrimaryServiceWorkerSqlIT.scala | 6 ++-- .../weather/SampleWeatherSourceSpec.scala | 2 +- .../service/weather/WeatherServiceSpec.scala | 18 +++++------ .../weather/WeatherSourceWrapperSpec.scala | 4 +-- .../ie3/simona/sim/SimonaSimFailSpec.scala | 18 +++++------ .../simona/sim/setup/SetupHelperSpec.scala | 9 +++--- .../simona/sim/setup/SimonaSetupSpec.scala | 2 +- .../simona/test/ParticipantAgentSpec.scala | 2 +- .../ie3/simona/test/common/AgentSpec.scala | 2 +- .../simona/test/common/ConfigTestData.scala | 2 +- .../test/common/SilentTestEventListener.scala | 2 +- .../simona/test/common/TestSpawnerTyped.scala | 2 +- .../edu/ie3/simona/test/common/UnitSpec.scala | 3 +- .../CylindricalStorageInputTestData.scala | 4 +-- .../common/input/FixedFeedInputTestData.scala | 4 +-- .../test/common/input/LineInputTestData.scala | 4 +-- .../test/common/input/LoadInputTestData.scala | 5 ++-- .../test/common/input/NodeInputTestData.scala | 4 +-- .../test/common/input/PvInputTestData.scala | 6 ++-- .../common/input/SwitchInputTestData.scala | 4 +-- .../test/common/input/WecInputTestData.scala | 5 +--- .../common/input/WecTypeInputTestData.scala | 4 +-- .../grid/DbfsTestGridWithParticipants.scala | 2 +- .../common/model/grid/SubGridGateMokka.scala | 3 +- .../model/grid/TransformerTestData.scala | 1 - .../common/model/participant/HpTestData.scala | 4 +-- .../model/participant/LoadTestData.scala | 4 +-- .../common/result/PowerFlowResultData.scala | 4 +-- .../test/matchers/QuantityMatchers.scala | 3 +- .../edu/ie3/simona/util/ActorUtils.scala | 4 +-- .../ie3/simona/util/CollectionUtilsSpec.scala | 3 +- .../edu/ie3/simona/util/ConfigUtilSpec.scala | 4 +-- .../edu/ie3/simona/util/TestGridFactory.scala | 2 +- 183 files changed, 491 insertions(+), 534 deletions(-) diff --git a/src/main/scala/edu/ie3/simona/agent/SimonaAgent.scala b/src/main/scala/edu/ie3/simona/agent/SimonaAgent.scala index cfdd3372c3..3c7b89860c 100644 --- a/src/main/scala/edu/ie3/simona/agent/SimonaAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/SimonaAgent.scala @@ -6,13 +6,11 @@ package edu.ie3.simona.agent -import org.apache.pekko.actor.FSM.CurrentState -import org.apache.pekko.actor.{LoggingFSM, PoisonPill, Stash, Status} import edu.ie3.simona.agent.state.AgentState import edu.ie3.simona.event.notifier.Notifier import edu.ie3.simona.logging.SimonaFSMActorLogging - -import scala.language.postfixOps +import org.apache.pekko.actor.FSM.CurrentState +import org.apache.pekko.actor.{LoggingFSM, PoisonPill, Stash, Status} /** Trait that is mixed into every agent providing methods and services common * to all or most of all agents in the SIMONA simulation environment. diff --git a/src/main/scala/edu/ie3/simona/agent/grid/DBFSAlgorithm.scala b/src/main/scala/edu/ie3/simona/agent/grid/DBFSAlgorithm.scala index 309fb1b7ef..a3d9034667 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/DBFSAlgorithm.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/DBFSAlgorithm.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, FSM, PoisonPill} -import org.apache.pekko.pattern.{ask, pipe} -import org.apache.pekko.util.{Timeout => PekkoTimeout} import breeze.linalg.{DenseMatrix, DenseVector} import breeze.math.Complex import edu.ie3.datamodel.graph.SubGridGate @@ -46,6 +42,10 @@ import edu.ie3.simona.ontology.messages.VoltageMessage.{ import edu.ie3.simona.util.TickUtil.TickLong import edu.ie3.util.scala.quantities.Megavars import edu.ie3.util.scala.quantities.SquantsUtils.RichElectricPotential +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, FSM, PoisonPill} +import org.apache.pekko.pattern.{ask, pipe} +import org.apache.pekko.util.{Timeout => PekkoTimeout} import squants.Each import squants.energy.Megawatts @@ -158,7 +158,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { gridAgentBaseData: GridAgentBaseData ) => log.debug( - s"Received Slack Voltages request from {} for nodes {} and sweepNo: {}", + "Received Slack Voltages request from {} for nodes {} and sweepNo: {}", sender(), nodeUuids, gridAgentBaseData.currentSweepNo @@ -197,7 +197,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { throw new DBFSAlgorithmException( s"Requested nodeUuid $nodeUuid " + s"not found in sweep value store data for sweepNo: $sweepNo. This indicates" + - s"either a wrong processing of a previous sweep result or inconsistencies in grid model data!" + "either a wrong processing of a previous sweep result or inconsistencies in grid model data!" ) } }.getOrElse { @@ -229,7 +229,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { } match { case (slackE, slackF) => log.debug( - s"Provide {} to {} for node {} and sweepNo: {}", + "Provide {} to {} for node {} and sweepNo: {}", s"$slackE, $slackF", sender(), nodeUuid, @@ -255,14 +255,14 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { ) => if (gridAgentBaseData.currentSweepNo == requestSweepNo) { log.debug( - s"Received request for grid power values for sweepNo {} before my first power flow calc. Stashing away.", + "Received request for grid power values for sweepNo {} before my first power flow calc. Stashing away.", requestSweepNo ) stash() stay() } else { log.debug( - s"Received request for grid power values for a NEW sweep (request: {}, my: {})", + "Received request for grid power values for a NEW sweep (request: {}, my: {})", requestSweepNo, gridAgentBaseData.currentSweepNo ) @@ -395,7 +395,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { gridAgentBaseData.powerFlowParams.sweepTimeout ) - log.debug(s"Going to {}", HandlePowerFlowCalculations) + log.debug("Going to {}", HandlePowerFlowCalculations) goto(HandlePowerFlowCalculations) using gridAgentBaseData @@ -517,7 +517,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { // when we don't have assets we can skip another request for different asset behaviour due to changed // voltage values and go back to SimulateGrid directly log.debug( - s"No generation or load assets in the grid. Going back to {}.", + "No generation or load assets in the grid. Going back to {}.", SimulateGrid ) unstashAll() // we can answer the stashed grid power requests now @@ -591,7 +591,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { } else { // no changes from assets, we want to go back to SimulateGrid and report the LF results to our parent grids if any requests log.debug( - s"Assets have not changed their exchanged power or no voltage dependent behaviour. Going back to {}.", + "Assets have not changed their exchanged power or no voltage dependent behaviour. Going back to {}.", SimulateGrid ) unstashAll() // we can answer the stashed grid power requests now @@ -1065,7 +1065,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { implicit val timeout: PekkoTimeout = PekkoTimeout.create(askTimeout) - log.debug(s"asking assets for power values: {}", nodeToAssetAgents) + log.debug("asking assets for power values: {}", nodeToAssetAgents) if (nodeToAssetAgents.values.flatten.nonEmpty) Some( @@ -1141,7 +1141,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { ): Option[Future[ReceivedPowerValues]] = { implicit val timeout: PekkoTimeout = PekkoTimeout.create(askTimeout) log.debug( - s"asking inferior grids for power values: {}", + "asking inferior grids for power values: {}", inferiorGridGates ) Option.when(inferiorGridGates.nonEmpty) { @@ -1200,7 +1200,7 @@ trait DBFSAlgorithm extends PowerFlowSupport with GridResultsSupport { ): Option[Future[ReceivedSlackVoltageValues]] = { implicit val timeout: PekkoTimeout = PekkoTimeout.create(askTimeout) log.debug( - s"asking superior grids for slack voltage values: {}", + "asking superior grids for slack voltage values: {}", superiorGridGates ) diff --git a/src/main/scala/edu/ie3/simona/agent/grid/GridAgent.scala b/src/main/scala/edu/ie3/simona/agent/grid/GridAgent.scala index b8677f607a..f13aac2d43 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/GridAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/GridAgent.scala @@ -27,13 +27,12 @@ import edu.ie3.simona.ontology.messages.{Activation, StopMessage} import edu.ie3.simona.scheduler.ScheduleLock.ScheduleKey import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil -import org.apache.pekko.actor.{ActorRef, Props, Stash} import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, Props, Stash} import java.time.ZonedDateTime import java.time.temporal.ChronoUnit import java.util.UUID -import scala.language.postfixOps object GridAgent { def props( @@ -160,13 +159,13 @@ class GridAgent( failFast(gridAgentInitData) log.debug( - s"Inferior Subnets: {}; Inferior Subnet Nodes: {}", + "Inferior Subnets: {}; Inferior Subnet Nodes: {}", gridAgentInitData.inferiorGridIds, gridAgentInitData.inferiorGridNodeUuids ) log.debug( - s"Superior Subnets: {}; Superior Subnet Nodes: {}", + "Superior Subnets: {}; Superior Subnet Nodes: {}", gridAgentInitData.superiorGridIds, gridAgentInitData.superiorGridNodeUuids ) @@ -276,7 +275,7 @@ class GridAgent( ) throw new GridAgentInitializationException( s"$actorName has neither superior nor inferior grids! This can either " + - s"be cause by wrong subnetGate information or invalid parametrization of the simulation!" + "be cause by wrong subnetGate information or invalid parametrization of the simulation!" ) } } diff --git a/src/main/scala/edu/ie3/simona/agent/grid/GridAgentController.scala b/src/main/scala/edu/ie3/simona/agent/grid/GridAgentController.scala index 9ec4aca397..40a5ccc974 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/GridAgentController.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/GridAgentController.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorContext, ActorRef} -import org.apache.pekko.event.LoggingAdapter import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.input.container.{SubGridContainer, ThermalGrid} import edu.ie3.datamodel.models.input.system._ @@ -33,6 +30,9 @@ import edu.ie3.simona.ontology.messages.SchedulerMessage.ScheduleActivation import edu.ie3.simona.util.ConfigUtil import edu.ie3.simona.util.ConfigUtil._ import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorContext, ActorRef} +import org.apache.pekko.event.LoggingAdapter import java.time.ZonedDateTime import java.util.UUID @@ -138,7 +138,7 @@ class GridAgentController( if (notProcessedElements.nonEmpty) log.warning( - s"The following elements have been removed, " + + "The following elements have been removed, " + s"as the agents are not implemented yet: $notProcessedElements" ) diff --git a/src/main/scala/edu/ie3/simona/agent/grid/GridAgentData.scala b/src/main/scala/edu/ie3/simona/agent/grid/GridAgentData.scala index 038d72cbc5..6f07b7a542 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/GridAgentData.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/GridAgentData.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorRef -import org.apache.pekko.event.LoggingAdapter import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.datamodel.models.input.container.{SubGridContainer, ThermalGrid} import edu.ie3.powerflow.model.PowerFlowResult @@ -24,6 +22,8 @@ import edu.ie3.simona.ontology.messages.PowerMessage.{ ProvideGridPowerMessage, ProvidePowerMessage } +import org.apache.pekko.actor.ActorRef +import org.apache.pekko.event.LoggingAdapter import java.util.UUID @@ -35,7 +35,7 @@ object GridAgentData { /** Initial state data of the [[GridAgent]] */ - final case object GridAgentUninitializedData extends GridAgentData + case object GridAgentUninitializedData extends GridAgentData /** Data that is send to the [[GridAgent]] directly after startup. It contains * the main information for initialization. This data should include all @@ -97,7 +97,7 @@ object GridAgentData { * be copied several times at several places for each state transition with * updated data. So be careful in adding more data on it! */ - final case object GridAgentBaseData extends GridAgentData { + case object GridAgentBaseData extends GridAgentData { def apply( gridModel: GridModel, diff --git a/src/main/scala/edu/ie3/simona/agent/grid/GridAgentDataHelper.scala b/src/main/scala/edu/ie3/simona/agent/grid/GridAgentDataHelper.scala index dfb422f48a..4eb559f534 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/GridAgentDataHelper.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/GridAgentDataHelper.scala @@ -6,10 +6,10 @@ package edu.ie3.simona.agent.grid -import java.util.UUID - import edu.ie3.datamodel.graph.SubGridGate +import java.util.UUID + /** Trait containing helper methods for the [[GridAgent]] to reduce the amount * of code in the GridAgent */ diff --git a/src/main/scala/edu/ie3/simona/agent/grid/GridEnvironment.scala b/src/main/scala/edu/ie3/simona/agent/grid/GridEnvironment.scala index 39dadc489f..d37660e751 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/GridEnvironment.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/GridEnvironment.scala @@ -6,11 +6,11 @@ package edu.ie3.simona.agent.grid -import java.util.UUID - -import org.apache.pekko.actor.ActorRef import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.simona.model.grid.GridModel +import org.apache.pekko.actor.ActorRef + +import java.util.UUID /** Wrapper class containing all information on the grid environment a * [[GridAgent]] has access to diff --git a/src/main/scala/edu/ie3/simona/agent/grid/GridResultsSupport.scala b/src/main/scala/edu/ie3/simona/agent/grid/GridResultsSupport.scala index ecd073b1cf..68590325a5 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/GridResultsSupport.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/GridResultsSupport.scala @@ -6,15 +6,13 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.event.LoggingAdapter import breeze.math.Complex import edu.ie3.datamodel.models.input.connector.ConnectorPort import edu.ie3.datamodel.models.result.NodeResult import edu.ie3.datamodel.models.result.connector.{ LineResult, SwitchResult, - Transformer2WResult, - Transformer3WResult + Transformer2WResult } import edu.ie3.powerflow.model.NodeData.StateData import edu.ie3.simona.agent.grid.GridResultsSupport.PartialTransformer3wResult @@ -29,6 +27,7 @@ import edu.ie3.simona.model.grid.Transformer3wPowerFlowCase.{ import edu.ie3.simona.model.grid._ import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.quantities.QuantityUtil +import org.apache.pekko.event.LoggingAdapter import squants.space.Degrees import squants.{Amperes, Angle, ElectricCurrent} import tech.units.indriya.quantity.Quantities diff --git a/src/main/scala/edu/ie3/simona/agent/grid/PowerFlowSupport.scala b/src/main/scala/edu/ie3/simona/agent/grid/PowerFlowSupport.scala index afc26f47c1..17aa23c4fb 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/PowerFlowSupport.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/PowerFlowSupport.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.event.LoggingAdapter import breeze.math.Complex import edu.ie3.powerflow.NewtonRaphsonPF import edu.ie3.powerflow.model.NodeData.{PresetData, StateData} @@ -20,6 +19,7 @@ import edu.ie3.simona.model.grid._ import edu.ie3.simona.ontology.messages.PowerMessage.ProvidePowerMessage import edu.ie3.simona.ontology.messages.VoltageMessage.ProvideSlackVoltageMessage.ExchangeVoltage import edu.ie3.util.scala.quantities.Kilovars +import org.apache.pekko.event.LoggingAdapter import squants.electro.ElectricPotential import squants.energy.Kilowatts @@ -177,7 +177,7 @@ trait PowerFlowSupport { .minByOption(_.index) .getOrElse( throw new DBFSAlgorithmException( - s"Unable to find a slack node." + "Unable to find a slack node." ) ) @@ -237,7 +237,7 @@ trait PowerFlowSupport { .find(_.nodeUuid == sweepValueStoreData.nodeUuid) .getOrElse( throw new RuntimeException( - s"Unable to find node with uuid " + + "Unable to find node with uuid " + s"${sweepValueStoreData.nodeUuid} in received slack voltage values!" ) ) @@ -453,7 +453,7 @@ trait PowerFlowSupport { throw new RuntimeException( s"The received slack voltage for node $nodeUuid belongs to a two and a " + s"three winding transformer at the same time (${transformer2w.uuid} and ${transformer3w.uuid}), " + - s"which is not possible!" + "which is not possible!" ) case (None, None) => throw new RuntimeException( diff --git a/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValues.scala b/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValues.scala index 53f04d5af8..4819d84734 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValues.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValues.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.ontology.messages.PowerMessage.PowerResponseMessage import edu.ie3.simona.ontology.messages.VoltageMessage.ProvideSlackVoltageMessage +import org.apache.pekko.actor.ActorRef /** Serves as a wrapper class that allows for matches against received values in * [[DBFSAlgorithm]] diff --git a/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValuesStore.scala b/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValuesStore.scala index 4c083629f3..649d162a8d 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValuesStore.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/ReceivedValuesStore.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorRef import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.simona.agent.grid.ReceivedValuesStore.{ NodeToReceivedPower, @@ -17,6 +16,7 @@ import edu.ie3.simona.ontology.messages.PowerMessage.{ ProvidePowerMessage } import edu.ie3.simona.ontology.messages.VoltageMessage.ProvideSlackVoltageMessage.ExchangeVoltage +import org.apache.pekko.actor.ActorRef import java.util.UUID diff --git a/src/main/scala/edu/ie3/simona/agent/grid/SweepValueStore.scala b/src/main/scala/edu/ie3/simona/agent/grid/SweepValueStore.scala index dfe459fc72..dc5ce6bb64 100644 --- a/src/main/scala/edu/ie3/simona/agent/grid/SweepValueStore.scala +++ b/src/main/scala/edu/ie3/simona/agent/grid/SweepValueStore.scala @@ -6,14 +6,14 @@ package edu.ie3.simona.agent.grid -import java.util.UUID - import edu.ie3.powerflow.model.NodeData.StateData import edu.ie3.powerflow.model.PowerFlowResult.SuccessFullPowerFlowResult.ValidNewtonRaphsonPFResult import edu.ie3.simona.agent.grid.SweepValueStore.SweepValueStoreData import edu.ie3.simona.exceptions.agent.DBFSAlgorithmException import edu.ie3.simona.model.grid.NodeModel +import java.util.UUID + /** Value store holding all that should be stored after each sweep of the * [[DBFSAlgorithm]] to be used by the next sweep. * diff --git a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala index aae1c04eab..87c3279e04 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, FSM} import edu.ie3.datamodel.models.input.system.SystemParticipantInput import edu.ie3.simona.agent.SimonaAgent import edu.ie3.simona.agent.grid.GridAgent.FinishGridSimulationTrigger @@ -50,6 +48,8 @@ import edu.ie3.simona.ontology.messages.services.ServiceMessage.{ } import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.ReactivePower +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, FSM} import squants.{Dimensionless, Power} import java.time.ZonedDateTime @@ -333,9 +333,9 @@ abstract class ParticipantAgent[ case (actorRef, data) => s"$actorRef -> $data" } log.debug( - s"Got asset power request for tick {}'. Will answer it later. " + - s"I'm waiting for senders: '{}', already got from '{}'. " + - s"The actor has {} been triggered yet.", + "Got asset power request for tick {}'. Will answer it later. " + + "I'm waiting for senders: '{}', already got from '{}'. " + + "The actor has {} been triggered yet.", s"$currentTick from ${sender()}", awaitedSenders, yetReceivedSenders, @@ -376,7 +376,7 @@ abstract class ParticipantAgent[ case Event(RequestAssetPowerMessage(currentTick, _, _), _) => log.debug( - s"Got asset power request for tick {} from '{}'. Will answer it later.", + "Got asset power request for tick {} from '{}'. Will answer it later.", currentTick, sender() ) diff --git a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala index 9b7021865a..0417d5270d 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala @@ -6,11 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, FSM, PoisonPill} -import org.apache.pekko.event.LoggingAdapter -import org.apache.pekko.util -import org.apache.pekko.util.Timeout import breeze.numerics.{ceil, floor, pow, sqrt} import edu.ie3.datamodel.models.input.system.SystemParticipantInput import edu.ie3.datamodel.models.result.ResultEntity @@ -63,7 +58,6 @@ import edu.ie3.simona.exceptions.agent.{ } import edu.ie3.simona.io.result.AccompaniedSimulationResult import edu.ie3.simona.model.participant.{CalcRelevantData, SystemParticipant} -import edu.ie3.simona.ontology.messages.Activation import edu.ie3.simona.ontology.messages.PowerMessage.{ AssetPowerChangedMessage, AssetPowerUnchangedMessage @@ -79,6 +73,11 @@ import edu.ie3.simona.ontology.messages.services.ServiceMessage.{ import edu.ie3.simona.util.TickUtil._ import edu.ie3.util.quantities.PowerSystemUnits._ import edu.ie3.util.scala.quantities.{Megavars, QuantityUtil, ReactivePower} +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, FSM, PoisonPill} +import org.apache.pekko.event.LoggingAdapter +import org.apache.pekko.util +import org.apache.pekko.util.Timeout import squants.energy.Megawatts import squants.{Dimensionless, Each, Energy, Power} @@ -305,7 +304,7 @@ protected trait ParticipantAgentFundamentals[ ) releaseTick() - log.debug(s"Going to {}, using {}", Idle, baseStateData) + log.debug("Going to {}, using {}", Idle, baseStateData) scheduler ! Completion(self.toTyped, newTick) goto(Idle) using nextBaseStateData } @@ -830,7 +829,7 @@ protected trait ParticipantAgentFundamentals[ fInPu: Dimensionless, alternativeResult: PD ): FSM.State[AgentState, ParticipantStateData[PD]] = { - log.debug(s"Received asset power request for tick {}", requestTick) + log.debug("Received asset power request for tick {}", requestTick) /* Check, if there is any calculation foreseen for this tick. If so, wait with the response. */ val activationExpected = @@ -839,8 +838,8 @@ protected trait ParticipantAgentFundamentals[ baseStateData.foreseenDataTicks.values.flatten.exists(_ < requestTick) if (activationExpected || dataExpected) { log.debug( - s"I got a request for power from '{}' for tick '{}', but I'm still waiting for new" + - s" results before this tick. Waiting with the response.", + "I got a request for power from '{}' for tick '{}', but I'm still waiting for new" + + " results before this tick. Waiting with the response.", sender(), requestTick ) @@ -1203,7 +1202,7 @@ protected trait ParticipantAgentFundamentals[ ) } else { log.debug( - s"No relevant data apparent, stay and reply with alternative result {}.", + "No relevant data apparent, stay and reply with alternative result {}.", alternativeResult ) stayWithUpdatedRequestValueStore( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/ServiceRegistration.scala b/src/main/scala/edu/ie3/simona/agent/participant/ServiceRegistration.scala index d600049a27..30e2ac4545 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/ServiceRegistration.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/ServiceRegistration.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.ActorRef import edu.ie3.datamodel.models.input.system.{EvcsInput, SystemParticipantInput} import edu.ie3.simona.agent.participant.data.Data.PrimaryData.PrimaryDataWithApparentPower import edu.ie3.simona.agent.participant.data.Data.SecondaryData @@ -18,10 +17,11 @@ import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService.{ } import edu.ie3.simona.agent.participant.statedata.ParticipantStateData import edu.ie3.simona.config.SimonaConfig -import edu.ie3.simona.model.participant.{CalcRelevantData, SystemParticipant} import edu.ie3.simona.exceptions.agent.ServiceRegistrationException +import edu.ie3.simona.model.participant.{CalcRelevantData, SystemParticipant} import edu.ie3.simona.ontology.messages.services.EvMessage.RegisterForEvDataMessage import edu.ie3.simona.ontology.messages.services.WeatherMessage.RegisterForWeatherMessage +import org.apache.pekko.actor.ActorRef trait ServiceRegistration[ PD <: PrimaryDataWithApparentPower[PD], @@ -75,7 +75,7 @@ trait ServiceRegistration[ ): Option[ActorRef] = serviceDefinition match { case SecondaryDataService.ActorPriceService(_) => log.debug( - s"Attempt to register for {}. This is currently not supported.", + "Attempt to register for {}. This is currently not supported.", ActorPriceService ) None @@ -109,7 +109,7 @@ trait ServiceRegistration[ s"Cannot register for weather information at node ${inputModel.getNode.getId} " + s"(${inputModel.getNode.getUuid}), because the geo position " + s"(${inputModel.getNode.getGeoPosition.getY}, ${inputModel.getNode.getGeoPosition.getX}) " + - s"is invalid." + "is invalid." ) } actorRef ! RegisterForWeatherMessage(lat, lon) diff --git a/src/main/scala/edu/ie3/simona/agent/participant/data/Data.scala b/src/main/scala/edu/ie3/simona/agent/participant/data/Data.scala index 2bba0f0509..829b553366 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/data/Data.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/data/Data.scala @@ -11,7 +11,7 @@ import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.quantities.interfaces.EnergyPrice import edu.ie3.util.scala.quantities.{Kilovars, Megavars, ReactivePower} -import squants.energy.{Power, Kilowatts, Megawatts} +import squants.energy.{Kilowatts, Megawatts, Power} import tech.units.indriya.ComparableQuantity import java.time.ZonedDateTime diff --git a/src/main/scala/edu/ie3/simona/agent/participant/data/primary/PrimaryDataService.scala b/src/main/scala/edu/ie3/simona/agent/participant/data/primary/PrimaryDataService.scala index 33cb4b7519..9bd212a7a2 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/data/primary/PrimaryDataService.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/data/primary/PrimaryDataService.scala @@ -6,10 +6,10 @@ package edu.ie3.simona.agent.participant.data.primary -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.agent.participant.data.Data.PrimaryData import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower import edu.ie3.simona.agent.participant.data.DataService +import org.apache.pekko.actor.ActorRef /** Enum-like trait to denote possible external data sources for systems */ diff --git a/src/main/scala/edu/ie3/simona/agent/participant/data/secondary/SecondaryDataService.scala b/src/main/scala/edu/ie3/simona/agent/participant/data/secondary/SecondaryDataService.scala index 7d2646b87b..240980450f 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/data/secondary/SecondaryDataService.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/data/secondary/SecondaryDataService.scala @@ -6,12 +6,12 @@ package edu.ie3.simona.agent.participant.data.secondary -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.agent.participant.data.Data.SecondaryData import edu.ie3.simona.agent.participant.data.Data.SecondaryData.WholesalePrice import edu.ie3.simona.agent.participant.data.DataService import edu.ie3.simona.ontology.messages.services.EvMessage.EvData import edu.ie3.simona.ontology.messages.services.WeatherMessage.WeatherData +import org.apache.pekko.actor.ActorRef /** Common properties to all secondary data services */ diff --git a/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgent.scala index 3814da101c..67eae74edb 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgent.scala @@ -6,12 +6,7 @@ package edu.ie3.simona.agent.participant.evcs -import org.apache.pekko.actor.{ActorRef, Props} import edu.ie3.datamodel.models.input.system.EvcsInput -import edu.ie3.simona.agent.participant.{ - ParticipantAgent, - ParticipantAgentFundamentals -} import edu.ie3.simona.agent.participant.data.Data.PrimaryData.{ ApparentPower, ZERO_POWER @@ -21,6 +16,10 @@ import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService.Acto import edu.ie3.simona.agent.participant.statedata.BaseStateData.ParticipantModelBaseStateData import edu.ie3.simona.agent.participant.statedata.ParticipantStateData import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.ParticipantInitializeStateData +import edu.ie3.simona.agent.participant.{ + ParticipantAgent, + ParticipantAgentFundamentals +} import edu.ie3.simona.agent.state.AgentState.Idle import edu.ie3.simona.config.SimonaConfig.EvcsRuntimeConfig import edu.ie3.simona.model.participant.EvcsModel @@ -30,6 +29,7 @@ import edu.ie3.simona.ontology.messages.services.EvMessage.{ EvFreeLotsRequest } import edu.ie3.util.scala.quantities.ReactivePower +import org.apache.pekko.actor.{ActorRef, Props} import squants.Power object EvcsAgent { diff --git a/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala index 11da0c9bd4..d76dffbdbb 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.evcs -import org.apache.pekko.actor.{ActorRef, FSM} import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.input.system.EvcsInput import edu.ie3.datamodel.models.result.system.{ @@ -28,7 +27,6 @@ import edu.ie3.simona.agent.participant.statedata.{ ParticipantStateData } import edu.ie3.simona.agent.state.AgentState -import edu.ie3.simona.agent.state.AgentState.Idle import edu.ie3.simona.api.data.ev.model.EvModel import edu.ie3.simona.config.SimonaConfig.EvcsRuntimeConfig import edu.ie3.simona.event.notifier.NotifierConfig @@ -49,6 +47,7 @@ import edu.ie3.simona.service.ev.ExtEvDataService.FALLBACK_EV_MOVEMENTS_STEM_DIS import edu.ie3.util.quantities.PowerSystemUnits.PU import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.quantities.Kilovars +import org.apache.pekko.actor.{ActorRef, FSM} import squants.energy.Kilowatts import squants.{Dimensionless, Each} @@ -116,7 +115,7 @@ protected trait EvcsAgentFundamentals ) ) throw new AgentInitializationException( - s"EvcsAgent cannot be initialized without an ev data service!" + "EvcsAgent cannot be initialized without an ev data service!" ) baseStateDataForModelCalculation( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgent.scala index a5c90fe112..f93b070002 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgent.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.fixedfeedin -import org.apache.pekko.actor.{ActorRef, Props} import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.simona.agent.participant.ParticipantAgent import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower @@ -15,6 +14,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.Participa import edu.ie3.simona.config.SimonaConfig.FixedFeedInRuntimeConfig import edu.ie3.simona.model.participant.CalcRelevantData.FixedRelevantData import edu.ie3.simona.model.participant.FixedFeedInModel +import org.apache.pekko.actor.{ActorRef, Props} object FixedFeedInAgent { def props( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala index 3f5717d8c6..7c619f9649 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.fixedfeedin -import org.apache.pekko.actor.{ActorRef, FSM} import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.result.system.{ FixedFeedInResult, @@ -27,7 +26,6 @@ import edu.ie3.simona.agent.participant.statedata.{ ParticipantStateData } 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.event.notifier.NotifierConfig import edu.ie3.simona.exceptions.agent.{ @@ -41,6 +39,7 @@ import edu.ie3.simona.util.TickUtil.RichZonedDateTime import edu.ie3.util.quantities.PowerSystemUnits.PU import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.quantities.ReactivePower +import org.apache.pekko.actor.{ActorRef, FSM} import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime diff --git a/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgent.scala index 758711c3bd..fa0b8affef 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgent.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.hp -import org.apache.pekko.actor.{ActorRef, Props} import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.simona.agent.participant.ParticipantAgent import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPowerAndHeat @@ -17,6 +16,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.Participa import edu.ie3.simona.config.SimonaConfig.HpRuntimeConfig import edu.ie3.simona.model.participant.HpModel import edu.ie3.simona.model.participant.HpModel.HpRelevantData +import org.apache.pekko.actor.{ActorRef, Props} object HpAgent { def props( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala index 9e5a24cb4e..e17f0af060 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.hp -import org.apache.pekko.actor.{ActorRef, FSM} import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.datamodel.models.result.system.{ HpResult, @@ -31,7 +30,6 @@ import edu.ie3.simona.agent.participant.statedata.{ ParticipantStateData } 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.event.notifier.NotifierConfig import edu.ie3.simona.exceptions.agent.{ @@ -48,6 +46,7 @@ import edu.ie3.simona.util.TickUtil.TickLong import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.quantities.PowerSystemUnits.PU import edu.ie3.util.scala.quantities.{Megavars, ReactivePower} +import org.apache.pekko.actor.{ActorRef, FSM} import squants.energy.Megawatts import squants.{Dimensionless, Each, Power, Temperature} import tech.units.indriya.quantity.Quantities @@ -300,7 +299,7 @@ trait HpAgentFundamentals } }.getOrElse { throw new AgentInitializationException( - s"HpAgent cannot be initialized without a Thermal House!" + "HpAgent cannot be initialized without a Thermal House!" ) } diff --git a/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgent.scala index 19fb399742..062c090a70 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgent.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.load -import org.apache.pekko.actor.{ActorRef, Props} import edu.ie3.datamodel.models.input.system.LoadInput import edu.ie3.simona.agent.participant.ParticipantAgent import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower @@ -28,6 +27,7 @@ import edu.ie3.simona.model.participant.load.{ LoadModel, LoadModelBehaviour } +import org.apache.pekko.actor.{ActorRef, Props} object LoadAgent { def props( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala index 64b37b56ae..438808de3d 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.load -import org.apache.pekko.actor.{ActorRef, FSM} import edu.ie3.datamodel.models.input.system.LoadInput import edu.ie3.datamodel.models.result.system.{ LoadResult, @@ -27,7 +26,6 @@ import edu.ie3.simona.agent.participant.statedata.{ ParticipantStateData } 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.event.notifier.NotifierConfig import edu.ie3.simona.exceptions.agent.InconsistentStateException @@ -55,6 +53,7 @@ import edu.ie3.util.quantities.PowerSystemUnits.PU import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.OperationInterval import edu.ie3.util.scala.quantities.ReactivePower +import org.apache.pekko.actor.{ActorRef, FSM} import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime @@ -228,7 +227,7 @@ protected trait LoadAgentFundamentals[LD <: LoadRelevantData, LM <: LoadModel[ scheduler: ActorRef ): FSM.State[AgentState, ParticipantStateData[ApparentPower]] = throw new InconsistentStateException( - s"Load model is not able to calculate power with secondary data." + "Load model is not able to calculate power with secondary data." ) /** Determine the average result within the given tick window diff --git a/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgent.scala index d82002aaec..2eb810b3a1 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgent.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.pv -import org.apache.pekko.actor.{ActorRef, Props} import edu.ie3.datamodel.models.input.system.PvInput import edu.ie3.simona.agent.participant.ParticipantAgent import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower @@ -17,6 +16,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.Participa import edu.ie3.simona.config.SimonaConfig.PvRuntimeConfig import edu.ie3.simona.model.participant.PvModel import edu.ie3.simona.model.participant.PvModel.PvRelevantData +import org.apache.pekko.actor.{ActorRef, Props} object PvAgent { def props( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala index 64d955ff73..3fd18c3094 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.pv -import org.apache.pekko.actor.{ActorRef, FSM} import edu.ie3.datamodel.models.input.system.PvInput import edu.ie3.datamodel.models.result.system.{ PvResult, @@ -29,7 +28,6 @@ import edu.ie3.simona.agent.participant.statedata.{ ParticipantStateData } 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.event.notifier.NotifierConfig import edu.ie3.simona.exceptions.agent.{ @@ -46,6 +44,7 @@ import edu.ie3.simona.util.TickUtil.TickLong import edu.ie3.util.quantities.PowerSystemUnits.PU import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.quantities.ReactivePower +import org.apache.pekko.actor.{ActorRef, FSM} import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime @@ -108,7 +107,7 @@ protected trait PvAgentFundamentals ) ) throw new AgentInitializationException( - s"PvAgent cannot be initialized without a weather service!" + "PvAgent cannot be initialized without a weather service!" ) /* Build the calculation model */ diff --git a/src/main/scala/edu/ie3/simona/agent/participant/statedata/BaseStateData.scala b/src/main/scala/edu/ie3/simona/agent/participant/statedata/BaseStateData.scala index a625778779..d5d020fd9c 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/statedata/BaseStateData.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/statedata/BaseStateData.scala @@ -6,13 +6,13 @@ package edu.ie3.simona.agent.participant.statedata -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.agent.ValueStore import edu.ie3.simona.agent.participant.data.Data.PrimaryData.PrimaryDataWithApparentPower import edu.ie3.simona.agent.participant.data.Data.SecondaryData import edu.ie3.simona.agent.participant.data.secondary.SecondaryDataService import edu.ie3.simona.event.notifier.NotifierConfig import edu.ie3.simona.model.participant.{CalcRelevantData, SystemParticipant} +import org.apache.pekko.actor.ActorRef import squants.Dimensionless import java.time.ZonedDateTime diff --git a/src/main/scala/edu/ie3/simona/agent/participant/statedata/DataCollectionStateData.scala b/src/main/scala/edu/ie3/simona/agent/participant/statedata/DataCollectionStateData.scala index d9b7f63de2..b26ca52e9a 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/statedata/DataCollectionStateData.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/statedata/DataCollectionStateData.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.agent.participant.statedata -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.agent.participant.data.Data import edu.ie3.simona.agent.participant.data.Data.PrimaryData.PrimaryDataWithApparentPower +import org.apache.pekko.actor.ActorRef import scala.reflect.{ClassTag, classTag} diff --git a/src/main/scala/edu/ie3/simona/agent/participant/statedata/ParticipantStateData.scala b/src/main/scala/edu/ie3/simona/agent/participant/statedata/ParticipantStateData.scala index d52896da0c..4ffc246bbd 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/statedata/ParticipantStateData.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/statedata/ParticipantStateData.scala @@ -6,14 +6,14 @@ package edu.ie3.simona.agent.participant.statedata -import org.apache.pekko.actor.ActorRef import edu.ie3.datamodel.models.input.container.ThermalGrid import edu.ie3.datamodel.models.input.system.SystemParticipantInput -import edu.ie3.simona.agent.participant.data.Data.{PrimaryData, SecondaryData} import edu.ie3.simona.agent.participant.data.Data.PrimaryData.PrimaryDataWithApparentPower +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.event.notifier.NotifierConfig +import org.apache.pekko.actor.ActorRef import java.time.ZonedDateTime diff --git a/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgent.scala index 94a5c490a0..6337aa163b 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgent.scala @@ -6,10 +6,9 @@ package edu.ie3.simona.agent.participant.wec -import org.apache.pekko.actor.{ActorRef, Props} import edu.ie3.datamodel.models.input.system.WecInput -import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower import edu.ie3.simona.agent.participant.ParticipantAgent +import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower 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 @@ -17,6 +16,7 @@ import edu.ie3.simona.agent.participant.statedata.ParticipantStateData.Participa import edu.ie3.simona.config.SimonaConfig.WecRuntimeConfig import edu.ie3.simona.model.participant.WecModel import edu.ie3.simona.model.participant.WecModel._ +import org.apache.pekko.actor.{ActorRef, Props} object WecAgent { def props( diff --git a/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala index bbb9e55c6c..deed22f3d4 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant.wec -import org.apache.pekko.actor.{ActorRef, FSM} import edu.ie3.datamodel.models.input.system.WecInput import edu.ie3.datamodel.models.result.system.{ SystemParticipantResult, @@ -29,7 +28,6 @@ import edu.ie3.simona.agent.participant.statedata.{ } 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.event.notifier.NotifierConfig import edu.ie3.simona.exceptions.agent.{ @@ -44,6 +42,7 @@ import edu.ie3.simona.ontology.messages.services.WeatherMessage.WeatherData import edu.ie3.util.quantities.PowerSystemUnits._ import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.quantities.ReactivePower +import org.apache.pekko.actor.{ActorRef, FSM} import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime diff --git a/src/main/scala/edu/ie3/simona/api/ExtSimAdapter.scala b/src/main/scala/edu/ie3/simona/api/ExtSimAdapter.scala index bce029ea33..120a196822 100644 --- a/src/main/scala/edu/ie3/simona/api/ExtSimAdapter.scala +++ b/src/main/scala/edu/ie3/simona/api/ExtSimAdapter.scala @@ -6,16 +6,14 @@ package edu.ie3.simona.api -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{Actor, ActorRef, PoisonPill, Props} import edu.ie3.simona.api.ExtSimAdapter.{Create, ExtSimAdapterStateData} import edu.ie3.simona.api.data.ontology.ScheduleDataServiceMessage import edu.ie3.simona.api.simulation.ExtSimAdapterData import edu.ie3.simona.api.simulation.ontology.{ ActivationMessage, + CompletionMessage => ExtCompletionMessage, TerminationCompleted, - TerminationMessage, - CompletionMessage => ExtCompletionMessage + TerminationMessage } import edu.ie3.simona.logging.SimonaActorLogging import edu.ie3.simona.ontology.messages.SchedulerMessage.{ @@ -27,6 +25,8 @@ import edu.ie3.simona.ontology.messages.{Activation, StopMessage} import edu.ie3.simona.scheduler.ScheduleLock import edu.ie3.simona.scheduler.ScheduleLock.ScheduleKey import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{Actor, ActorRef, PoisonPill, Props} import scala.jdk.OptionConverters._ diff --git a/src/main/scala/edu/ie3/simona/config/ArgsParser.scala b/src/main/scala/edu/ie3/simona/config/ArgsParser.scala index 65c563bd80..fd37d8d00b 100644 --- a/src/main/scala/edu/ie3/simona/config/ArgsParser.scala +++ b/src/main/scala/edu/ie3/simona/config/ArgsParser.scala @@ -6,7 +6,7 @@ package edu.ie3.simona.config -import com.typesafe.config.{ConfigFactory, Config => TypesafeConfig} +import com.typesafe.config.{Config => TypesafeConfig, ConfigFactory} import com.typesafe.scalalogging.LazyLogging import edu.ie3.simona.event.listener.SimonaListenerCompanion import edu.ie3.util.scala.ReflectionTools diff --git a/src/main/scala/edu/ie3/simona/config/ConfigFailFast.scala b/src/main/scala/edu/ie3/simona/config/ConfigFailFast.scala index ab3b3895a9..a0e9028bb8 100644 --- a/src/main/scala/edu/ie3/simona/config/ConfigFailFast.scala +++ b/src/main/scala/edu/ie3/simona/config/ConfigFailFast.scala @@ -160,7 +160,7 @@ case object ConfigFailFast extends LazyLogging { .equals(supportedSinks) ) throw new InvalidConfigParameterException( - s"Newly added sink(s) " + + "Newly added sink(s) " + s"'${sink.productElementNames.map(_.toLowerCase).toSet.removedAll(supportedSinks)}' detected! " + s"Please adapt 'ConfigFailFast' accordingly! Currently supported sinks: ${supportedSinks.mkString(", ")}." ) @@ -214,8 +214,8 @@ case object ConfigFailFast extends LazyLogging { if (startDate.isAfter(endDate)) throw new InvalidConfigParameterException( - s"Invalid time configuration." + - s"Please ensure that the start time of the simulation is before the end time." + "Invalid time configuration." + + "Please ensure that the start time of the simulation is before the end time." ) } @@ -234,7 +234,7 @@ case object ConfigFailFast extends LazyLogging { case e: DateTimeParseException => throw new InvalidConfigParameterException( s"Invalid dateTimeString: $dateTimeString." + - s"Please ensure that your date/time parameter match the following pattern: 'yyyy-MM-dd HH:mm:ss'", + "Please ensure that your date/time parameter match the following pattern: 'yyyy-MM-dd HH:mm:ss'", e ) } @@ -435,7 +435,7 @@ case object ConfigFailFast extends LazyLogging { if (voltLvls.isEmpty && gridIds.isEmpty) throw new InvalidConfigParameterException( "The provided values for voltLvls and gridIds are empty! " + - s"At least one of these optional parameters has to be provided for a valid refSystem! " + + "At least one of these optional parameters has to be provided for a valid refSystem! " + s"Provided refSystem is: $refSystem." ) @@ -577,8 +577,8 @@ case object ConfigFailFast extends LazyLogging { .get(ChronoUnit.MILLIS) != 0) ) { throw new InvalidConfigParameterException( - s"Invalid time resolution. Please ensure, that " + - s"the time resolution for power flow calculation is at least rounded to a full second!" + "Invalid time resolution. Please ensure, that " + + "the time resolution for power flow calculation is at least rounded to a full second!" ) } } diff --git a/src/main/scala/edu/ie3/simona/config/RefSystemParser.scala b/src/main/scala/edu/ie3/simona/config/RefSystemParser.scala index 66bf1100c1..7637173d7f 100644 --- a/src/main/scala/edu/ie3/simona/config/RefSystemParser.scala +++ b/src/main/scala/edu/ie3/simona/config/RefSystemParser.scala @@ -106,8 +106,8 @@ object RefSystemParser { ) ) throw new InvalidConfigParameterException( - s"The provided gridIds in simona.gridConfig.refSystems contains duplicates. " + - s"Please check if there are either duplicate entries or overlapping ranges!" + "The provided gridIds in simona.gridConfig.refSystems contains duplicates. " + + "Please check if there are either duplicate entries or overlapping ranges!" ) if ( CollectionUtils.listHasDuplicates( @@ -115,8 +115,8 @@ object RefSystemParser { ) ) throw new InvalidConfigParameterException( - s"The provided voltLvls in simona.gridConfig.refSystems contains duplicates. " + - s"Please check your configuration for duplicates in voltLvl entries!" + "The provided voltLvls in simona.gridConfig.refSystems contains duplicates. " + + "Please check your configuration for duplicates in voltLvl entries!" ) ConfigRefSystems(gridIdRefSystems.toMap, voltLvlRefSystems.toMap) diff --git a/src/main/scala/edu/ie3/simona/config/VoltLvlParser.scala b/src/main/scala/edu/ie3/simona/config/VoltLvlParser.scala index 3d3ce38920..9bad8441d3 100644 --- a/src/main/scala/edu/ie3/simona/config/VoltLvlParser.scala +++ b/src/main/scala/edu/ie3/simona/config/VoltLvlParser.scala @@ -12,13 +12,13 @@ import edu.ie3.datamodel.models.voltagelevels.{ GermanVoltageLevelUtils, VoltageLevel } -import edu.ie3.simona.config.SimonaConfig.VoltLvlConfig import edu.ie3.simona.exceptions.InvalidConfigParameterException import edu.ie3.util.quantities.QuantityUtil -import javax.measure.quantity.ElectricPotential import tech.units.indriya.ComparableQuantity import tech.units.indriya.quantity.Quantities +import javax.measure.quantity.ElectricPotential + /** Parses voltage level elements */ object VoltLvlParser { diff --git a/src/main/scala/edu/ie3/simona/event/RuntimeEvent.scala b/src/main/scala/edu/ie3/simona/event/RuntimeEvent.scala index 23a3352e19..28d7ba1d08 100644 --- a/src/main/scala/edu/ie3/simona/event/RuntimeEvent.scala +++ b/src/main/scala/edu/ie3/simona/event/RuntimeEvent.scala @@ -14,7 +14,7 @@ object RuntimeEvent { /** Indicates that all required agents and services are currently being * initialized for simulation */ - final case object Initializing extends RuntimeEvent + case object Initializing extends RuntimeEvent /** Indicates that the scheduler has finished a pre-defined advancement in * ticks and is ready to carry out the next task. In contrast to the @@ -86,7 +86,7 @@ object RuntimeEvent { /** Indicates that a power flow calculation has failed. This event is not * forwarded to sinks, but rather counted in runtime statistics. */ - final case object PowerFlowFailed extends RuntimeEvent + case object PowerFlowFailed extends RuntimeEvent /** Indicates that an error occurred during the simulation, thereby preventing * continuation diff --git a/src/main/scala/edu/ie3/simona/event/listener/DeadLetterListener.scala b/src/main/scala/edu/ie3/simona/event/listener/DeadLetterListener.scala index 9bad9ed999..e25b0bfcf7 100644 --- a/src/main/scala/edu/ie3/simona/event/listener/DeadLetterListener.scala +++ b/src/main/scala/edu/ie3/simona/event/listener/DeadLetterListener.scala @@ -6,8 +6,8 @@ package edu.ie3.simona.event.listener -import org.apache.pekko.actor.{Actor, DeadLetter, Props} import com.typesafe.scalalogging.LazyLogging +import org.apache.pekko.actor.{Actor, DeadLetter, Props} /** Simply reads the message, it receives */ diff --git a/src/main/scala/edu/ie3/simona/event/listener/ResultEventListener.scala b/src/main/scala/edu/ie3/simona/event/listener/ResultEventListener.scala index 38539b2baa..27034533e9 100644 --- a/src/main/scala/edu/ie3/simona/event/listener/ResultEventListener.scala +++ b/src/main/scala/edu/ie3/simona/event/listener/ResultEventListener.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.event.listener -import org.apache.pekko.actor.typed.scaladsl.Behaviors -import org.apache.pekko.actor.typed.{Behavior, PostStop} import edu.ie3.datamodel.io.processor.result.ResultEntityProcessor import edu.ie3.datamodel.models.result.{NodeResult, ResultEntity} import edu.ie3.simona.agent.grid.GridResultsSupport.PartialTransformer3wResult @@ -24,6 +22,8 @@ import edu.ie3.simona.exceptions.{ import edu.ie3.simona.io.result._ import edu.ie3.simona.ontology.messages.StopMessage import edu.ie3.simona.util.ResultFileHierarchy +import org.apache.pekko.actor.typed.scaladsl.Behaviors +import org.apache.pekko.actor.typed.{Behavior, PostStop} import org.slf4j.Logger import scala.concurrent.ExecutionContext.Implicits.global @@ -41,7 +41,7 @@ object ResultEventListener extends Transformer3wResultSupport { private final case class Failed(ex: Exception) extends ResultMessage - private final case object StopTimeout extends ResultMessage + private case object StopTimeout extends ResultMessage /** [[ResultEventListener]] base data containing all information the listener * needs @@ -240,7 +240,7 @@ object ResultEventListener extends Transformer3wResultSupport { ctx.log.debug("NodeResults will be processed by a Kafka sink.") case _ => ctx.log.debug( - s"Events that will be processed: {}", + "Events that will be processed: {}", resultFileHierarchy.resultEntitiesToConsider .map(_.getSimpleName) .mkString(",") diff --git a/src/main/scala/edu/ie3/simona/event/listener/RuntimeEventListener.scala b/src/main/scala/edu/ie3/simona/event/listener/RuntimeEventListener.scala index a45fdd5f86..8ab3d07004 100644 --- a/src/main/scala/edu/ie3/simona/event/listener/RuntimeEventListener.scala +++ b/src/main/scala/edu/ie3/simona/event/listener/RuntimeEventListener.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.event.listener -import org.apache.pekko.actor.typed.{Behavior, PostStop} -import org.apache.pekko.actor.typed.scaladsl.Behaviors import edu.ie3.simona.config.SimonaConfig import edu.ie3.simona.event.RuntimeEvent import edu.ie3.simona.event.RuntimeEvent.PowerFlowFailed @@ -19,6 +17,8 @@ import edu.ie3.simona.io.runtime.{ RuntimeEventSink } import edu.ie3.util.TimeUtil +import org.apache.pekko.actor.typed.scaladsl.Behaviors +import org.apache.pekko.actor.typed.{Behavior, PostStop} import org.slf4j.Logger import java.util.concurrent.BlockingQueue diff --git a/src/main/scala/edu/ie3/simona/event/listener/SimonaListenerWithFilter.scala b/src/main/scala/edu/ie3/simona/event/listener/SimonaListenerWithFilter.scala index 8d09e63c0a..050bc006fc 100644 --- a/src/main/scala/edu/ie3/simona/event/listener/SimonaListenerWithFilter.scala +++ b/src/main/scala/edu/ie3/simona/event/listener/SimonaListenerWithFilter.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.event.listener -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.event.Event import edu.ie3.simona.logging.SimonaActorLogging +import org.apache.pekko.actor.ActorRef /** Implementations can be registered at simulation setup and will then receive * and process [[Event]] s from other Actors diff --git a/src/main/scala/edu/ie3/simona/event/listener/Transformer3wResultSupport.scala b/src/main/scala/edu/ie3/simona/event/listener/Transformer3wResultSupport.scala index 5eb68a5653..2febb8883a 100644 --- a/src/main/scala/edu/ie3/simona/event/listener/Transformer3wResultSupport.scala +++ b/src/main/scala/edu/ie3/simona/event/listener/Transformer3wResultSupport.scala @@ -8,8 +8,8 @@ package edu.ie3.simona.event.listener import edu.ie3.datamodel.models.result.connector.Transformer3WResult import edu.ie3.simona.agent.grid.GridResultsSupport.PartialTransformer3wResult -import tech.units.indriya.quantity.Quantities import edu.ie3.util.quantities.PowerSystemUnits +import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units import java.time.ZonedDateTime @@ -118,7 +118,7 @@ private[listener] trait Transformer3wResultSupport { } } - final object AggregatedTransformer3wResult { + object AggregatedTransformer3wResult { val EMPTY: AggregatedTransformer3wResult = AggregatedTransformer3wResult(None, None, None) } diff --git a/src/main/scala/edu/ie3/simona/event/notifier/Notifier.scala b/src/main/scala/edu/ie3/simona/event/notifier/Notifier.scala index 916a97f9cb..419ad4baab 100644 --- a/src/main/scala/edu/ie3/simona/event/notifier/Notifier.scala +++ b/src/main/scala/edu/ie3/simona/event/notifier/Notifier.scala @@ -6,8 +6,8 @@ package edu.ie3.simona.event.notifier -import org.apache.pekko.actor.{Actor, ActorRef} import edu.ie3.simona.event.Event +import org.apache.pekko.actor.{Actor, ActorRef} trait Notifier extends Actor { diff --git a/src/main/scala/edu/ie3/simona/exceptions/CharacteristicsException.scala b/src/main/scala/edu/ie3/simona/exceptions/CharacteristicsException.scala index 7bd3b4a839..e5e0989d68 100644 --- a/src/main/scala/edu/ie3/simona/exceptions/CharacteristicsException.scala +++ b/src/main/scala/edu/ie3/simona/exceptions/CharacteristicsException.scala @@ -6,10 +6,8 @@ package edu.ie3.simona.exceptions -import edu.ie3.simona.model.system.Characteristic - /** Exception that should be used whenever an exception occurs in - * [[Characteristic]] + * [[edu.ie3.simona.model.system.Characteristic]] * * @param message * specific error message diff --git a/src/main/scala/edu/ie3/simona/io/result/ResultEntityCsvSink.scala b/src/main/scala/edu/ie3/simona/io/result/ResultEntityCsvSink.scala index 304dfde6a6..bc2e35446d 100644 --- a/src/main/scala/edu/ie3/simona/io/result/ResultEntityCsvSink.scala +++ b/src/main/scala/edu/ie3/simona/io/result/ResultEntityCsvSink.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.io.result -import org.apache.pekko.stream.IOResult import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.exceptions.EntityProcessorException import edu.ie3.datamodel.io.processor.result.ResultEntityProcessor @@ -14,6 +13,7 @@ import edu.ie3.datamodel.models.result.ResultEntity import edu.ie3.simona.exceptions.ProcessResultEventException import edu.ie3.util.StringUtils import edu.ie3.util.io.FileIOUtils +import org.apache.pekko.stream.IOResult import java.io.{BufferedWriter, File, FileWriter, Writer} import java.lang diff --git a/src/main/scala/edu/ie3/simona/io/result/ResultSinkType.scala b/src/main/scala/edu/ie3/simona/io/result/ResultSinkType.scala index d4c444fdd7..5966caf3ef 100644 --- a/src/main/scala/edu/ie3/simona/io/result/ResultSinkType.scala +++ b/src/main/scala/edu/ie3/simona/io/result/ResultSinkType.scala @@ -61,7 +61,7 @@ object ResultSinkType { ) case None => throw new IllegalArgumentException( - s"No sinks defined! Cannot determine the sink type!" + "No sinks defined! Cannot determine the sink type!" ) case unknown => throw new IllegalArgumentException( diff --git a/src/main/scala/edu/ie3/simona/logging/SimonaLogging.scala b/src/main/scala/edu/ie3/simona/logging/SimonaLogging.scala index 5cb449ab3d..38f71ac217 100644 --- a/src/main/scala/edu/ie3/simona/logging/SimonaLogging.scala +++ b/src/main/scala/edu/ie3/simona/logging/SimonaLogging.scala @@ -6,6 +6,7 @@ package edu.ie3.simona.logging +import edu.ie3.simona.actor.SimonaActorNaming import org.apache.pekko.actor.{Actor, ActorSystem, ExtendedActorSystem} import org.apache.pekko.event.{ LogSource, @@ -13,7 +14,6 @@ import org.apache.pekko.event.{ LoggingBus, LoggingFilter } -import edu.ie3.simona.actor.SimonaActorNaming private[logging] trait SimonaLogging { this: Actor => diff --git a/src/main/scala/edu/ie3/simona/logging/logback/LogbackConfiguration.scala b/src/main/scala/edu/ie3/simona/logging/logback/LogbackConfiguration.scala index 8aa16d5174..078e2f9384 100644 --- a/src/main/scala/edu/ie3/simona/logging/logback/LogbackConfiguration.scala +++ b/src/main/scala/edu/ie3/simona/logging/logback/LogbackConfiguration.scala @@ -10,9 +10,9 @@ import ch.qos.logback.classic.LoggerContext import ch.qos.logback.classic.encoder.PatternLayoutEncoder import ch.qos.logback.classic.filter.ThresholdFilter import ch.qos.logback.classic.spi.ILoggingEvent -import ch.qos.logback.core.rolling.RollingFileAppender import ch.qos.logback.core.FileAppender import ch.qos.logback.core.filter.Filter +import ch.qos.logback.core.rolling.RollingFileAppender import com.typesafe.scalalogging.LazyLogging import org.slf4j.LoggerFactory diff --git a/src/main/scala/edu/ie3/simona/main/RunSimona.scala b/src/main/scala/edu/ie3/simona/main/RunSimona.scala index 449a16df25..fa85fb4f09 100644 --- a/src/main/scala/edu/ie3/simona/main/RunSimona.scala +++ b/src/main/scala/edu/ie3/simona/main/RunSimona.scala @@ -6,15 +6,14 @@ package edu.ie3.simona.main -import java.util.Locale - -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.pattern.gracefulStop -import org.apache.pekko.util.Timeout import com.typesafe.scalalogging.LazyLogging import edu.ie3.simona.sim.setup.SimonaSetup import edu.ie3.util.scala.quantities.QuantityUtil +import org.apache.pekko.actor.ActorRef +import org.apache.pekko.pattern.gracefulStop +import org.apache.pekko.util.Timeout +import java.util.Locale import scala.concurrent.Future import scala.concurrent.duration.FiniteDuration import scala.util.Random diff --git a/src/main/scala/edu/ie3/simona/main/RunSimonaStandalone.scala b/src/main/scala/edu/ie3/simona/main/RunSimonaStandalone.scala index 5a8bee6d2e..7e815c3f6f 100644 --- a/src/main/scala/edu/ie3/simona/main/RunSimonaStandalone.scala +++ b/src/main/scala/edu/ie3/simona/main/RunSimonaStandalone.scala @@ -6,21 +6,19 @@ package edu.ie3.simona.main -import org.apache.pekko.actor.ActorSystem - -import java.util.concurrent.TimeUnit -import org.apache.pekko.pattern.ask -import org.apache.pekko.util.Timeout import edu.ie3.simona.config.{ArgsParser, ConfigFailFast, SimonaConfig} import edu.ie3.simona.sim.SimMessage.{ InitSim, SimulationFailure, - SimulationSuccessful, - StartSimulation + SimulationSuccessful } import edu.ie3.simona.sim.SimonaSim import edu.ie3.simona.sim.setup.SimonaStandaloneSetup +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.pattern.ask +import org.apache.pekko.util.Timeout +import java.util.concurrent.TimeUnit import scala.concurrent.Await /** Run a standalone simulation of simona diff --git a/src/main/scala/edu/ie3/simona/model/SystemComponent.scala b/src/main/scala/edu/ie3/simona/model/SystemComponent.scala index a81c235bf9..389b01d456 100644 --- a/src/main/scala/edu/ie3/simona/model/SystemComponent.scala +++ b/src/main/scala/edu/ie3/simona/model/SystemComponent.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.model -import java.time.ZonedDateTime -import java.util.UUID - import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.OperationTime import edu.ie3.simona.exceptions.{ @@ -18,6 +15,8 @@ import edu.ie3.simona.exceptions.{ import edu.ie3.simona.util.TickUtil._ import edu.ie3.util.scala.OperationInterval +import java.time.ZonedDateTime +import java.util.UUID import scala.jdk.OptionConverters._ import scala.util.{Failure, Success, Try} diff --git a/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala b/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala index fd1ea11df2..f350d33f32 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala @@ -179,7 +179,7 @@ case object GridModel { admittanceMatrix ) ) - throw new RuntimeException(s"Admittance matrix is illegal.") + throw new RuntimeException("Admittance matrix is illegal.") else admittanceMatrix } diff --git a/src/main/scala/edu/ie3/simona/model/grid/LineModel.scala b/src/main/scala/edu/ie3/simona/model/grid/LineModel.scala index 8ca2b2f0a9..7edf28d60a 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/LineModel.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/LineModel.scala @@ -288,25 +288,25 @@ case object LineModel extends LazyLogging { if (lineType.getR.getValue.doubleValue() <= 0) throw new InvalidGridException( s"Resistance r of lineType ${lineType.getUuid} used in line ${lineInput.getUuid} is 0 or smaller, " + - s"which is not allowed! Please correct parameters!" + "which is not allowed! Please correct parameters!" ) if (lineType.getX.getValue.doubleValue() <= 0) throw new InvalidGridException( s"Reactance x of lineType ${lineType.getUuid} used in line ${lineInput.getUuid} is 0 or smaller," + - s" which is not allowed! Please correct parameters!" + " which is not allowed! Please correct parameters!" ) if (lineType.getB.getValue.doubleValue() < 0) throw new InvalidGridException( s"Susceptance b of lineType ${lineType.getUuid} used in line ${lineInput.getUuid} is smaller " + - s"than 0, which is not allowed! Please correct parameters!" + "than 0, which is not allowed! Please correct parameters!" ) if (lineType.getG.getValue.doubleValue() < 0) throw new InvalidGridException( s"Conductance g of lineType ${lineType.getUuid} used in line ${lineInput.getUuid} is smaller " + - s"than 0, which is not allowed! Please correct parameters!" + "than 0, which is not allowed! Please correct parameters!" ) } diff --git a/src/main/scala/edu/ie3/simona/model/grid/SwitchModel.scala b/src/main/scala/edu/ie3/simona/model/grid/SwitchModel.scala index 49d1d73402..3e81510256 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/SwitchModel.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/SwitchModel.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.model.grid -import java.time.ZonedDateTime -import java.util.UUID import edu.ie3.datamodel.exceptions.InvalidGridException import edu.ie3.datamodel.models.input.connector.SwitchInput import edu.ie3.simona.exceptions.InvalidActionRequestException @@ -15,6 +13,8 @@ import edu.ie3.simona.model.SystemComponent import edu.ie3.simona.util.SimonaConstants import edu.ie3.util.scala.OperationInterval +import java.time.ZonedDateTime +import java.util.UUID import scala.util.{Failure, Success, Try} /** This model represents an electric power switch diff --git a/src/main/scala/edu/ie3/simona/model/grid/TransformerModel.scala b/src/main/scala/edu/ie3/simona/model/grid/TransformerModel.scala index e7f7abf08f..49c4ecffa8 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/TransformerModel.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/TransformerModel.scala @@ -288,7 +288,7 @@ case object TransformerModel { s"The rated voltage of the high voltage side (${transformerInput.getType.getvRatedA()}) of transformer " + s"${transformerInput.getUuid} is closer to the reference voltage ($vRef), as the rated voltage of the " + s"low voltage side (${transformerInput.getType.getvRatedB()}). Is the transformer connected the right way " + - s"round?" + "round?" ) // valid r,x,g,b values? diff --git a/src/main/scala/edu/ie3/simona/model/grid/TransformerTapping.scala b/src/main/scala/edu/ie3/simona/model/grid/TransformerTapping.scala index 5337e0c829..fd5abd8d43 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/TransformerTapping.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/TransformerTapping.scala @@ -7,9 +7,10 @@ package edu.ie3.simona.model.grid import edu.ie3.util.quantities.PowerSystemUnits._ +import tech.units.indriya.quantity.Quantities + import javax.measure.Quantity import javax.measure.quantity.Dimensionless -import tech.units.indriya.quantity.Quantities /** should be mixed into every transformer model that is capable of transformer * tapping. Currently mixed into [[TransformerModel]] and diff --git a/src/main/scala/edu/ie3/simona/model/grid/TransformerTappingModel.scala b/src/main/scala/edu/ie3/simona/model/grid/TransformerTappingModel.scala index a40e4a5568..5e47546c4d 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/TransformerTappingModel.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/TransformerTappingModel.scala @@ -11,10 +11,10 @@ import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.input.connector.ConnectorPort import edu.ie3.simona.exceptions.InvalidActionRequestException import edu.ie3.util.quantities.PowerSystemUnits._ +import tech.units.indriya.quantity.Quantities import javax.measure.Quantity import javax.measure.quantity.Dimensionless -import tech.units.indriya.quantity.Quantities /** Holds all functions a transformer with tapping control is capable of. If * used by a transformer model, it is recommended to be used via diff --git a/src/main/scala/edu/ie3/simona/model/participant/ChpModel.scala b/src/main/scala/edu/ie3/simona/model/participant/ChpModel.scala index a335e696bb..5b5baa8924 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/ChpModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/ChpModel.scala @@ -14,9 +14,8 @@ import edu.ie3.simona.model.thermal.{MutableStorage, ThermalStorage} import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.OperationInterval import edu.ie3.util.scala.quantities.DefaultQuantities - -import squants.{Energy, Power, Seconds, Time} import squants.energy.{KilowattHours, Kilowatts} +import squants.{Energy, Power, Seconds, Time} import java.util.UUID diff --git a/src/main/scala/edu/ie3/simona/model/participant/FixedFeedInModel.scala b/src/main/scala/edu/ie3/simona/model/participant/FixedFeedInModel.scala index 89fd5096ce..dd3bf8b55c 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/FixedFeedInModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/FixedFeedInModel.scala @@ -15,7 +15,6 @@ import edu.ie3.simona.model.participant.CalcRelevantData.FixedRelevantData import edu.ie3.simona.model.participant.control.QControl import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.OperationInterval - import squants.Power import squants.energy.Kilowatts diff --git a/src/main/scala/edu/ie3/simona/model/participant/HpModel.scala b/src/main/scala/edu/ie3/simona/model/participant/HpModel.scala index 61b73df7f3..cad3342a15 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/HpModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/HpModel.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.model.participant -import java.util.UUID import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPowerAndHeat import edu.ie3.simona.model.SystemComponent @@ -17,11 +16,11 @@ import edu.ie3.simona.util.TickUtil.TickLong import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.OperationInterval import edu.ie3.util.scala.quantities.DefaultQuantities - import squants.energy.Kilowatts import squants.{Power, Temperature, Time} import java.time.ZonedDateTime +import java.util.UUID /** Model of a heat pump (HP) with a [[ThermalHouse]] medium and its current * [[HpState]]. diff --git a/src/main/scala/edu/ie3/simona/model/participant/SystemParticipant.scala b/src/main/scala/edu/ie3/simona/model/participant/SystemParticipant.scala index e8bbf14c5a..284210fe46 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/SystemParticipant.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/SystemParticipant.scala @@ -186,7 +186,7 @@ abstract class SystemParticipant[ s"The var characteristics \'$qControl\' of model \'$id\' ($uuid) imposes an apparent " + s"power (= $apparentPower) that exceeds " + s"rated apparent power specifications (= $sMax). " + - s"Therefore, setting reactive power output to the to the upper limit " + + "Therefore, setting reactive power output to the to the upper limit " + s"in correspondence to the existing active power $activePower." ) @@ -195,7 +195,7 @@ abstract class SystemParticipant[ if (powerSquaredDifference < 0) { logger.warn( - s"Active power of model exceeds sRated. Set reactive power to 0!" + "Active power of model exceeds sRated. Set reactive power to 0!" ) Megavars(0d) } else { diff --git a/src/main/scala/edu/ie3/simona/model/participant/WecModel.scala b/src/main/scala/edu/ie3/simona/model/participant/WecModel.scala index ca1719dbb0..0dcd1a8a7c 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/WecModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/WecModel.scala @@ -19,12 +19,12 @@ import edu.ie3.simona.model.system.Characteristic import edu.ie3.simona.model.system.Characteristic.XYPair import edu.ie3.util.quantities.PowerSystemUnits._ import edu.ie3.util.scala.OperationInterval +import squants._ import squants.energy.{Kilowatts, Watts} import squants.mass.{Kilograms, KilogramsPerCubicMeter} import squants.motion.{MetersPerSecond, Pressure} import squants.space.SquareMeters import squants.thermal.JoulesPerKelvin -import squants._ import tech.units.indriya.unit.Units._ import java.time.ZonedDateTime diff --git a/src/main/scala/edu/ie3/simona/model/participant/control/QControl.scala b/src/main/scala/edu/ie3/simona/model/participant/control/QControl.scala index 02c42be94f..ea38a09136 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/control/QControl.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/control/QControl.scala @@ -14,7 +14,6 @@ import edu.ie3.simona.model.system.Characteristic.XYPair import edu.ie3.util.quantities.PowerSystemUnits.PU import edu.ie3.util.scala.quantities.{Megavars, ReactivePower} import squants.{Dimensionless, Each, Power} -import tech.units.indriya.AbstractUnit import scala.collection.SortedSet import scala.collection.immutable.TreeSet diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/LoadModel.scala b/src/main/scala/edu/ie3/simona/model/participant/load/LoadModel.scala index 6844fef7ff..3db9c720f5 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/LoadModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/LoadModel.scala @@ -9,18 +9,16 @@ package edu.ie3.simona.model.participant.load import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.input.system.LoadInput import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPower -import edu.ie3.simona.config.SimonaConfig -import edu.ie3.simona.model.SystemComponent import edu.ie3.simona.model.participant.CalcRelevantData.LoadRelevantData +import edu.ie3.simona.model.participant.control.QControl import edu.ie3.simona.model.participant.{ ApparentPowerParticipant, SystemParticipant } -import edu.ie3.simona.model.participant.control.QControl import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.OperationInterval -import squants.{Energy, Power} import squants.energy.Megawatts +import squants.{Energy, Power} import java.util.UUID diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileKey.scala b/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileKey.scala index cb3cb60e90..50622d8f05 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileKey.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileKey.scala @@ -6,12 +6,13 @@ package edu.ie3.simona.model.participant.load.profile -import java.time.ZonedDateTime import edu.ie3.datamodel.exceptions.ParsingException import edu.ie3.datamodel.models.profile.StandardLoadProfile import edu.ie3.simona.model.participant.load import edu.ie3.simona.model.participant.load.{DayType, profile} +import java.time.ZonedDateTime + /** A key describing a load profile, consisting of consumer type, a season and a * day type. Is used to store load profile values for a single type. * diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileStore.scala b/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileStore.scala index 8c3769a9cf..ecd6d1b715 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileStore.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/profile/LoadProfileStore.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.model.participant.load.profile -import java.io.{InputStreamReader, Reader} -import java.time.{Duration, ZonedDateTime} -import java.util - import breeze.numerics.round import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.profile.{ @@ -24,11 +20,12 @@ import edu.ie3.simona.model.participant.load.{DayType, profile} import org.apache.commons.csv.CSVFormat import squants.energy.{KilowattHours, Watts} +import java.io.{InputStreamReader, Reader} +import java.time.{Duration, ZonedDateTime} +import java.util import scala.jdk.CollectionConverters._ -import scala.math.pow - -// needs to be imported for max function import scala.math.Ordering.Double.IeeeOrdering +import scala.math.pow /** Storage for a collection of standard load profiles. It is assumed, that each * entry is given in W - which especially holds true for the standard load diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala b/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala index 77782e4907..3987130c68 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala @@ -6,8 +6,8 @@ package edu.ie3.simona.model.participant.load.profile -import edu.ie3.datamodel.models.profile.StandardLoadProfile import edu.ie3.datamodel.models.input.system.LoadInput +import edu.ie3.datamodel.models.profile.StandardLoadProfile import edu.ie3.simona.model.participant.CalcRelevantData.LoadRelevantData import edu.ie3.simona.model.participant.control.QControl import edu.ie3.simona.model.participant.load.LoadReference._ diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/profile/TypeDayProfile.scala b/src/main/scala/edu/ie3/simona/model/participant/load/profile/TypeDayProfile.scala index dd2fcb6a18..8898733505 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/profile/TypeDayProfile.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/profile/TypeDayProfile.scala @@ -6,11 +6,9 @@ package edu.ie3.simona.model.participant.load.profile -import java.time.ZonedDateTime - import edu.ie3.util.TimeUtil -// needs to be imported for max function +import java.time.ZonedDateTime import scala.math.Ordering.Double.IeeeOrdering /** Stores a slice of load profile data, that comprises a whole day (96 quarter diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/random/RandomLoadParamStore.scala b/src/main/scala/edu/ie3/simona/model/participant/load/random/RandomLoadParamStore.scala index 44f481eafe..4a773f7f5a 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/random/RandomLoadParamStore.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/random/RandomLoadParamStore.scala @@ -6,14 +6,14 @@ package edu.ie3.simona.model.participant.load.random -import java.io.{InputStreamReader, Reader} -import java.time.{Duration, ZonedDateTime} import com.typesafe.scalalogging.LazyLogging import edu.ie3.simona.exceptions.FileIOException import edu.ie3.simona.model.participant.load.DayType import edu.ie3.simona.model.participant.load.random.RandomLoadParamStore.initializeDayTypeValues import org.apache.commons.csv.{CSVFormat, CSVRecord} +import java.io.{InputStreamReader, Reader} +import java.time.{Duration, ZonedDateTime} import scala.jdk.CollectionConverters._ /** Storage for a collection of random load parameters. diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/random/TypeDayParameters.scala b/src/main/scala/edu/ie3/simona/model/participant/load/random/TypeDayParameters.scala index 36360ff600..51ce6381b6 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/random/TypeDayParameters.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/random/TypeDayParameters.scala @@ -6,11 +6,10 @@ package edu.ie3.simona.model.participant.load.random -import java.time.ZonedDateTime - -import edu.ie3.simona.model.participant.load.DayType import edu.ie3.util.TimeUtil +import java.time.ZonedDateTime + /** Stores a slice of random load parameters, that comprises a whole day (96 * quarter hours). The data describes a typical day, that can unequivocally be * identified by it's [[DayType]]. diff --git a/src/main/scala/edu/ie3/simona/model/thermal/CylindricalThermalStorage.scala b/src/main/scala/edu/ie3/simona/model/thermal/CylindricalThermalStorage.scala index afe5372a0c..b189f43b42 100644 --- a/src/main/scala/edu/ie3/simona/model/thermal/CylindricalThermalStorage.scala +++ b/src/main/scala/edu/ie3/simona/model/thermal/CylindricalThermalStorage.scala @@ -19,9 +19,9 @@ import edu.ie3.util.scala.quantities.{ KilowattHoursPerKelvinCubicMeters, SpecificHeatCapacity } -import squants.{Energy, Temperature, Volume} import squants.space.CubicMeters import squants.thermal.Celsius +import squants.{Energy, Temperature, Volume} import tech.units.indriya.unit.Units import java.util.UUID diff --git a/src/main/scala/edu/ie3/simona/model/thermal/ThermalSink.scala b/src/main/scala/edu/ie3/simona/model/thermal/ThermalSink.scala index 9b46902d8f..99f7f959ee 100644 --- a/src/main/scala/edu/ie3/simona/model/thermal/ThermalSink.scala +++ b/src/main/scala/edu/ie3/simona/model/thermal/ThermalSink.scala @@ -6,12 +6,12 @@ package edu.ie3.simona.model.thermal -import java.util.UUID - import edu.ie3.datamodel.models.OperationTime import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.thermal.ThermalBusInput +import java.util.UUID + /** Thermal sink model. * * @param uuid diff --git a/src/main/scala/edu/ie3/simona/model/thermal/ThermalStorage.scala b/src/main/scala/edu/ie3/simona/model/thermal/ThermalStorage.scala index 87b9b9c2f9..501c94d4eb 100644 --- a/src/main/scala/edu/ie3/simona/model/thermal/ThermalStorage.scala +++ b/src/main/scala/edu/ie3/simona/model/thermal/ThermalStorage.scala @@ -6,13 +6,14 @@ package edu.ie3.simona.model.thermal -import java.util.UUID import edu.ie3.datamodel.models.OperationTime import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.thermal.ThermalBusInput import squants.Energy import squants.energy.WattHours +import java.util.UUID + /** Thermal storage model. * * @param uuid diff --git a/src/main/scala/edu/ie3/simona/ontology/GridAgentHierarchy.scala b/src/main/scala/edu/ie3/simona/ontology/GridAgentHierarchy.scala index 5bcb5e917d..5265e5beca 100644 --- a/src/main/scala/edu/ie3/simona/ontology/GridAgentHierarchy.scala +++ b/src/main/scala/edu/ie3/simona/ontology/GridAgentHierarchy.scala @@ -15,10 +15,10 @@ sealed trait GridAgentHierarchy */ object GridAgentHierarchy { - final case object Superior extends GridAgentHierarchy + case object Superior extends GridAgentHierarchy - final case object Centrum extends GridAgentHierarchy + case object Centrum extends GridAgentHierarchy - final case object Inferior extends GridAgentHierarchy + case object Inferior extends GridAgentHierarchy } diff --git a/src/main/scala/edu/ie3/simona/ontology/messages/PowerMessage.scala b/src/main/scala/edu/ie3/simona/ontology/messages/PowerMessage.scala index d82961cd5a..efd3000da2 100644 --- a/src/main/scala/edu/ie3/simona/ontology/messages/PowerMessage.scala +++ b/src/main/scala/edu/ie3/simona/ontology/messages/PowerMessage.scala @@ -112,6 +112,6 @@ object PowerMessage { /** Indicate that the power flow calculation failed, as a reply to a * [[RequestGridPowerMessage]]. */ - final case object FailedPowerFlow extends PowerResponseMessage + case object FailedPowerFlow extends PowerResponseMessage } diff --git a/src/main/scala/edu/ie3/simona/ontology/messages/SchedulerMessage.scala b/src/main/scala/edu/ie3/simona/ontology/messages/SchedulerMessage.scala index 866cae63a8..5b81050823 100644 --- a/src/main/scala/edu/ie3/simona/ontology/messages/SchedulerMessage.scala +++ b/src/main/scala/edu/ie3/simona/ontology/messages/SchedulerMessage.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.ontology.messages -import org.apache.pekko.actor.typed.ActorRef import edu.ie3.simona.scheduler.ScheduleLock.ScheduleKey import edu.ie3.simona.scheduler.{Scheduler, TimeAdvancer} +import org.apache.pekko.actor.typed.ActorRef trait SchedulerMessage extends Scheduler.Incoming with TimeAdvancer.Incoming diff --git a/src/main/scala/edu/ie3/simona/ontology/messages/VoltageMessage.scala b/src/main/scala/edu/ie3/simona/ontology/messages/VoltageMessage.scala index 3c836b599d..2b58520972 100644 --- a/src/main/scala/edu/ie3/simona/ontology/messages/VoltageMessage.scala +++ b/src/main/scala/edu/ie3/simona/ontology/messages/VoltageMessage.scala @@ -7,9 +7,9 @@ package edu.ie3.simona.ontology.messages import edu.ie3.simona.ontology.messages.VoltageMessage.ProvideSlackVoltageMessage.ExchangeVoltage +import squants.electro.ElectricPotential import java.util.UUID -import squants.electro.ElectricPotential sealed trait VoltageMessage diff --git a/src/main/scala/edu/ie3/simona/ontology/messages/services/ServiceMessage.scala b/src/main/scala/edu/ie3/simona/ontology/messages/services/ServiceMessage.scala index 6d31cd8a8a..abc52eef90 100644 --- a/src/main/scala/edu/ie3/simona/ontology/messages/services/ServiceMessage.scala +++ b/src/main/scala/edu/ie3/simona/ontology/messages/services/ServiceMessage.scala @@ -6,11 +6,11 @@ package edu.ie3.simona.ontology.messages.services +import edu.ie3.simona.agent.participant.data.Data +import edu.ie3.simona.scheduler.ScheduleLock.ScheduleKey import org.apache.pekko.actor.ActorRef import java.util.UUID -import edu.ie3.simona.agent.participant.data.Data -import edu.ie3.simona.scheduler.ScheduleLock.ScheduleKey /** Collections of all messages, that are send to and from the different * services diff --git a/src/main/scala/edu/ie3/simona/scheduler/RuntimeNotifier.scala b/src/main/scala/edu/ie3/simona/scheduler/RuntimeNotifier.scala index f80011fb2f..89d66904a2 100644 --- a/src/main/scala/edu/ie3/simona/scheduler/RuntimeNotifier.scala +++ b/src/main/scala/edu/ie3/simona/scheduler/RuntimeNotifier.scala @@ -6,11 +6,11 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.typed.ActorRef import edu.ie3.simona.event.RuntimeEvent import edu.ie3.simona.event.RuntimeEvent._ import edu.ie3.simona.scheduler.RuntimeNotifier.now import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.ActorRef /** Determines runtime events at different stages of the simulation and notifies * listeners diff --git a/src/main/scala/edu/ie3/simona/scheduler/ScheduleLock.scala b/src/main/scala/edu/ie3/simona/scheduler/ScheduleLock.scala index e9ca91c0d1..6a2ec90948 100644 --- a/src/main/scala/edu/ie3/simona/scheduler/ScheduleLock.scala +++ b/src/main/scala/edu/ie3/simona/scheduler/ScheduleLock.scala @@ -6,14 +6,14 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorContextOps -import org.apache.pekko.actor.typed.scaladsl.{ActorContext, Behaviors} -import org.apache.pekko.actor.typed.{ActorRef, Behavior, Scheduler} import edu.ie3.simona.ontology.messages.SchedulerMessage.{ Completion, ScheduleActivation } import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorContextOps +import org.apache.pekko.actor.typed.scaladsl.{ActorContext, Behaviors} +import org.apache.pekko.actor.typed.{ActorRef, Behavior} import java.util.UUID @@ -29,7 +29,7 @@ object ScheduleLock { private final case class Init(adapter: ActorRef[Activation]) extends LockMsg - private final case object LockActivation extends LockMsg + private case object LockActivation extends LockMsg /** @param key * the key that unlocks (part of) the lock diff --git a/src/main/scala/edu/ie3/simona/scheduler/Scheduler.scala b/src/main/scala/edu/ie3/simona/scheduler/Scheduler.scala index 455cc0c20f..69981a9224 100644 --- a/src/main/scala/edu/ie3/simona/scheduler/Scheduler.scala +++ b/src/main/scala/edu/ie3/simona/scheduler/Scheduler.scala @@ -6,15 +6,15 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.typed.scaladsl.Behaviors -import org.apache.pekko.actor.typed.{ActorRef, Behavior} import edu.ie3.simona.actor.ActorUtil.stopOnError -import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.simona.ontology.messages.SchedulerMessage.{ Completion, ScheduleActivation } +import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.simona.scheduler.SchedulerData.ActivationData +import org.apache.pekko.actor.typed.scaladsl.Behaviors +import org.apache.pekko.actor.typed.{ActorRef, Behavior} /** Scheduler that activates actors at specific ticks and keeps them * synchronized by waiting for the completions of all activations. Can be diff --git a/src/main/scala/edu/ie3/simona/scheduler/SchedulerData.scala b/src/main/scala/edu/ie3/simona/scheduler/SchedulerData.scala index ddfb21c47e..c60e8e47c9 100644 --- a/src/main/scala/edu/ie3/simona/scheduler/SchedulerData.scala +++ b/src/main/scala/edu/ie3/simona/scheduler/SchedulerData.scala @@ -6,10 +6,10 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor -import org.apache.pekko.actor.typed.ActorRef import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.util.scala.collection.mutable.PriorityMultiBiSet +import org.apache.pekko.actor +import org.apache.pekko.actor.typed.ActorRef import scala.collection.mutable diff --git a/src/main/scala/edu/ie3/simona/scheduler/TimeAdvancer.scala b/src/main/scala/edu/ie3/simona/scheduler/TimeAdvancer.scala index 5931cbb08a..7f34abfc49 100644 --- a/src/main/scala/edu/ie3/simona/scheduler/TimeAdvancer.scala +++ b/src/main/scala/edu/ie3/simona/scheduler/TimeAdvancer.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.typed.scaladsl.{ActorContext, Behaviors} -import org.apache.pekko.actor.typed.{ActorRef, Behavior} import edu.ie3.simona.actor.ActorUtil.stopOnError import edu.ie3.simona.event.RuntimeEvent import edu.ie3.simona.ontology.messages.Activation @@ -17,6 +15,8 @@ import edu.ie3.simona.ontology.messages.SchedulerMessage.{ } import edu.ie3.simona.sim.SimMessage.{SimulationFailure, SimulationSuccessful} import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.scaladsl.{ActorContext, Behaviors} +import org.apache.pekko.actor.typed.{ActorRef, Behavior} /** Unit that is in control of time advancement within the simulation. * Represents the root entity of any scheduler hierarchy. diff --git a/src/main/scala/edu/ie3/simona/service/SimonaService.scala b/src/main/scala/edu/ie3/simona/service/SimonaService.scala index 89d60e57c4..d0be926e2b 100644 --- a/src/main/scala/edu/ie3/simona/service/SimonaService.scala +++ b/src/main/scala/edu/ie3/simona/service/SimonaService.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.service -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{Actor, ActorContext, ActorRef, Stash} import edu.ie3.simona.logging.SimonaActorLogging import edu.ie3.simona.ontology.messages.Activation import edu.ie3.simona.ontology.messages.SchedulerMessage.{ @@ -23,6 +21,8 @@ import edu.ie3.simona.service.ServiceStateData.{ } import edu.ie3.simona.service.SimonaService.Create import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{Actor, ActorContext, ActorRef, Stash} import scala.util.{Failure, Success, Try} @@ -100,8 +100,8 @@ abstract class SimonaService[ // initialize service trigger with invalid data log.error( "Error during service initialization." + - s"\nReceivedData: {}" + - s"\nException: {}", + "\nReceivedData: {}" + + "\nException: {}", initializeStateData, exception ) diff --git a/src/main/scala/edu/ie3/simona/service/ev/ExtEvDataService.scala b/src/main/scala/edu/ie3/simona/service/ev/ExtEvDataService.scala index 4bd2975747..43809626ef 100644 --- a/src/main/scala/edu/ie3/simona/service/ev/ExtEvDataService.scala +++ b/src/main/scala/edu/ie3/simona/service/ev/ExtEvDataService.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.service.ev -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorContext, ActorRef, Props} import edu.ie3.simona.api.data.ev.ExtEvData import edu.ie3.simona.api.data.ev.model.EvModel import edu.ie3.simona.api.data.ev.ontology._ @@ -27,6 +25,8 @@ import edu.ie3.simona.service.ev.ExtEvDataService.{ InitExtEvData } import edu.ie3.simona.service.{ExtDataSupport, ServiceStateData, SimonaService} +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorContext, ActorRef, Props} import java.util.UUID import scala.jdk.CollectionConverters._ diff --git a/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceProxy.scala b/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceProxy.scala index 95103e347e..8fecdc261b 100644 --- a/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceProxy.scala +++ b/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceProxy.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.service.primary -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{Actor, ActorRef, PoisonPill, Props} import edu.ie3.datamodel.io.connectors.SqlConnector import edu.ie3.datamodel.io.csv.CsvIndividualTimeSeriesMetaInformation import edu.ie3.datamodel.io.naming.timeseries.IndividualTimeSeriesMetaInformation @@ -47,7 +45,6 @@ import edu.ie3.simona.ontology.messages.services.ServiceMessage.{ WorkerRegistrationMessage } import edu.ie3.simona.scheduler.ScheduleLock -import edu.ie3.simona.service.{ServiceStateData, SimonaService} import edu.ie3.simona.service.ServiceStateData.InitializeServiceStateData import edu.ie3.simona.service.primary.PrimaryServiceProxy.{ InitPrimaryServiceProxyStateData, @@ -59,7 +56,10 @@ import edu.ie3.simona.service.primary.PrimaryServiceWorker.{ InitPrimaryServiceStateData, SqlInitPrimaryServiceStateData } +import edu.ie3.simona.service.{ServiceStateData, SimonaService} import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{Actor, ActorRef, PoisonPill, Props} import java.nio.file.Paths import java.text.SimpleDateFormat @@ -257,7 +257,7 @@ case class PrimaryServiceProxy( ) case None => log.debug( - s"There is no time series apparent for the model with uuid '{}'.", + "There is no time series apparent for the model with uuid '{}'.", modelUuid ) sender() ! RegistrationFailedMessage @@ -310,7 +310,7 @@ case class PrimaryServiceProxy( case Failure(exception) => log.warning( s"A failure occurred during spin-off of a primary source for time series '$timeSeriesUuid'. " + - s"Will inform the requesting actor, that registration is not possible.", + "Will inform the requesting actor, that registration is not possible.", exception ) requestingActor ! RegistrationFailedMessage @@ -583,7 +583,7 @@ object PrimaryServiceProxy { ) else if (sourceConfigs.isEmpty) throw new InvalidConfigParameterException( - s"No time series source type defined. Please define exactly one type!" + + "No time series source type defined. Please define exactly one type!" + s"\nAvailable types:\n\t${supportedSources.mkString("\n\t")}" ) else { diff --git a/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceWorker.scala b/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceWorker.scala index f7d7d58fb5..754b226399 100644 --- a/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceWorker.scala +++ b/src/main/scala/edu/ie3/simona/service/primary/PrimaryServiceWorker.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.service.primary -import org.apache.pekko.actor.{ActorContext, ActorRef, Props} import edu.ie3.datamodel.io.connectors.SqlConnector import edu.ie3.datamodel.io.factory.timeseries.TimeBasedSimpleValueFactory import edu.ie3.datamodel.io.naming.timeseries.ColumnScheme @@ -34,6 +33,7 @@ import edu.ie3.simona.service.primary.PrimaryServiceWorker.{ import edu.ie3.simona.service.{ServiceStateData, SimonaService} import edu.ie3.simona.util.TickUtil.{RichZonedDateTime, TickLong} import edu.ie3.util.scala.collection.immutable.SortedDistinctSeq +import org.apache.pekko.actor.{ActorContext, ActorRef, Props} import java.nio.file.Path import java.time.ZonedDateTime @@ -212,7 +212,7 @@ final case class PrimaryServiceWorker[V <: Value]( case None => /* There is no data available in the source. */ log.warning( - s"I expected to get data for tick '{}' ({}), but data is not available", + "I expected to get data for tick '{}' ({}), but data is not available", tick, wallClockTime ) diff --git a/src/main/scala/edu/ie3/simona/service/weather/SampleWeatherSource.scala b/src/main/scala/edu/ie3/simona/service/weather/SampleWeatherSource.scala index d8bf55443f..bbc6c65d56 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/SampleWeatherSource.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/SampleWeatherSource.scala @@ -14,12 +14,12 @@ import edu.ie3.simona.util.TickUtil._ import edu.ie3.util.geo.CoordinateDistance import edu.ie3.util.scala.quantities.WattsPerSquareMeter import org.locationtech.jts.geom.Point -import tech.units.indriya.ComparableQuantity -import tech.units.indriya.quantity.Quantities -import tech.units.indriya.unit.Units import squants.Kelvin import squants.motion.MetersPerSecond import squants.thermal.Celsius +import tech.units.indriya.ComparableQuantity +import tech.units.indriya.quantity.Quantities +import tech.units.indriya.unit.Units import java.time.ZonedDateTime import java.time.temporal.ChronoField.{HOUR_OF_DAY, MONTH_OF_YEAR, YEAR} diff --git a/src/main/scala/edu/ie3/simona/service/weather/WeatherService.scala b/src/main/scala/edu/ie3/simona/service/weather/WeatherService.scala index 12b2e6e2cb..0637de0299 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/WeatherService.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/WeatherService.scala @@ -6,9 +6,8 @@ package edu.ie3.simona.service.weather -import org.apache.pekko.actor.{ActorContext, ActorRef, Props} -import edu.ie3.simona.exceptions.InitializationException import edu.ie3.simona.config.SimonaConfig +import edu.ie3.simona.exceptions.InitializationException import edu.ie3.simona.exceptions.WeatherServiceException.InvalidRegistrationRequestException import edu.ie3.simona.ontology.messages.services.ServiceMessage.RegistrationResponseMessage.{ RegistrationFailedMessage, @@ -16,11 +15,11 @@ import edu.ie3.simona.ontology.messages.services.ServiceMessage.RegistrationResp } import edu.ie3.simona.ontology.messages.services.ServiceMessage.ServiceRegistrationMessage import edu.ie3.simona.ontology.messages.services.WeatherMessage._ -import edu.ie3.simona.service.SimonaService import edu.ie3.simona.service.ServiceStateData.{ InitializeServiceStateData, ServiceActivationBaseStateData } +import edu.ie3.simona.service.SimonaService import edu.ie3.simona.service.weather.WeatherService.{ InitWeatherServiceStateData, WeatherInitializedStateData @@ -32,6 +31,7 @@ import edu.ie3.simona.service.weather.WeatherSource.{ import edu.ie3.simona.util.SimonaConstants import edu.ie3.simona.util.TickUtil.RichZonedDateTime import edu.ie3.util.scala.collection.immutable.SortedDistinctSeq +import org.apache.pekko.actor.{ActorContext, ActorRef, Props} import java.time.ZonedDateTime import scala.util.{Failure, Success, Try} diff --git a/src/main/scala/edu/ie3/simona/service/weather/WeatherSource.scala b/src/main/scala/edu/ie3/simona/service/weather/WeatherSource.scala index 3a6961e321..180596259b 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/WeatherSource.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/WeatherSource.scala @@ -6,25 +6,25 @@ package edu.ie3.simona.service.weather +import edu.ie3.datamodel.io.connectors.SqlConnector import edu.ie3.datamodel.io.factory.timeseries.{ CosmoIdCoordinateFactory, IconIdCoordinateFactory, IdCoordinateFactory, SqlIdCoordinateFactory } -import edu.ie3.datamodel.io.connectors.SqlConnector import edu.ie3.datamodel.io.naming.FileNamingStrategy import edu.ie3.datamodel.io.source.IdCoordinateSource import edu.ie3.datamodel.io.source.csv.CsvIdCoordinateSource import edu.ie3.datamodel.io.source.sql.SqlIdCoordinateSource import edu.ie3.datamodel.models.value.WeatherValue import edu.ie3.simona.config.SimonaConfig +import edu.ie3.simona.config.SimonaConfig.BaseCsvParams import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource._ import edu.ie3.simona.exceptions.{ InvalidConfigParameterException, ServiceException } -import edu.ie3.simona.config.SimonaConfig.BaseCsvParams import edu.ie3.simona.ontology.messages.services.WeatherMessage.WeatherData import edu.ie3.simona.service.weather.WeatherSource.{ AgentCoordinates, @@ -40,11 +40,11 @@ import edu.ie3.simona.util.ParsableEnumeration import edu.ie3.util.geo.{CoordinateDistance, GeoUtils} import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.io.CsvDataSourceAdapter -import org.locationtech.jts.geom.{Coordinate, Point} -import tech.units.indriya.ComparableQuantity import edu.ie3.util.scala.quantities.WattsPerSquareMeter +import org.locationtech.jts.geom.{Coordinate, Point} import squants.motion.MetersPerSecond import squants.thermal.Kelvin +import tech.units.indriya.ComparableQuantity import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units @@ -415,14 +415,14 @@ object WeatherSource { case coordinateSource => // cannot use sample weather source with other combination of weather source than sample weather source throw new InvalidConfigParameterException( - s"Invalid coordinate source " + + "Invalid coordinate source " + s"'${coordinateSource.getClass.getSimpleName}' defined for SampleWeatherSource. " + "Please adapt the configuration to use sample coordinate source for weather data!" ) } case None | Some(_) => throw new InvalidConfigParameterException( - s"No weather source defined! This is currently not supported! Please provide the config parameters for one " + + "No weather source defined! This is currently not supported! Please provide the config parameters for one " + s"of the following weather sources:\n\t${supportedWeatherSources.mkString("\n\t")}" ) } @@ -505,7 +505,7 @@ object WeatherSource { () => SampleWeatherSource.SampleIdCoordinateSource case None | Some(_) => throw new InvalidConfigParameterException( - s"No coordinate source defined! This is currently not supported! Please provide the config parameters for one " + + "No coordinate source defined! This is currently not supported! Please provide the config parameters for one " + s"of the following coordinate sources:\n\t${supportedCoordinateSources.mkString("\n\t")}" ) } diff --git a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala index 2fc48cd5f9..ad4a7e784b 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala @@ -49,7 +49,6 @@ import tech.units.indriya.ComparableQuantity import java.nio.file.Path import java.time.ZonedDateTime import javax.measure.quantity.Length - import scala.jdk.CollectionConverters.{IterableHasAsJava, MapHasAsScala} import scala.jdk.OptionConverters.RichOptional import scala.util.{Failure, Success, Try} diff --git a/src/main/scala/edu/ie3/simona/sim/SimonaSim.scala b/src/main/scala/edu/ie3/simona/sim/SimonaSim.scala index 7a619552eb..762fae03b4 100644 --- a/src/main/scala/edu/ie3/simona/sim/SimonaSim.scala +++ b/src/main/scala/edu/ie3/simona/sim/SimonaSim.scala @@ -6,17 +6,6 @@ package edu.ie3.simona.sim -import org.apache.pekko.actor.typed.scaladsl.adapter.TypedActorRefOps -import org.apache.pekko.actor.SupervisorStrategy.Stop -import org.apache.pekko.actor.{ - Actor, - ActorRef, - AllForOneStrategy, - Props, - Stash, - SupervisorStrategy, - Terminated -} import com.typesafe.scalalogging.LazyLogging import edu.ie3.simona.agent.EnvironmentRefs import edu.ie3.simona.event.RuntimeEvent @@ -34,6 +23,17 @@ import edu.ie3.simona.sim.SimonaSim.{ SimonaSimStateData } import edu.ie3.simona.sim.setup.{ExtSimSetupData, SimonaSetup} +import org.apache.pekko.actor.SupervisorStrategy.Stop +import org.apache.pekko.actor.typed.scaladsl.adapter.TypedActorRefOps +import org.apache.pekko.actor.{ + Actor, + ActorRef, + AllForOneStrategy, + Props, + Stash, + SupervisorStrategy, + Terminated +} import scala.concurrent.duration.DurationInt import scala.language.postfixOps diff --git a/src/main/scala/edu/ie3/simona/sim/setup/ExtSimSetupData.scala b/src/main/scala/edu/ie3/simona/sim/setup/ExtSimSetupData.scala index 4706a50f09..93aa4d1ab8 100644 --- a/src/main/scala/edu/ie3/simona/sim/setup/ExtSimSetupData.scala +++ b/src/main/scala/edu/ie3/simona/sim/setup/ExtSimSetupData.scala @@ -6,8 +6,8 @@ package edu.ie3.simona.sim.setup -import org.apache.pekko.actor.ActorRef import edu.ie3.simona.service.ev.ExtEvDataService +import org.apache.pekko.actor.ActorRef final case class ExtSimSetupData( extSimAdapters: Iterable[ActorRef], diff --git a/src/main/scala/edu/ie3/simona/sim/setup/SetupHelper.scala b/src/main/scala/edu/ie3/simona/sim/setup/SetupHelper.scala index 1e319ecbcc..da75c3a6e6 100644 --- a/src/main/scala/edu/ie3/simona/sim/setup/SetupHelper.scala +++ b/src/main/scala/edu/ie3/simona/sim/setup/SetupHelper.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.sim.setup -import org.apache.pekko.actor.ActorRef import com.typesafe.config.{Config => TypesafeConfig} import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.graph.SubGridGate @@ -23,6 +22,7 @@ import edu.ie3.simona.model.grid.RefSystem import edu.ie3.simona.util.ConfigUtil.{GridOutputConfigUtil, OutputConfigUtil} import edu.ie3.simona.util.ResultFileHierarchy.ResultEntityPathConfig import edu.ie3.simona.util.{EntityMapperUtil, ResultFileHierarchy} +import org.apache.pekko.actor.ActorRef /** Methods to support the setup of a simona simulation * @@ -187,7 +187,7 @@ trait SetupHelper extends LazyLogging { logger.warn( s"The configured RefSystem for subGrid ${subGridContainer.getSubnet} differs in its nominal voltage (${refSystem.nominalVoltage}) from the grids" + s"predominant voltage level nominal voltage (${subGridContainer.getPredominantVoltageLevel.getNominalVoltage}). If this is by intention and still valid, this " + - s"warning can be just ignored!" + "warning can be just ignored!" ) refSystem diff --git a/src/main/scala/edu/ie3/simona/sim/setup/SimonaSetup.scala b/src/main/scala/edu/ie3/simona/sim/setup/SimonaSetup.scala index caad2d1b7b..03b3b27b87 100644 --- a/src/main/scala/edu/ie3/simona/sim/setup/SimonaSetup.scala +++ b/src/main/scala/edu/ie3/simona/sim/setup/SimonaSetup.scala @@ -6,12 +6,12 @@ package edu.ie3.simona.sim.setup -import org.apache.pekko.actor.{ActorContext, ActorRef, ActorSystem} import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.datamodel.models.input.connector.Transformer3WInput import edu.ie3.simona.agent.EnvironmentRefs import edu.ie3.simona.event.RuntimeEvent import edu.ie3.simona.scheduler.TimeAdvancer +import org.apache.pekko.actor.{ActorContext, ActorRef, ActorSystem} /** Trait that can be used to setup a customized simona simulation by providing * implementations for all setup information required by a diff --git a/src/main/scala/edu/ie3/simona/sim/setup/SimonaStandaloneSetup.scala b/src/main/scala/edu/ie3/simona/sim/setup/SimonaStandaloneSetup.scala index 246fda0101..1c10774a41 100644 --- a/src/main/scala/edu/ie3/simona/sim/setup/SimonaStandaloneSetup.scala +++ b/src/main/scala/edu/ie3/simona/sim/setup/SimonaStandaloneSetup.scala @@ -6,12 +6,6 @@ package edu.ie3.simona.sim.setup -import org.apache.pekko.actor.typed.scaladsl.adapter.{ - ClassicActorContextOps, - ClassicActorRefOps, - TypedActorRefOps -} -import org.apache.pekko.actor.{ActorContext, ActorRef, ActorSystem} import com.typesafe.config.Config import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.graph.SubGridTopologyGraph @@ -42,6 +36,12 @@ import edu.ie3.simona.util.ResultFileHierarchy import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.simona.util.TickUtil.RichZonedDateTime import edu.ie3.util.TimeUtil +import org.apache.pekko.actor.typed.scaladsl.adapter.{ + ClassicActorContextOps, + ClassicActorRefOps, + TypedActorRefOps +} +import org.apache.pekko.actor.{ActorContext, ActorRef, ActorSystem} import java.util.concurrent.LinkedBlockingQueue import scala.jdk.CollectionConverters._ diff --git a/src/main/scala/edu/ie3/simona/util/ConfigUtil.scala b/src/main/scala/edu/ie3/simona/util/ConfigUtil.scala index 0e3a8e412b..ec2b0e7019 100644 --- a/src/main/scala/edu/ie3/simona/util/ConfigUtil.scala +++ b/src/main/scala/edu/ie3/simona/util/ConfigUtil.scala @@ -20,9 +20,8 @@ import edu.ie3.datamodel.models.result.connector.{ } import edu.ie3.datamodel.models.result.{NodeResult, ResultEntity} import edu.ie3.simona.config.SimonaConfig -import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource.SqlParams import edu.ie3.simona.config.SimonaConfig._ -import edu.ie3.simona.event.notifier.{Notifier, NotifierConfig} +import edu.ie3.simona.event.notifier.NotifierConfig import edu.ie3.simona.exceptions.InvalidConfigParameterException import org.apache.kafka.clients.admin.AdminClient import org.apache.kafka.common.KafkaException @@ -486,7 +485,7 @@ object ConfigUtil { ) case Failure(other) => throw new InvalidConfigParameterException( - s"Checking kafka config failed with unexpected exception.", + "Checking kafka config failed with unexpected exception.", other ) case Success(missingTopics) if missingTopics.nonEmpty => diff --git a/src/main/scala/edu/ie3/simona/util/ResultFileHierarchy.scala b/src/main/scala/edu/ie3/simona/util/ResultFileHierarchy.scala index 6f27310673..fd9014f1e9 100644 --- a/src/main/scala/edu/ie3/simona/util/ResultFileHierarchy.scala +++ b/src/main/scala/edu/ie3/simona/util/ResultFileHierarchy.scala @@ -6,10 +6,7 @@ package edu.ie3.simona.util -import java.io.{BufferedWriter, File, FileWriter} -import java.nio.file.{Files, Paths} -import java.text.SimpleDateFormat -import com.typesafe.config.{ConfigRenderOptions, Config => TypesafeConfig} +import com.typesafe.config.{Config => TypesafeConfig, ConfigRenderOptions} import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.io.naming.{ EntityPersistenceNamingStrategy, @@ -24,6 +21,9 @@ import edu.ie3.simona.util.ResultFileHierarchy.ResultEntityPathConfig import edu.ie3.util.io.FileIOUtils import org.apache.commons.io.FilenameUtils._ +import java.io.{BufferedWriter, File, FileWriter} +import java.nio.file.{Files, Paths} +import java.text.SimpleDateFormat import scala.jdk.OptionConverters.RichOptional /** Represents the output directory where the results will be materialized. If @@ -275,7 +275,7 @@ object ResultFileHierarchy extends LazyLogging { // files inside the runOutputDir -> fail throw new FileHierarchyException( s"The runOutputDir ${outputFileHierarchy.runOutputDir} already exists and is NOT empty! " + - s"Please either delete or empty the directory." + "Please either delete or empty the directory." ) } diff --git a/src/main/scala/edu/ie3/util/scala/io/GraphicDataCleaner.scala b/src/main/scala/edu/ie3/util/scala/io/GraphicDataCleaner.scala index 7737599d18..7b4d2988d1 100644 --- a/src/main/scala/edu/ie3/util/scala/io/GraphicDataCleaner.scala +++ b/src/main/scala/edu/ie3/util/scala/io/GraphicDataCleaner.scala @@ -8,8 +8,8 @@ package edu.ie3.util.scala.io import edu.ie3.datamodel.io.naming.FileNamingStrategy import edu.ie3.datamodel.io.sink.CsvFileSink -import edu.ie3.datamodel.io.source.{GraphicSource, RawGridSource, TypeSource} import edu.ie3.datamodel.io.source.csv.CsvDataSource +import edu.ie3.datamodel.io.source.{GraphicSource, RawGridSource, TypeSource} import java.nio.file.Paths diff --git a/src/main/scala/edu/ie3/util/scala/quantities/DefaultQuantities.scala b/src/main/scala/edu/ie3/util/scala/quantities/DefaultQuantities.scala index 8ac476e888..68c66a2c93 100644 --- a/src/main/scala/edu/ie3/util/scala/quantities/DefaultQuantities.scala +++ b/src/main/scala/edu/ie3/util/scala/quantities/DefaultQuantities.scala @@ -6,8 +6,8 @@ package edu.ie3.util.scala.quantities -import squants.{Each, Energy, Power, Dimensionless} import squants.energy.{KilowattHours, Kilowatts, Megawatts} +import squants.{Dimensionless, Each, Energy, Power} object DefaultQuantities { diff --git a/src/main/scala/edu/ie3/util/scala/quantities/QuantityUtil.scala b/src/main/scala/edu/ie3/util/scala/quantities/QuantityUtil.scala index d5aea08fdd..3add328427 100644 --- a/src/main/scala/edu/ie3/util/scala/quantities/QuantityUtil.scala +++ b/src/main/scala/edu/ie3/util/scala/quantities/QuantityUtil.scala @@ -7,7 +7,6 @@ package edu.ie3.util.scala.quantities import edu.ie3.simona.exceptions.QuantityException -import edu.ie3.util.quantities.{QuantityUtil => PSQuantityUtil} import squants.time.{Hours, TimeDerivative, TimeIntegral} import squants.{Quantity, Seconds, UnitOfMeasure} import tech.units.indriya.ComparableQuantity diff --git a/src/main/scala/edu/ie3/util/scala/quantities/ReactivePower.scala b/src/main/scala/edu/ie3/util/scala/quantities/ReactivePower.scala index 02458bcd89..bc95134ecd 100644 --- a/src/main/scala/edu/ie3/util/scala/quantities/ReactivePower.scala +++ b/src/main/scala/edu/ie3/util/scala/quantities/ReactivePower.scala @@ -6,9 +6,9 @@ package edu.ie3.util.scala.quantities -import squants.energy._ -import squants.time.{Hours, Time, TimeDerivative, TimeIntegral} import squants._ +import squants.energy._ +import squants.time.{Hours, Time, TimeIntegral} import scala.util.Try diff --git a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmCenGridSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmCenGridSpec.scala index 5beb87d7b0..b74d501527 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmCenGridSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmCenGridSpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.TestProbe import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.container.ThermalGrid import edu.ie3.simona.agent.EnvironmentRefs @@ -35,11 +32,12 @@ import edu.ie3.simona.test.common.{ } import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.Megavars +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.TestProbe import squants.electro.Kilovolts import squants.energy.Megawatts -import scala.language.postfixOps - /** Test to ensure the functions that a [[GridAgent]] in center position should * be able to do if the DBFSAlgorithm is used. The scheduler, the weather * service as well as the inferior and superior [[GridAgent]] s are simulated @@ -106,7 +104,7 @@ class DBFSAlgorithmCenGridSpec ) ) - s"initialize itself when it receives an init activation" in { + "initialize itself when it receives an init activation" in { // this subnet has 1 superior grid (ehv) and 3 inferior grids (mv). Map the gates to test probes accordingly val subGridGateToActorRef = hvSubGridGates.map { @@ -166,7 +164,7 @@ class DBFSAlgorithmCenGridSpec ) } - s"start the simulation when activation is sent" in { + "start the simulation when activation is sent" in { val firstSweepNo = 0 diff --git a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmFailedPowerFlowSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmFailedPowerFlowSpec.scala index 85b4bb041a..f05f9a6f78 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmFailedPowerFlowSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmFailedPowerFlowSpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.{ImplicitSender, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.container.ThermalGrid import edu.ie3.simona.agent.EnvironmentRefs @@ -37,6 +34,9 @@ import edu.ie3.simona.test.common.{ } import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.Megavars +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.{ImplicitSender, TestProbe} import squants.electro.Kilovolts import squants.energy.Megawatts @@ -94,7 +94,7 @@ class DBFSAlgorithmFailedPowerFlowSpec ) ) - s"initialize itself when it receives an init activation" in { + "initialize itself when it receives an init activation" in { // this subnet has 1 superior grid (ehv) and 3 inferior grids (mv). Map the gates to test probes accordingly val subGridGateToActorRef = hvSubGridGatesPF.map { case gate if gate.getInferiorSubGrid == hvGridContainerPF.getSubnet => @@ -153,7 +153,7 @@ class DBFSAlgorithmFailedPowerFlowSpec ) } - s"start the simulation when an activation is sent is sent, handle failed power flow if it occurs" in { + "start the simulation when an activation is sent is sent, handle failed power flow if it occurs" in { val sweepNo = 0 // send the start grid simulation trigger diff --git a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmParticipantSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmParticipantSpec.scala index f104f20bbf..df9fb47321 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmParticipantSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmParticipantSpec.scala @@ -6,12 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.typed.scaladsl.adapter.{ - ClassicActorRefOps, - TypedActorRefOps -} -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{ImplicitSender, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.simona.agent.EnvironmentRefs @@ -38,11 +32,15 @@ import edu.ie3.simona.test.common.{ } import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.Megavars +import org.apache.pekko.actor.typed.scaladsl.adapter.{ + ClassicActorRefOps, + TypedActorRefOps +} +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.{ImplicitSender, TestProbe} import squants.electro.Kilovolts import squants.energy.Megawatts -import scala.language.postfixOps - class DBFSAlgorithmParticipantSpec extends TestKitWithShutdown( ActorSystem( @@ -89,7 +87,7 @@ class DBFSAlgorithmParticipantSpec ) ) - s"initialize itself when it receives an init activation" in { + "initialize itself when it receives an init activation" in { // this subnet has 1 superior grid (ehv) and 3 inferior grids (mv). Map the gates to test probes accordingly val subGridGateToActorRef: Map[SubGridGate, ActorRef] = @@ -175,7 +173,7 @@ class DBFSAlgorithmParticipantSpec } - s"check the request asset power message indirectly" in { + "check the request asset power message indirectly" in { val firstSweepNo = 0 diff --git a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmSupGridSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmSupGridSpec.scala index ca8687a44b..eee500a6f8 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmSupGridSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/DBFSAlgorithmSupGridSpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{ImplicitSender, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.datamodel.models.input.container.ThermalGrid @@ -38,6 +35,9 @@ import edu.ie3.simona.test.common.{ } import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.Megavars +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.{ImplicitSender, TestProbe} import squants.energy.Megawatts import java.util.UUID @@ -91,7 +91,7 @@ class DBFSAlgorithmSupGridSpec ) ) - s"initialize itself when it receives an init activation" in { + "initialize itself when it receives an init activation" in { val subnetGatesToActorRef: Map[SubGridGate, ActorRef] = ehvSubGridGates.map(gate => gate -> hvGrid.ref).toMap @@ -130,8 +130,8 @@ class DBFSAlgorithmSupGridSpec } - s"start the simulation, do 2 sweeps and should end afterwards when no deviation on nodal " + - s"power is recognized in the superior when an activation is sent is send" in { + "start the simulation, do 2 sweeps and should end afterwards when no deviation on nodal " + + "power is recognized in the superior when an activation is sent is send" in { for (sweepNo <- 0 to 1) { @@ -207,8 +207,8 @@ class DBFSAlgorithmSupGridSpec } - s"start the simulation when an activation is sent is sent, do 5 sweeps and should end afterwards, if the " + - s"nodal power exchange converges not before the fifth sweep." in { + "start the simulation when an activation is sent is sent, do 5 sweeps and should end afterwards, if the " + + "nodal power exchange converges not before the fifth sweep." in { // configuration of the test val maxNumberOfTestSweeps = 4 diff --git a/src/test/scala/edu/ie3/simona/agent/grid/DBFSMockGridAgents.scala b/src/test/scala/edu/ie3/simona/agent/grid/DBFSMockGridAgents.scala index 0f19e2055d..08460f046f 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/DBFSMockGridAgents.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/DBFSMockGridAgents.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorRef -import org.apache.pekko.testkit.TestProbe import edu.ie3.simona.ontology.messages.PowerMessage.ProvideGridPowerMessage.ExchangePower import edu.ie3.simona.ontology.messages.PowerMessage.{ ProvideGridPowerMessage, @@ -20,6 +18,8 @@ import edu.ie3.simona.ontology.messages.VoltageMessage.{ } import edu.ie3.simona.test.common.UnitSpec import edu.ie3.util.scala.quantities.{Megavars, ReactivePower} +import org.apache.pekko.actor.ActorRef +import org.apache.pekko.testkit.TestProbe import squants.Power import squants.electro.Volts import squants.energy.Megawatts @@ -78,7 +78,7 @@ trait DBFSMockGridAgents extends UnitSpec { case None => fail( s"Expected ExchangeVoltage with node UUID ${expectedVoltage.nodeUuid} " + - s"was not included in ProvideSlackVoltageMessage." + "was not included in ProvideSlackVoltageMessage." ) } } @@ -127,7 +127,7 @@ trait DBFSMockGridAgents extends UnitSpec { case None => fail( s"Expected ExchangePower with node UUID ${expectedPower.nodeUuid} " + - s"was not included in ProvideGridPowerMessage." + "was not included in ProvideGridPowerMessage." ) } } diff --git a/src/test/scala/edu/ie3/simona/agent/grid/GridAgentDataHelperSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/GridAgentDataHelperSpec.scala index 76a438267d..e05378ad63 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/GridAgentDataHelperSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/GridAgentDataHelperSpec.scala @@ -6,12 +6,13 @@ package edu.ie3.simona.agent.grid -import java.util.UUID import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.simona.agent.grid.GridAgentDataHelperSpec.TestGridData import edu.ie3.simona.test.common.UnitSpec import edu.ie3.simona.test.common.model.grid.SubGridGateMokka +import java.util.UUID + object GridAgentDataHelperSpec { final case class TestGridData( diff --git a/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup2WSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup2WSpec.scala index e58ad3c2fb..cd3533c057 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup2WSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup2WSpec.scala @@ -6,16 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.{ - Actor, - ActorIdentity, - ActorRef, - ActorSystem, - Identify, - Props -} -import org.apache.pekko.testkit.ImplicitSender -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.result.ResultEntity @@ -26,6 +16,16 @@ import edu.ie3.simona.test.common.input.TransformerInputTestData import edu.ie3.simona.test.common.{ConfigTestData, TestKitWithShutdown} import edu.ie3.simona.util.ResultFileHierarchy import edu.ie3.simona.util.ResultFileHierarchy.ResultEntityPathConfig +import org.apache.pekko.actor.{ + Actor, + ActorIdentity, + ActorRef, + ActorSystem, + Identify, + Props +} +import org.apache.pekko.testkit.ImplicitSender +import org.apache.pekko.util.Timeout import org.scalatest.wordspec.AnyWordSpecLike import java.util.concurrent.TimeUnit diff --git a/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup3WSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup3WSpec.scala index f2b2d44f41..49e0b547d0 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup3WSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/GridAgentSetup3WSpec.scala @@ -6,16 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.{ - Actor, - ActorIdentity, - ActorRef, - ActorSystem, - Identify, - Props -} -import org.apache.pekko.testkit.ImplicitSender -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging.LazyLogging import edu.ie3.datamodel.models.result.ResultEntity @@ -29,6 +19,16 @@ import edu.ie3.simona.test.common.{ } import edu.ie3.simona.util.ResultFileHierarchy import edu.ie3.simona.util.ResultFileHierarchy.ResultEntityPathConfig +import org.apache.pekko.actor.{ + Actor, + ActorIdentity, + ActorRef, + ActorSystem, + Identify, + Props +} +import org.apache.pekko.testkit.ImplicitSender +import org.apache.pekko.util.Timeout import org.scalatest.wordspec.AnyWordSpecLike import java.util.concurrent.TimeUnit diff --git a/src/test/scala/edu/ie3/simona/agent/grid/GridResultsSupportSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/GridResultsSupportSpec.scala index c9d17d2379..7d41b2af3c 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/GridResultsSupportSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/GridResultsSupportSpec.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.event.{LoggingAdapter, NoLogging} import breeze.math.Complex import edu.ie3.datamodel.models.StandardUnits import edu.ie3.datamodel.models.input.connector.ConnectorPort @@ -43,6 +42,7 @@ import edu.ie3.util.quantities.PowerSystemUnits.{DEGREE_GEOM, PU} import edu.ie3.util.quantities.QuantityUtil import edu.ie3.util.scala.OperationInterval import edu.ie3.util.scala.quantities.{QuantityUtil => ScalaQuantityUtil} +import org.apache.pekko.event.{LoggingAdapter, NoLogging} import org.scalatest.prop.TableDrivenPropertyChecks import squants.Each import squants.electro.{Amperes, Volts} diff --git a/src/test/scala/edu/ie3/simona/agent/grid/PowerFlowSupportSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/PowerFlowSupportSpec.scala index 66805b06d9..6b2b502b41 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/PowerFlowSupportSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/PowerFlowSupportSpec.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.agent.grid -import org.apache.pekko.actor.ActorRef -import org.apache.pekko.event.{LoggingAdapter, NoLogging} import edu.ie3.powerflow.model.PowerFlowResult.SuccessFullPowerFlowResult.ValidNewtonRaphsonPFResult import edu.ie3.simona.model.grid.GridModel import edu.ie3.simona.ontology.messages.PowerMessage.ProvideGridPowerMessage.ExchangePower @@ -16,6 +14,8 @@ import edu.ie3.simona.test.common.UnitSpec import edu.ie3.simona.test.common.model.grid.BasicGridWithSwitches import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.quantities.Megavars +import org.apache.pekko.actor.ActorRef +import org.apache.pekko.event.{LoggingAdapter, NoLogging} import squants.electro.Kilovolts import squants.energy.Megawatts import tech.units.indriya.ComparableQuantity diff --git a/src/test/scala/edu/ie3/simona/agent/grid/ReceivedValuesStoreSpec.scala b/src/test/scala/edu/ie3/simona/agent/grid/ReceivedValuesStoreSpec.scala index e4d9fedf2c..83af28619b 100644 --- a/src/test/scala/edu/ie3/simona/agent/grid/ReceivedValuesStoreSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/grid/ReceivedValuesStoreSpec.scala @@ -6,14 +6,14 @@ package edu.ie3.simona.agent.grid -import java.util.UUID - -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{TestKit, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.graph.SubGridGate -import edu.ie3.simona.test.common.{TestKitWithShutdown, UnitSpec} import edu.ie3.simona.test.common.model.grid.SubGridGateMokka +import edu.ie3.simona.test.common.{TestKitWithShutdown, UnitSpec} +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.TestProbe + +import java.util.UUID class ReceivedValuesStoreSpec extends TestKitWithShutdown( diff --git a/src/test/scala/edu/ie3/simona/agent/participant/FixedFeedInAgentModelCalculationSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/FixedFeedInAgentModelCalculationSpec.scala index 1b3046f6f4..4b30398069 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/FixedFeedInAgentModelCalculationSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/FixedFeedInAgentModelCalculationSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.TestFSMRef -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.input.system.characteristic.QV @@ -44,6 +40,10 @@ import edu.ie3.simona.util.ConfigUtil import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil import edu.ie3.util.scala.quantities.{Megavars, ReactivePower, Vars} +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.TestFSMRef +import org.apache.pekko.util.Timeout import squants.Each import squants.energy.{Kilowatts, Megawatts, Watts} diff --git a/src/test/scala/edu/ie3/simona/agent/participant/HpAgentModelCalculationSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/HpAgentModelCalculationSpec.scala index 95bfcfd6ff..06da4be05b 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/HpAgentModelCalculationSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/HpAgentModelCalculationSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.{TestFSMRef, TestProbe} -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.simona.agent.ValueStore @@ -53,6 +49,10 @@ import edu.ie3.util.scala.quantities.{ Vars, WattsPerSquareMeter } +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.{TestFSMRef, TestProbe} +import org.apache.pekko.util.Timeout import org.scalatest.PrivateMethodTester import squants.energy.{Kilowatts, Megawatts, Watts} import squants.motion.MetersPerSecond diff --git a/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentFixedModelCalculationSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentFixedModelCalculationSpec.scala index d7252f1dab..dbd115b657 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentFixedModelCalculationSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentFixedModelCalculationSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.TestFSMRef -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.LoadInput import edu.ie3.datamodel.models.input.system.characteristic.QV @@ -43,6 +39,10 @@ import edu.ie3.simona.test.common.model.participant.LoadTestData import edu.ie3.simona.util.ConfigUtil import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.{Megavars, ReactivePower, Vars} +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.TestFSMRef +import org.apache.pekko.util.Timeout import org.scalatest.PrivateMethodTester import squants.Each import squants.energy.{Kilowatts, Megawatts, Watts} diff --git a/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentProfileModelCalculationSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentProfileModelCalculationSpec.scala index ee17a58989..5ada578f38 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentProfileModelCalculationSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/LoadAgentProfileModelCalculationSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.TestFSMRef -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.LoadInput import edu.ie3.datamodel.models.input.system.characteristic.QV @@ -43,6 +39,10 @@ import edu.ie3.simona.test.common.model.participant.LoadTestData import edu.ie3.simona.util.ConfigUtil import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.scala.quantities.{Megavars, ReactivePower, Vars} +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.TestFSMRef +import org.apache.pekko.util.Timeout import org.scalatest.PrivateMethodTester import squants.Each import squants.energy.{Kilowatts, Megawatts, Watts} diff --git a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentExternalSourceSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentExternalSourceSpec.scala index bff18f7a87..ebd4121e00 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentExternalSourceSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentExternalSourceSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.TestFSMRef -import org.apache.pekko.util.Timeout import breeze.numerics.{acos, tan} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.NodeInput @@ -52,6 +48,10 @@ import edu.ie3.simona.test.common.DefaultTestData import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.quantities.{Kilovars, Megavars, ReactivePower, Vars} +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.TestFSMRef +import org.apache.pekko.util.Timeout import org.mockito.ArgumentMatchers.any import org.mockito.Mockito.when import org.scalatestplus.mockito.MockitoSugar diff --git a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentalsSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentalsSpec.scala index 3d87971bca..14f7682a41 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentalsSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentalsSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.ActorRef.noSender -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.TestFSMRef -import org.apache.pekko.util.Timeout import breeze.numerics.pow import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.SystemParticipantInput @@ -36,6 +32,10 @@ import edu.ie3.simona.test.common.model.participant.LoadTestData import edu.ie3.util.TimeUtil import edu.ie3.util.scala.OperationInterval import edu.ie3.util.scala.quantities.{Megavars, ReactivePower} +import org.apache.pekko.actor.ActorRef.noSender +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.TestFSMRef +import org.apache.pekko.util.Timeout import org.mockito.Mockito.when import org.scalatest.PrivateMethodTester import org.scalatest.prop.{TableDrivenPropertyChecks, TableFor3, TableFor5} diff --git a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala index 2b0264258d..302279f453 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.{ActorRef, FSM, Props} import edu.ie3.datamodel.models.input.system.SystemParticipantInput import edu.ie3.datamodel.models.result.system.SystemParticipantResult import edu.ie3.simona.agent.ValueStore @@ -37,6 +36,7 @@ import edu.ie3.simona.model.participant.SystemParticipant import edu.ie3.simona.model.participant.control.QControl.CosPhiFixed import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble import edu.ie3.util.scala.quantities.{Megavars, ReactivePower} +import org.apache.pekko.actor.{ActorRef, FSM, Props} import org.mockito.ArgumentMatchers.any import org.mockito.Mockito import org.mockito.Mockito.doReturn diff --git a/src/test/scala/edu/ie3/simona/agent/participant/PvAgentModelCalculationSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/PvAgentModelCalculationSpec.scala index 3a0882ed1c..1587920d78 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/PvAgentModelCalculationSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/PvAgentModelCalculationSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{TestFSMRef, TestProbe} -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.PvInput import edu.ie3.datamodel.models.input.system.characteristic.QV @@ -55,6 +51,10 @@ import edu.ie3.util.scala.quantities.{ Vars, WattsPerSquareMeter } +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.{TestFSMRef, TestProbe} +import org.apache.pekko.util.Timeout import org.scalatest.PrivateMethodTester import squants.energy.{Kilowatts, Megawatts, Watts} import squants.motion.MetersPerSecond diff --git a/src/test/scala/edu/ie3/simona/agent/participant/WecAgentModelCalculationSpec.scala b/src/test/scala/edu/ie3/simona/agent/participant/WecAgentModelCalculationSpec.scala index 24ccac5f34..2877381e42 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/WecAgentModelCalculationSpec.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/WecAgentModelCalculationSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.agent.participant -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{TestFSMRef, TestProbe} -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.input.system.WecInput import edu.ie3.datamodel.models.input.system.characteristic.QV @@ -60,6 +56,10 @@ import edu.ie3.util.scala.quantities.{ Vars, WattsPerSquareMeter } +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.{TestFSMRef, TestProbe} +import org.apache.pekko.util.Timeout import org.scalatest.PrivateMethodTester import squants.Each import squants.energy.{Kilowatts, Megawatts, Watts} diff --git a/src/test/scala/edu/ie3/simona/api/ExtSimAdapterSpec.scala b/src/test/scala/edu/ie3/simona/api/ExtSimAdapterSpec.scala index 54dcd9f061..f2090da734 100644 --- a/src/test/scala/edu/ie3/simona/api/ExtSimAdapterSpec.scala +++ b/src/test/scala/edu/ie3/simona/api/ExtSimAdapterSpec.scala @@ -6,17 +6,14 @@ package edu.ie3.simona.api -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorSystem, Terminated} -import org.apache.pekko.testkit.{TestActorRef, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.simona.api.data.ontology.ScheduleDataServiceMessage import edu.ie3.simona.api.simulation.ExtSimAdapterData import edu.ie3.simona.api.simulation.ontology.{ ActivationMessage, + CompletionMessage => ExtCompletionMessage, TerminationCompleted, - TerminationMessage, - CompletionMessage => ExtCompletionMessage + TerminationMessage } import edu.ie3.simona.ontology.messages.SchedulerMessage.{ Completion, @@ -27,6 +24,9 @@ import edu.ie3.simona.ontology.messages.{Activation, StopMessage} import edu.ie3.simona.scheduler.ScheduleLock.ScheduleKey import edu.ie3.simona.test.common.{TestKitWithShutdown, TestSpawnerClassic} import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorSystem, Terminated} +import org.apache.pekko.testkit.{TestActorRef, TestProbe} import org.scalatest.wordspec.AnyWordSpecLike import java.util.UUID diff --git a/src/test/scala/edu/ie3/simona/config/ConfigFailFastSpec.scala b/src/test/scala/edu/ie3/simona/config/ConfigFailFastSpec.scala index 33f9914a0f..8f0dd339ae 100644 --- a/src/test/scala/edu/ie3/simona/config/ConfigFailFastSpec.scala +++ b/src/test/scala/edu/ie3/simona/config/ConfigFailFastSpec.scala @@ -18,8 +18,8 @@ import edu.ie3.simona.test.common.{ConfigTestData, UnitSpec} import edu.ie3.simona.util.ConfigUtil.{CsvConfigUtil, NotifierIdentifier} import edu.ie3.util.TimeUtil -import java.time.{Duration, ZonedDateTime} import java.time.temporal.ChronoUnit +import java.time.{Duration, ZonedDateTime} class ConfigFailFastSpec extends UnitSpec with ConfigTestData { "Validating the configs" when { @@ -504,7 +504,7 @@ class ConfigFailFastSpec extends UnitSpec with ConfigTestData { simonaConfig.simona.runtime.participant.load.individualConfigs, defaultString ) - }.getMessage shouldBe s"Found invalid UUID 'blabla' it was meant to be the string 'default' or a valid UUID." + }.getMessage shouldBe "Found invalid UUID 'blabla' it was meant to be the string 'default' or a valid UUID." } "throw an InvalidConfigParameterException if the scaling factor of the load model config is negative" in { diff --git a/src/test/scala/edu/ie3/simona/config/RefSystemParserSpec.scala b/src/test/scala/edu/ie3/simona/config/RefSystemParserSpec.scala index be5d9b95c4..73419398ec 100644 --- a/src/test/scala/edu/ie3/simona/config/RefSystemParserSpec.scala +++ b/src/test/scala/edu/ie3/simona/config/RefSystemParserSpec.scala @@ -101,7 +101,7 @@ class RefSystemParserSpec extends UnitSpec { ) intercept[InvalidConfigParameterException] { RefSystemParser.parse(validRefSystems) - }.getMessage shouldBe s"The provided gridIds in simona.gridConfig.refSystems contains duplicates. Please check if there are either duplicate entries or overlapping ranges!" + }.getMessage shouldBe "The provided gridIds in simona.gridConfig.refSystems contains duplicates. Please check if there are either duplicate entries or overlapping ranges!" } @@ -128,7 +128,7 @@ class RefSystemParserSpec extends UnitSpec { ) intercept[InvalidConfigParameterException] { RefSystemParser.parse(validRefSystems) - }.getMessage shouldBe s"The provided voltLvls in simona.gridConfig.refSystems contains duplicates. Please check your configuration for duplicates in voltLvl entries!" + }.getMessage shouldBe "The provided voltLvls in simona.gridConfig.refSystems contains duplicates. Please check your configuration for duplicates in voltLvl entries!" } diff --git a/src/test/scala/edu/ie3/simona/deploy/DeploySpec.scala b/src/test/scala/edu/ie3/simona/deploy/DeploySpec.scala index f329122b50..119b7af724 100644 --- a/src/test/scala/edu/ie3/simona/deploy/DeploySpec.scala +++ b/src/test/scala/edu/ie3/simona/deploy/DeploySpec.scala @@ -11,7 +11,6 @@ import org.scalatest.Ignore import java.io.File import scala.io.{Codec, Source} -import scala.language.{existentials, postfixOps} import scala.util.{Failure, Success, Using} // this is secure functionality spec to ensure that the deployment script is altered if required in order to maintain diff --git a/src/test/scala/edu/ie3/simona/event/NotifierSpec.scala b/src/test/scala/edu/ie3/simona/event/NotifierSpec.scala index a654ec289a..81a06f6667 100644 --- a/src/test/scala/edu/ie3/simona/event/NotifierSpec.scala +++ b/src/test/scala/edu/ie3/simona/event/NotifierSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.event -import java.util.{Calendar, Date} -import org.apache.pekko.actor.{ActorLogging, ActorRef, ActorSystem, Props} -import org.apache.pekko.testkit.ImplicitSender -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.models.result.system._ import edu.ie3.simona.event.NotifierSpec.{TestEvent, TestEventEnvelope} @@ -17,9 +13,12 @@ import edu.ie3.simona.event.notifier.Notifier import edu.ie3.simona.test.common.TestKitWithShutdown import edu.ie3.simona.util.ConfigUtil.NotifierIdentifier._ import edu.ie3.simona.util.EntityMapperUtil +import org.apache.pekko.actor.{ActorLogging, ActorRef, ActorSystem, Props} +import org.apache.pekko.testkit.ImplicitSender +import org.apache.pekko.util.Timeout import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpecLike +import java.util.{Calendar, Date} import scala.concurrent.duration._ import scala.language.postfixOps @@ -42,7 +41,7 @@ class NotifierSpec extends Notifier with ActorLogging { override def preStart(): Unit = { - log.debug(s"{} started!", self) + log.debug("{} started!", self) } override def receive: Receive = { diff --git a/src/test/scala/edu/ie3/simona/event/SimonaListenerSpec.scala b/src/test/scala/edu/ie3/simona/event/SimonaListenerSpec.scala index 538a4732f4..73ac2a0ad4 100644 --- a/src/test/scala/edu/ie3/simona/event/SimonaListenerSpec.scala +++ b/src/test/scala/edu/ie3/simona/event/SimonaListenerSpec.scala @@ -6,13 +6,13 @@ package edu.ie3.simona.event -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{EventFilter, TestActorRef} import com.typesafe.config.ConfigFactory import edu.ie3.simona.event.SimonaListenerSpec.{TestEvent, UnknownEvent} import edu.ie3.simona.event.listener.SimonaListenerWithFilter import edu.ie3.simona.logging.SimonaLogging.SimonaBusLogging import edu.ie3.simona.test.common.TestKitWithShutdown +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.{EventFilter, TestActorRef} import org.scalatest.matchers.should.Matchers import java.util.{Calendar, Date} @@ -22,7 +22,7 @@ object SimonaListenerSpec { // test classes final case class TestEvent(str: String, date: Date) extends Event - final case object UnknownEvent extends Event + case object UnknownEvent extends Event } @@ -45,7 +45,7 @@ class SimonaListenerSpec class SimonaListenerActor(eventsToProcess: Option[List[String]] = None) extends SimonaListenerWithFilter(eventsToProcess) { override def preStart(): Unit = { - log.debug(s"{} started!", self) + log.debug("{} started!", self) } override def processEvent(event: Event, sender: ActorRef): Unit = { diff --git a/src/test/scala/edu/ie3/simona/event/listener/ResultEventListenerSpec.scala b/src/test/scala/edu/ie3/simona/event/listener/ResultEventListenerSpec.scala index 6f7aba992e..80b01220a4 100644 --- a/src/test/scala/edu/ie3/simona/event/listener/ResultEventListenerSpec.scala +++ b/src/test/scala/edu/ie3/simona/event/listener/ResultEventListenerSpec.scala @@ -32,7 +32,6 @@ import org.apache.pekko.actor.testkit.typed.scaladsl.{ ScalaTestWithActorTestKit } import org.apache.pekko.testkit.TestKit.awaitCond -import org.apache.pekko.testkit.TestProbe import java.io.{File, FileInputStream} import java.util.UUID diff --git a/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerKafkaSpec.scala b/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerKafkaSpec.scala index 1cfda26aa6..9bde313367 100644 --- a/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerKafkaSpec.scala +++ b/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerKafkaSpec.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.event.listener -import org.apache.pekko.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import com.sksamuel.avro4s.RecordFormat import edu.ie3.simona.config.SimonaConfig import edu.ie3.simona.event.RuntimeEvent.{Done, Error, PowerFlowFailed} @@ -20,6 +19,7 @@ import org.apache.kafka.clients.consumer.KafkaConsumer import org.apache.kafka.common.TopicPartition import org.apache.kafka.common.serialization.{Deserializer, Serdes} import org.apache.kafka.common.utils.Bytes +import org.apache.pekko.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import org.scalatest.GivenWhenThen import org.scalatest.prop.TableDrivenPropertyChecks diff --git a/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerSpec.scala b/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerSpec.scala index 22ef952a8a..1c92ed62bd 100644 --- a/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerSpec.scala +++ b/src/test/scala/edu/ie3/simona/event/listener/RuntimeEventListenerSpec.scala @@ -6,11 +6,6 @@ package edu.ie3.simona.event.listener -import org.apache.pekko.actor.testkit.typed.scaladsl.{ - ActorTestKit, - LoggingTestKit, - ScalaTestWithActorTestKit -} import com.typesafe.config.ConfigValueFactory import edu.ie3.simona.config.SimonaConfig import edu.ie3.simona.event.RuntimeEvent @@ -26,6 +21,11 @@ import edu.ie3.simona.event.RuntimeEvent.{ } import edu.ie3.simona.util.TickUtil._ import edu.ie3.util.TimeUtil +import org.apache.pekko.actor.testkit.typed.scaladsl.{ + ActorTestKit, + LoggingTestKit, + ScalaTestWithActorTestKit +} import org.scalatest.PrivateMethodTester import org.scalatest.matchers.should import org.scalatest.wordspec.AnyWordSpecLike @@ -118,7 +118,7 @@ class RuntimeEventListenerSpec ( InitComplete(0L), Level.INFO, - s"Initialization complete. (duration: 0h : 0m : 0s )" + "Initialization complete. (duration: 0h : 0m : 0s )" ), ( Ready(currentTick, 0L), diff --git a/src/test/scala/edu/ie3/simona/integration/RunSimonaStandaloneIT.scala b/src/test/scala/edu/ie3/simona/integration/RunSimonaStandaloneIT.scala index 39e6aaa368..8e0fe1d6d9 100644 --- a/src/test/scala/edu/ie3/simona/integration/RunSimonaStandaloneIT.scala +++ b/src/test/scala/edu/ie3/simona/integration/RunSimonaStandaloneIT.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.integration -import java.io.File -import java.util.concurrent.LinkedBlockingQueue import com.typesafe.config.{ConfigFactory, ConfigValueFactory} import edu.ie3.datamodel.models.result.ResultEntity import edu.ie3.datamodel.models.result.system.PvResult @@ -22,6 +20,8 @@ import edu.ie3.simona.util.ResultFileHierarchy import edu.ie3.util.io.FileIOUtils import org.scalatest.BeforeAndAfterAll +import java.io.File +import java.util.concurrent.LinkedBlockingQueue import scala.io.{BufferedSource, Source} import scala.jdk.CollectionConverters._ diff --git a/src/test/scala/edu/ie3/simona/io/file/ResultFileHierarchySpec.scala b/src/test/scala/edu/ie3/simona/io/file/ResultFileHierarchySpec.scala index e871b4ffb7..8754c4b3b0 100644 --- a/src/test/scala/edu/ie3/simona/io/file/ResultFileHierarchySpec.scala +++ b/src/test/scala/edu/ie3/simona/io/file/ResultFileHierarchySpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.io.file -import java.io.File -import java.nio.file.{Files, Path} - import edu.ie3.datamodel.models.result.system.PvResult import edu.ie3.simona.io.result.ResultSinkType import edu.ie3.simona.test.common.{IOTestCommons, UnitSpec} @@ -17,6 +14,9 @@ import edu.ie3.simona.util.ResultFileHierarchy.ResultEntityPathConfig import edu.ie3.util.io.FileIOUtils import org.scalatest.BeforeAndAfterAll +import java.io.File +import java.nio.file.{Files, Path} + class ResultFileHierarchySpec extends UnitSpec with BeforeAndAfterAll diff --git a/src/test/scala/edu/ie3/simona/io/result/ResultEntityCsvSinkSpec.scala b/src/test/scala/edu/ie3/simona/io/result/ResultEntityCsvSinkSpec.scala index 61e5175ebb..b7b572b6f0 100644 --- a/src/test/scala/edu/ie3/simona/io/result/ResultEntityCsvSinkSpec.scala +++ b/src/test/scala/edu/ie3/simona/io/result/ResultEntityCsvSinkSpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.io.result -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.stream.scaladsl.FileIO -import org.apache.pekko.util.ByteString import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.exceptions.EntityProcessorException import edu.ie3.datamodel.io.processor.result.ResultEntityProcessor @@ -18,6 +15,9 @@ import edu.ie3.simona.exceptions.ProcessResultEventException import edu.ie3.simona.test.common.{IOTestCommons, TestKitWithShutdown, UnitSpec} import edu.ie3.util.TimeUtil import edu.ie3.util.io.FileIOUtils +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.stream.scaladsl.FileIO +import org.apache.pekko.util.ByteString import tech.units.indriya.quantity.Quantities import java.io.File @@ -27,7 +27,6 @@ import java.util.UUID import scala.concurrent.Await import scala.concurrent.duration.DurationInt import scala.io.Source -import scala.language.postfixOps class ResultEntityCsvSinkSpec extends TestKitWithShutdown( diff --git a/src/test/scala/edu/ie3/simona/io/result/ResultEntityKafkaSpec.scala b/src/test/scala/edu/ie3/simona/io/result/ResultEntityKafkaSpec.scala index 9edf05b5ee..76261c41ab 100644 --- a/src/test/scala/edu/ie3/simona/io/result/ResultEntityKafkaSpec.scala +++ b/src/test/scala/edu/ie3/simona/io/result/ResultEntityKafkaSpec.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.io.result -import org.apache.pekko.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import com.sksamuel.avro4s.RecordFormat import edu.ie3.datamodel.models.result.NodeResult import edu.ie3.simona.event.ResultEvent.PowerFlowResultEvent @@ -23,6 +22,7 @@ import org.apache.kafka.clients.consumer.KafkaConsumer import org.apache.kafka.common.TopicPartition import org.apache.kafka.common.serialization.{Deserializer, Serdes} import org.apache.kafka.common.utils.Bytes +import org.apache.pekko.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import org.scalatest.GivenWhenThen import org.scalatest.concurrent.Eventually import org.scalatest.wordspec.AnyWordSpecLike diff --git a/src/test/scala/edu/ie3/simona/model/grid/LineSpec.scala b/src/test/scala/edu/ie3/simona/model/grid/LineSpec.scala index baebd2efe3..59d2568097 100644 --- a/src/test/scala/edu/ie3/simona/model/grid/LineSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/grid/LineSpec.scala @@ -11,12 +11,10 @@ import edu.ie3.datamodel.exceptions.InvalidGridException import edu.ie3.simona.test.common.UnitSpec import edu.ie3.simona.test.common.input.LineInputTestData import edu.ie3.simona.test.common.model.grid.FiveLinesWithNodes -import edu.ie3.util.quantities.PowerSystemUnits._ import edu.ie3.util.scala.OperationInterval import squants.Each import squants.electro.{Amperes, Kilovolts} import squants.energy.Kilowatts -import tech.units.indriya.unit.Units._ import java.util.UUID diff --git a/src/test/scala/edu/ie3/simona/model/grid/SystemComponentSpec.scala b/src/test/scala/edu/ie3/simona/model/grid/SystemComponentSpec.scala index 4ff98b2b02..1061e945e4 100644 --- a/src/test/scala/edu/ie3/simona/model/grid/SystemComponentSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/grid/SystemComponentSpec.scala @@ -6,13 +6,12 @@ package edu.ie3.simona.model.grid -import java.util.UUID - import edu.ie3.simona.model.SystemComponent import edu.ie3.simona.model.grid.SystemComponentSpec.SystemComponentMock import edu.ie3.simona.test.common.UnitSpec import edu.ie3.util.scala.OperationInterval +import java.util.UUID import scala.util.Try /** Test for abstract class [[SystemComponent]] diff --git a/src/test/scala/edu/ie3/simona/model/grid/TransformerModelSpec.scala b/src/test/scala/edu/ie3/simona/model/grid/TransformerModelSpec.scala index f69c0e4fb3..3e36cc1012 100644 --- a/src/test/scala/edu/ie3/simona/model/grid/TransformerModelSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/grid/TransformerModelSpec.scala @@ -30,7 +30,6 @@ import squants.Each import squants.electro.{Amperes, Kilovolts} import squants.energy.Kilowatts import tech.units.indriya.quantity.Quantities -import tech.units.indriya.unit.Units._ import java.time.ZonedDateTime import java.time.temporal.ChronoUnit diff --git a/src/test/scala/edu/ie3/simona/model/participant/ApparentPowerAndHeatSpec.scala b/src/test/scala/edu/ie3/simona/model/participant/ApparentPowerAndHeatSpec.scala index e3788071bd..c5ecf1322d 100644 --- a/src/test/scala/edu/ie3/simona/model/participant/ApparentPowerAndHeatSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/participant/ApparentPowerAndHeatSpec.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.model.participant -import edu.ie3.datamodel.models.StandardUnits import edu.ie3.simona.agent.participant.data.Data.PrimaryData.ApparentPowerAndHeat import edu.ie3.simona.model.participant.ApparentPowerAndHeatSpec.ApparentPowerAndHeatMock import edu.ie3.simona.model.participant.CalcRelevantData.FixedRelevantData @@ -15,7 +14,7 @@ import edu.ie3.simona.test.common.UnitSpec import edu.ie3.util.scala.OperationInterval import edu.ie3.util.scala.quantities.{Megavars, ReactivePower, Vars} import squants.Each -import squants.energy.{Power, Megawatts, Watts} +import squants.energy.{Megawatts, Power, Watts} import java.util.UUID diff --git a/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala b/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala index 2bbe997702..fb4b8522f6 100644 --- a/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.model.participant.load -import java.io.InputStreamReader - import edu.ie3.simona.model.participant.load.random.{ RandomLoadParamStore, RandomLoadParameters, @@ -18,6 +16,8 @@ import edu.ie3.util.TimeUtil import org.scalatest.PrivateMethodTester import org.scalatest.prop.TableDrivenPropertyChecks +import java.io.InputStreamReader + class RandomLoadParamStoreSpec extends UnitSpec with PrivateMethodTester diff --git a/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockIT.scala b/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockIT.scala index 18150013f9..940f858989 100644 --- a/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockIT.scala +++ b/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockIT.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.testkit.typed.scaladsl.{ - ScalaTestWithActorTestKit, - TestProbe -} import edu.ie3.simona.ontology.messages.SchedulerMessage.{ Completion, ScheduleActivation @@ -17,6 +13,10 @@ import edu.ie3.simona.ontology.messages.SchedulerMessage.{ import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.simona.test.common.TestSpawnerTyped import edu.ie3.simona.util.ActorUtils.RichTriggeredAgent +import org.apache.pekko.actor.testkit.typed.scaladsl.{ + ScalaTestWithActorTestKit, + TestProbe +} import org.scalatest.matchers.should import org.scalatest.wordspec.AnyWordSpecLike diff --git a/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockSpec.scala b/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockSpec.scala index e79a4c8c6e..f90a1aa297 100644 --- a/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockSpec.scala +++ b/src/test/scala/edu/ie3/simona/scheduler/ScheduleLockSpec.scala @@ -6,16 +6,16 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.testkit.typed.scaladsl.{ - ScalaTestWithActorTestKit, - TestProbe -} -import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.simona.ontology.messages.SchedulerMessage.{ Completion, ScheduleActivation } +import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.simona.test.common.TestSpawnerTyped +import org.apache.pekko.actor.testkit.typed.scaladsl.{ + ScalaTestWithActorTestKit, + TestProbe +} import org.scalatest.matchers.should import org.scalatest.wordspec.AnyWordSpecLike diff --git a/src/test/scala/edu/ie3/simona/scheduler/SchedulerSpec.scala b/src/test/scala/edu/ie3/simona/scheduler/SchedulerSpec.scala index 60f7fede2d..be340fcc2e 100644 --- a/src/test/scala/edu/ie3/simona/scheduler/SchedulerSpec.scala +++ b/src/test/scala/edu/ie3/simona/scheduler/SchedulerSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.testkit.typed.scaladsl.{ - ScalaTestWithActorTestKit, - TestProbe -} import edu.ie3.simona.ontology.messages.SchedulerMessage.{ Completion, ScheduleActivation @@ -18,6 +14,10 @@ import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} import edu.ie3.simona.scheduler.ScheduleLock.{LockMsg, ScheduleKey, Unlock} import edu.ie3.simona.util.ActorUtils.RichTriggeredAgent import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.testkit.typed.scaladsl.{ + ScalaTestWithActorTestKit, + TestProbe +} import org.scalatest.matchers.should import org.scalatest.wordspec.AnyWordSpecLike diff --git a/src/test/scala/edu/ie3/simona/scheduler/TimeAdvancerSpec.scala b/src/test/scala/edu/ie3/simona/scheduler/TimeAdvancerSpec.scala index 21edf2210f..5ed6bdc88b 100644 --- a/src/test/scala/edu/ie3/simona/scheduler/TimeAdvancerSpec.scala +++ b/src/test/scala/edu/ie3/simona/scheduler/TimeAdvancerSpec.scala @@ -6,11 +6,6 @@ package edu.ie3.simona.scheduler -import org.apache.pekko.actor.testkit.typed.scaladsl.{ - ScalaTestWithActorTestKit, - TestProbe -} -import org.apache.pekko.actor.typed.scaladsl.adapter.TypedActorRefOps import edu.ie3.simona.event.RuntimeEvent import edu.ie3.simona.event.RuntimeEvent._ import edu.ie3.simona.ontology.messages.Activation @@ -22,6 +17,11 @@ import edu.ie3.simona.scheduler.TimeAdvancer.{StartSimMessage, Stop} import edu.ie3.simona.sim.SimMessage import edu.ie3.simona.sim.SimMessage.{SimulationFailure, SimulationSuccessful} import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK +import org.apache.pekko.actor.testkit.typed.scaladsl.{ + ScalaTestWithActorTestKit, + TestProbe +} +import org.apache.pekko.actor.typed.scaladsl.adapter.TypedActorRefOps import org.scalatest.matchers.should import org.scalatest.wordspec.AnyWordSpecLike diff --git a/src/test/scala/edu/ie3/simona/service/ev/ExtEvDataServiceSpec.scala b/src/test/scala/edu/ie3/simona/service/ev/ExtEvDataServiceSpec.scala index 3326252b6d..64a809721b 100644 --- a/src/test/scala/edu/ie3/simona/service/ev/ExtEvDataServiceSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/ev/ExtEvDataServiceSpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.service.ev -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, ActorSystem} -import org.apache.pekko.testkit.{TestActorRef, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.simona.api.data.ev.ExtEvData import edu.ie3.simona.api.data.ev.model.EvModel @@ -32,6 +29,9 @@ import edu.ie3.simona.test.common.{ } import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.quantities.PowerSystemUnits +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, ActorSystem} +import org.apache.pekko.testkit.{TestActorRef, TestProbe} import org.scalatest.wordspec.AnyWordSpecLike import tech.units.indriya.quantity.Quantities diff --git a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySpec.scala b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySpec.scala index 25f32e4c46..c8901cdd94 100644 --- a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySpec.scala +++ b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.service.primary -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.actor.{ActorRef, ActorSystem, PoisonPill} -import org.apache.pekko.testkit.{TestActorRef, TestProbe} -import org.apache.pekko.util.Timeout import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.io.csv.CsvIndividualTimeSeriesMetaInformation import edu.ie3.datamodel.io.naming.FileNamingStrategy @@ -53,6 +49,10 @@ import edu.ie3.simona.test.common.input.TimeSeriesTestData import edu.ie3.simona.test.common.{AgentSpec, TestSpawnerClassic} import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.actor.{ActorRef, ActorSystem, PoisonPill} +import org.apache.pekko.testkit.{TestActorRef, TestProbe} +import org.apache.pekko.util.Timeout import org.scalatest.PartialFunctionValues import org.scalatest.prop.TableDrivenPropertyChecks diff --git a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySqlIT.scala b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySqlIT.scala index 99418e035f..227b57a0b8 100644 --- a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySqlIT.scala +++ b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceProxySqlIT.scala @@ -6,12 +6,6 @@ package edu.ie3.simona.service.primary -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.{ - ClassicActorRefOps, - TypedActorRefOps -} -import org.apache.pekko.testkit.{TestActorRef, TestProbe} import com.dimafeng.testcontainers.{ForAllTestContainer, PostgreSQLContainer} import com.typesafe.config.ConfigFactory import edu.ie3.simona.config.SimonaConfig @@ -31,6 +25,12 @@ import edu.ie3.simona.test.common.{AgentSpec, TestSpawnerClassic} import edu.ie3.simona.test.helper.TestContainerHelper import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.{ + ClassicActorRefOps, + TypedActorRefOps +} +import org.apache.pekko.testkit.{TestActorRef, TestProbe} import org.scalatest.BeforeAndAfterAll import java.util.UUID diff --git a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSpec.scala b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSpec.scala index 6f1aa171a6..0cd6f93fca 100644 --- a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSpec.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.service.primary -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.{TestActorRef, TestProbe} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.io.factory.timeseries.TimeBasedSimpleValueFactory import edu.ie3.datamodel.io.naming.FileNamingStrategy @@ -33,12 +30,15 @@ import edu.ie3.simona.service.primary.PrimaryServiceWorker.{ ProvidePrimaryDataMessage } import edu.ie3.simona.service.primary.PrimaryServiceWorkerSpec.WrongInitPrimaryServiceStateData -import edu.ie3.simona.test.common.{AgentSpec, TestSpawnerClassic} import edu.ie3.simona.test.common.input.TimeSeriesTestData +import edu.ie3.simona.test.common.{AgentSpec, TestSpawnerClassic} import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil import edu.ie3.util.quantities.PowerSystemUnits import edu.ie3.util.scala.collection.immutable.SortedDistinctSeq +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.{TestActorRef, TestProbe} import squants.energy.{Kilowatts, Watts} import tech.units.indriya.quantity.Quantities diff --git a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSqlIT.scala b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSqlIT.scala index 8d0c4a9299..0c16c9b693 100644 --- a/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSqlIT.scala +++ b/src/test/scala/edu/ie3/simona/service/primary/PrimaryServiceWorkerSqlIT.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.service.primary -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.{TestActorRef, TestProbe} import com.dimafeng.testcontainers.{ForAllTestContainer, PostgreSQLContainer} import com.typesafe.config.ConfigFactory import edu.ie3.datamodel.io.naming.DatabaseNamingStrategy @@ -37,6 +34,9 @@ import edu.ie3.simona.test.helper.TestContainerHelper import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil import edu.ie3.util.scala.quantities.Kilovars +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.{TestActorRef, TestProbe} import org.scalatest.BeforeAndAfterAll import org.scalatest.prop.TableDrivenPropertyChecks import squants.energy.Kilowatts diff --git a/src/test/scala/edu/ie3/simona/service/weather/SampleWeatherSourceSpec.scala b/src/test/scala/edu/ie3/simona/service/weather/SampleWeatherSourceSpec.scala index e94aaf6a1c..b2a68c0e98 100644 --- a/src/test/scala/edu/ie3/simona/service/weather/SampleWeatherSourceSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/weather/SampleWeatherSourceSpec.scala @@ -18,9 +18,9 @@ import edu.ie3.util.TimeUtil import edu.ie3.util.scala.quantities.{Irradiance, WattsPerSquareMeter} import org.scalatest.prop.TableDrivenPropertyChecks import org.scalatestplus.mockito.MockitoSugar -import squants.{Temperature, Velocity} import squants.motion.MetersPerSecond import squants.thermal.Celsius +import squants.{Temperature, Velocity} import java.time.ZonedDateTime import scala.util.{Failure, Success} diff --git a/src/test/scala/edu/ie3/simona/service/weather/WeatherServiceSpec.scala b/src/test/scala/edu/ie3/simona/service/weather/WeatherServiceSpec.scala index 8830f6c2ec..d9491fadd7 100644 --- a/src/test/scala/edu/ie3/simona/service/weather/WeatherServiceSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/weather/WeatherServiceSpec.scala @@ -6,14 +6,6 @@ package edu.ie3.simona.service.weather -import org.apache.pekko.actor.ActorSystem -import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps -import org.apache.pekko.testkit.{ - EventFilter, - ImplicitSender, - TestActorRef, - TestProbe -} import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging.LazyLogging import edu.ie3.simona.config.SimonaConfig @@ -39,6 +31,14 @@ import edu.ie3.simona.test.common.{ import edu.ie3.simona.util.SimonaConstants.INIT_SIM_TICK import edu.ie3.util.TimeUtil import edu.ie3.util.scala.quantities.WattsPerSquareMeter +import org.apache.pekko.actor.ActorSystem +import org.apache.pekko.actor.typed.scaladsl.adapter.ClassicActorRefOps +import org.apache.pekko.testkit.{ + EventFilter, + ImplicitSender, + TestActorRef, + TestProbe +} import org.scalatest.PrivateMethodTester import org.scalatest.wordspec.AnyWordSpecLike import squants.motion.MetersPerSecond @@ -64,7 +64,7 @@ class WeatherServiceSpec // setup config for scheduler private val config = ConfigFactory - .parseString(s""" + .parseString(""" simona.time.startDateTime = "2011-01-01 00:00:00" simona.time.endDateTime = "2011-01-01 01:00:00" simona.time.schedulerReadyCheckWindow = 900 diff --git a/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala b/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala index 5d76f0b3e3..ac2c4ffffc 100644 --- a/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala @@ -30,10 +30,10 @@ import edu.ie3.util.geo.GeoUtils import edu.ie3.util.interval.ClosedInterval import edu.ie3.util.scala.quantities.{Irradiance, WattsPerSquareMeter} import org.locationtech.jts.geom.Point -import tech.units.indriya.ComparableQuantity -import squants.{Temperature, Velocity} import squants.motion.MetersPerSecond import squants.thermal.{Celsius, Kelvin} +import squants.{Temperature, Velocity} +import tech.units.indriya.ComparableQuantity import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units diff --git a/src/test/scala/edu/ie3/simona/sim/SimonaSimFailSpec.scala b/src/test/scala/edu/ie3/simona/sim/SimonaSimFailSpec.scala index 27c6c80fae..5653ec3e37 100644 --- a/src/test/scala/edu/ie3/simona/sim/SimonaSimFailSpec.scala +++ b/src/test/scala/edu/ie3/simona/sim/SimonaSimFailSpec.scala @@ -6,6 +6,15 @@ package edu.ie3.simona.sim +import com.typesafe.config.ConfigFactory +import edu.ie3.simona.agent.EnvironmentRefs +import edu.ie3.simona.event.RuntimeEvent +import edu.ie3.simona.scheduler.TimeAdvancer +import edu.ie3.simona.scheduler.TimeAdvancer.StartSimMessage +import edu.ie3.simona.sim.SimMessage.{InitSim, SimulationFailure} +import edu.ie3.simona.sim.SimonaSimFailSpec.FailSim +import edu.ie3.simona.sim.setup.{ExtSimSetupData, SimonaSetup} +import edu.ie3.simona.test.common.AgentSpec import org.apache.pekko.actor.typed.scaladsl.adapter.{ ClassicActorRefOps, ClassicActorSystemOps @@ -18,15 +27,6 @@ import org.apache.pekko.actor.{ Props } import org.apache.pekko.testkit.{TestActorRef, TestProbe} -import com.typesafe.config.ConfigFactory -import edu.ie3.simona.agent.EnvironmentRefs -import edu.ie3.simona.event.RuntimeEvent -import edu.ie3.simona.scheduler.TimeAdvancer -import edu.ie3.simona.scheduler.TimeAdvancer.StartSimMessage -import edu.ie3.simona.sim.SimMessage.{InitSim, SimulationFailure} -import edu.ie3.simona.sim.SimonaSimFailSpec.FailSim -import edu.ie3.simona.sim.setup.{ExtSimSetupData, SimonaSetup} -import edu.ie3.simona.test.common.AgentSpec class SimonaSimFailSpec extends AgentSpec( diff --git a/src/test/scala/edu/ie3/simona/sim/setup/SetupHelperSpec.scala b/src/test/scala/edu/ie3/simona/sim/setup/SetupHelperSpec.scala index 93ae23d06b..5d70053ca7 100644 --- a/src/test/scala/edu/ie3/simona/sim/setup/SetupHelperSpec.scala +++ b/src/test/scala/edu/ie3/simona/sim/setup/SetupHelperSpec.scala @@ -6,10 +6,6 @@ package edu.ie3.simona.sim.setup -import java.util.UUID - -import org.apache.pekko.actor.ActorRef -import org.apache.pekko.testkit.TestException import edu.ie3.datamodel.models.input.MeasurementUnitInput import edu.ie3.datamodel.models.input.connector.{ Transformer2WInput, @@ -21,12 +17,15 @@ import edu.ie3.datamodel.models.input.container.{ } import edu.ie3.simona.test.common.UnitSpec import edu.ie3.simona.test.common.input.GridInputTestData +import org.apache.pekko.actor.ActorRef +import org.apache.pekko.testkit.TestException +import java.util.UUID import scala.jdk.CollectionConverters._ class SetupHelperSpec extends UnitSpec with GridInputTestData { - private final object SetupHelperInstance extends SetupHelper + private object SetupHelperInstance extends SetupHelper "A setup helper" should { "reduce multiple SubGridGates between the same superior and inferior nodes to one unique SubGridGate" in { diff --git a/src/test/scala/edu/ie3/simona/sim/setup/SimonaSetupSpec.scala b/src/test/scala/edu/ie3/simona/sim/setup/SimonaSetupSpec.scala index 26b6246e42..f3a77db962 100644 --- a/src/test/scala/edu/ie3/simona/sim/setup/SimonaSetupSpec.scala +++ b/src/test/scala/edu/ie3/simona/sim/setup/SimonaSetupSpec.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.sim.setup -import org.apache.pekko.actor.{ActorContext, ActorRef, ActorSystem} import edu.ie3.datamodel.exceptions.NotImplementedException import edu.ie3.datamodel.models.input.connector.{ ConnectorPort, @@ -17,6 +16,7 @@ import edu.ie3.simona.event.RuntimeEvent import edu.ie3.simona.scheduler.TimeAdvancer import edu.ie3.simona.test.common.UnitSpec import edu.ie3.simona.test.common.model.grid.SubGridGateMokka +import org.apache.pekko.actor.{ActorContext, ActorRef, ActorSystem} import java.util.UUID diff --git a/src/test/scala/edu/ie3/simona/test/ParticipantAgentSpec.scala b/src/test/scala/edu/ie3/simona/test/ParticipantAgentSpec.scala index b7de3f6435..3aa14d3d91 100644 --- a/src/test/scala/edu/ie3/simona/test/ParticipantAgentSpec.scala +++ b/src/test/scala/edu/ie3/simona/test/ParticipantAgentSpec.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.test +import edu.ie3.simona.test.common.AgentSpec import org.apache.pekko.actor.ActorSystem import org.apache.pekko.testkit.TestProbe -import edu.ie3.simona.test.common.AgentSpec /** Class to help building tests for [[ParticipantAgent]] s * diff --git a/src/test/scala/edu/ie3/simona/test/common/AgentSpec.scala b/src/test/scala/edu/ie3/simona/test/common/AgentSpec.scala index 8c39b41096..5575584280 100644 --- a/src/test/scala/edu/ie3/simona/test/common/AgentSpec.scala +++ b/src/test/scala/edu/ie3/simona/test/common/AgentSpec.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.test.common +import com.typesafe.scalalogging.LazyLogging import org.apache.pekko.actor.{ActorRef, ActorSystem} import org.apache.pekko.testkit.ImplicitSender -import com.typesafe.scalalogging.LazyLogging import org.scalatest.PrivateMethodTester import org.scalatest.matchers.should import org.scalatest.wordspec.AnyWordSpecLike diff --git a/src/test/scala/edu/ie3/simona/test/common/ConfigTestData.scala b/src/test/scala/edu/ie3/simona/test/common/ConfigTestData.scala index f8d42fc3ef..0f5fb4761f 100644 --- a/src/test/scala/edu/ie3/simona/test/common/ConfigTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/ConfigTestData.scala @@ -6,10 +6,10 @@ package edu.ie3.simona.test.common -import org.apache.pekko.actor.ActorRef import com.typesafe.config.{Config, ConfigFactory} import edu.ie3.simona.config.SimonaConfig import edu.ie3.simona.event.listener.SimonaListenerCompanion +import org.apache.pekko.actor.ActorRef /** Simple (empty) configuration data. Furthermore, it would make sense to * implement another class which reads a config and provides config based diff --git a/src/test/scala/edu/ie3/simona/test/common/SilentTestEventListener.scala b/src/test/scala/edu/ie3/simona/test/common/SilentTestEventListener.scala index f3acaeeddd..cf0d601096 100644 --- a/src/test/scala/edu/ie3/simona/test/common/SilentTestEventListener.scala +++ b/src/test/scala/edu/ie3/simona/test/common/SilentTestEventListener.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.test.common +import com.typesafe.scalalogging.LazyLogging import org.apache.pekko.event.Logging.{Debug, Error, Info, Warning, simpleName} import org.apache.pekko.testkit.TestEventListener -import com.typesafe.scalalogging.LazyLogging /** Does the same as TestEventListener but without polluting console logs. If * the log should be enabled for debug purposes adapt resources/log4j2-test.xml diff --git a/src/test/scala/edu/ie3/simona/test/common/TestSpawnerTyped.scala b/src/test/scala/edu/ie3/simona/test/common/TestSpawnerTyped.scala index c1e7cac76c..c0a58c1dd9 100644 --- a/src/test/scala/edu/ie3/simona/test/common/TestSpawnerTyped.scala +++ b/src/test/scala/edu/ie3/simona/test/common/TestSpawnerTyped.scala @@ -6,9 +6,9 @@ package edu.ie3.simona.test.common +import edu.ie3.simona.scheduler.ScheduleLock.Spawner import org.apache.pekko.actor.testkit.typed.scaladsl.ActorTestKitBase import org.apache.pekko.actor.typed.{ActorRef, Behavior} -import edu.ie3.simona.scheduler.ScheduleLock.Spawner trait TestSpawnerTyped { this: ActorTestKitBase => diff --git a/src/test/scala/edu/ie3/simona/test/common/UnitSpec.scala b/src/test/scala/edu/ie3/simona/test/common/UnitSpec.scala index ab6b1752bf..102d58c864 100644 --- a/src/test/scala/edu/ie3/simona/test/common/UnitSpec.scala +++ b/src/test/scala/edu/ie3/simona/test/common/UnitSpec.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.test.common -import java.util.Locale import com.typesafe.scalalogging.LazyLogging import edu.ie3.simona.test.matchers.QuantityMatchers import edu.ie3.util.scala.quantities.{QuantityUtil => PSQuantityUtil} @@ -15,6 +14,8 @@ import org.scalatest.matchers.should import org.scalatest.prop.TableDrivenPropertyChecks import org.scalatest.wordspec.AnyWordSpecLike +import java.util.Locale + /** Base class to be used with all scala unit tests. All data that should be * commonly available to all unit tests should be placed here instead of mixing * a lot of traits together. See diff --git a/src/test/scala/edu/ie3/simona/test/common/input/CylindricalStorageInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/CylindricalStorageInputTestData.scala index a1483310a5..c2b0ee59a8 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/CylindricalStorageInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/CylindricalStorageInputTestData.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.test.common.input -import java.util.UUID - import edu.ie3.datamodel.models.StandardUnits import edu.ie3.datamodel.models.input.thermal.{ CylindricalStorageInput, @@ -15,6 +13,8 @@ import edu.ie3.datamodel.models.input.thermal.{ } import tech.units.indriya.quantity.Quantities.getQuantity +import java.util.UUID + trait CylindricalStorageInputTestData { protected val csInputModel = new CylindricalStorageInput( diff --git a/src/test/scala/edu/ie3/simona/test/common/input/FixedFeedInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/FixedFeedInputTestData.scala index 7fc9e2d6f3..6b45dd1f11 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/FixedFeedInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/FixedFeedInputTestData.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.test.common.input -import java.util.UUID - import edu.ie3.datamodel.models.OperationTime import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.FixedFeedInInput @@ -15,6 +13,8 @@ import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed import edu.ie3.util.quantities.PowerSystemUnits.VOLTAMPERE import tech.units.indriya.quantity.Quantities +import java.util.UUID + /** //ToDo: Class Description * * @version 0.1 diff --git a/src/test/scala/edu/ie3/simona/test/common/input/LineInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/LineInputTestData.scala index 621516d2a7..b6629fad67 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/LineInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/LineInputTestData.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.test.common.input -import java.util.UUID - import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.connector.LineInput import edu.ie3.datamodel.models.input.connector.`type`.LineTypeInput @@ -23,6 +21,8 @@ import edu.ie3.util.quantities.PowerSystemUnits.{ import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units.AMPERE +import java.util.UUID + /** //ToDo: Class Description * * @version 0.1 diff --git a/src/test/scala/edu/ie3/simona/test/common/input/LoadInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/LoadInputTestData.scala index b99c09fc8f..82cc0bc048 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/LoadInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/LoadInputTestData.scala @@ -6,15 +6,16 @@ package edu.ie3.simona.test.common.input -import java.util.UUID +import edu.ie3.datamodel.models.OperationTime import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.LoadInput import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed -import edu.ie3.datamodel.models.OperationTime import edu.ie3.datamodel.models.profile.BdewStandardLoadProfile import edu.ie3.util.quantities.PowerSystemUnits.{KILOWATTHOUR, VOLTAMPERE} import tech.units.indriya.quantity.Quantities +import java.util.UUID + /** //ToDo: Class Description * * @version 0.1 diff --git a/src/test/scala/edu/ie3/simona/test/common/input/NodeInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/NodeInputTestData.scala index 4d63805474..4b67020e7e 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/NodeInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/NodeInputTestData.scala @@ -6,14 +6,14 @@ package edu.ie3.simona.test.common.input -import java.util.UUID - import edu.ie3.datamodel.models.input.{NodeInput, OperatorInput} import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils import edu.ie3.simona.test.common.DefaultTestData import edu.ie3.util.quantities.PowerSystemUnits.PU import tech.units.indriya.quantity.Quantities +import java.util.UUID + /** //ToDo: Class Description * * @version 0.1 diff --git a/src/test/scala/edu/ie3/simona/test/common/input/PvInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/PvInputTestData.scala index f92c0cff86..f1010df666 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/PvInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/PvInputTestData.scala @@ -6,9 +6,6 @@ package edu.ie3.simona.test.common.input -import java.time.ZonedDateTime -import java.util.UUID - import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.PvInput import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed @@ -19,6 +16,9 @@ import org.mockito.Mockito.when import org.scalatestplus.mockito.MockitoSugar import tech.units.indriya.quantity.Quantities +import java.time.ZonedDateTime +import java.util.UUID + /** Simple test data to be used in tests for PvModel. Should be extended as * needed. */ diff --git a/src/test/scala/edu/ie3/simona/test/common/input/SwitchInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/SwitchInputTestData.scala index 3bd7d0990a..f297f250cc 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/SwitchInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/SwitchInputTestData.scala @@ -6,12 +6,12 @@ package edu.ie3.simona.test.common.input -import java.util.UUID - import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.connector.SwitchInput import edu.ie3.simona.test.common.DefaultTestData +import java.util.UUID + /** //ToDo: Class Description * * @version 0.1 diff --git a/src/test/scala/edu/ie3/simona/test/common/input/WecInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/WecInputTestData.scala index f3923c370d..67fb26a6f8 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/WecInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/WecInputTestData.scala @@ -6,15 +6,12 @@ package edu.ie3.simona.test.common.input -import java.util.UUID import edu.ie3.datamodel.models.OperationTime import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.WecInput import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed -import edu.ie3.simona.test.common.DefaultTestData -import edu.ie3.util.TimeUtil -import java.time.ZonedDateTime +import java.util.UUID trait WecInputTestData extends WecTypeInputTestData { diff --git a/src/test/scala/edu/ie3/simona/test/common/input/WecTypeInputTestData.scala b/src/test/scala/edu/ie3/simona/test/common/input/WecTypeInputTestData.scala index 1f2a1a54bf..46497eba9a 100644 --- a/src/test/scala/edu/ie3/simona/test/common/input/WecTypeInputTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/input/WecTypeInputTestData.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.test.common.input -import java.util.UUID - import edu.ie3.datamodel.models.StandardUnits import edu.ie3.datamodel.models.input.system.`type`.WecTypeInput import edu.ie3.datamodel.models.input.system.characteristic.WecCharacteristicInput @@ -15,6 +13,8 @@ import edu.ie3.simona.test.common.DefaultTestData import edu.ie3.util.quantities.PowerSystemUnits import tech.units.indriya.quantity.Quantities +import java.util.UUID + trait WecTypeInputTestData extends DefaultTestData with NodeInputTestData { protected val wecTypeInputEnerconE82 = new WecTypeInput( diff --git a/src/test/scala/edu/ie3/simona/test/common/model/grid/DbfsTestGridWithParticipants.scala b/src/test/scala/edu/ie3/simona/test/common/model/grid/DbfsTestGridWithParticipants.scala index eb0208adbd..575da0dfab 100644 --- a/src/test/scala/edu/ie3/simona/test/common/model/grid/DbfsTestGridWithParticipants.scala +++ b/src/test/scala/edu/ie3/simona/test/common/model/grid/DbfsTestGridWithParticipants.scala @@ -14,8 +14,8 @@ import edu.ie3.datamodel.models.input.container.{ RawGridElements, SystemParticipants } -import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed import edu.ie3.datamodel.models.input.system._ +import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed import edu.ie3.datamodel.models.input.{ MeasurementUnitInput, NodeInput, diff --git a/src/test/scala/edu/ie3/simona/test/common/model/grid/SubGridGateMokka.scala b/src/test/scala/edu/ie3/simona/test/common/model/grid/SubGridGateMokka.scala index 19f3966a23..26609d3e40 100644 --- a/src/test/scala/edu/ie3/simona/test/common/model/grid/SubGridGateMokka.scala +++ b/src/test/scala/edu/ie3/simona/test/common/model/grid/SubGridGateMokka.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.test.common.model.grid -import java.util.UUID import edu.ie3.datamodel.graph.SubGridGate import edu.ie3.datamodel.models.input.NodeInput import edu.ie3.datamodel.models.input.connector.{ @@ -17,6 +16,8 @@ import edu.ie3.datamodel.models.input.connector.{ import org.mockito.Mockito._ import org.scalatestplus.mockito.MockitoSugar +import java.util.UUID + /** Hold my cup of coffee and let me mock you some models. */ trait SubGridGateMokka extends MockitoSugar { diff --git a/src/test/scala/edu/ie3/simona/test/common/model/grid/TransformerTestData.scala b/src/test/scala/edu/ie3/simona/test/common/model/grid/TransformerTestData.scala index c5211f1b19..5b12fd905d 100644 --- a/src/test/scala/edu/ie3/simona/test/common/model/grid/TransformerTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/model/grid/TransformerTestData.scala @@ -9,7 +9,6 @@ package edu.ie3.simona.test.common.model.grid import breeze.math.Complex import edu.ie3.datamodel.models.input.connector.ConnectorPort import edu.ie3.simona.model.grid.RefSystem -import edu.ie3.util.quantities.PowerSystemUnits._ import org.scalatest.prop.TableDrivenPropertyChecks.Table import org.scalatest.prop.{TableFor5, TableFor9} import squants.electro.Kilovolts diff --git a/src/test/scala/edu/ie3/simona/test/common/model/participant/HpTestData.scala b/src/test/scala/edu/ie3/simona/test/common/model/participant/HpTestData.scala index 9dbed89e7b..564c91eca4 100644 --- a/src/test/scala/edu/ie3/simona/test/common/model/participant/HpTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/model/participant/HpTestData.scala @@ -7,8 +7,6 @@ package edu.ie3.simona.test.common.model.participant import edu.ie3.datamodel.models.input.container.ThermalGrid -import edu.ie3.datamodel.models.{OperationTime, StandardUnits} -import edu.ie3.datamodel.models.input.{NodeInput, OperatorInput} import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.datamodel.models.input.system.`type`.HpTypeInput import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic @@ -17,7 +15,9 @@ import edu.ie3.datamodel.models.input.thermal.{ ThermalHouseInput, ThermalStorageInput } +import edu.ie3.datamodel.models.input.{NodeInput, OperatorInput} import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils +import edu.ie3.datamodel.models.{OperationTime, StandardUnits} import edu.ie3.simona.test.common.DefaultTestData import tech.units.indriya.quantity.Quantities diff --git a/src/test/scala/edu/ie3/simona/test/common/model/participant/LoadTestData.scala b/src/test/scala/edu/ie3/simona/test/common/model/participant/LoadTestData.scala index 1aeb8adc5e..459d704076 100644 --- a/src/test/scala/edu/ie3/simona/test/common/model/participant/LoadTestData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/model/participant/LoadTestData.scala @@ -8,12 +8,12 @@ package edu.ie3.simona.test.common.model.participant import edu.ie3.datamodel.models.OperationTime import edu.ie3.simona.model.SystemComponent - -import java.time.ZonedDateTime import edu.ie3.simona.test.common.input.LoadInputTestData import edu.ie3.util.TimeUtil import edu.ie3.util.scala.OperationInterval +import java.time.ZonedDateTime + /** Trait to supply different test data environments for testing a load agent */ trait LoadTestData extends LoadInputTestData { diff --git a/src/test/scala/edu/ie3/simona/test/common/result/PowerFlowResultData.scala b/src/test/scala/edu/ie3/simona/test/common/result/PowerFlowResultData.scala index c04999be92..0d9d8d8075 100644 --- a/src/test/scala/edu/ie3/simona/test/common/result/PowerFlowResultData.scala +++ b/src/test/scala/edu/ie3/simona/test/common/result/PowerFlowResultData.scala @@ -6,8 +6,6 @@ package edu.ie3.simona.test.common.result -import java.util.UUID - import edu.ie3.datamodel.models.StandardUnits import edu.ie3.datamodel.models.result.NodeResult import edu.ie3.datamodel.models.result.connector.{ @@ -21,6 +19,8 @@ import edu.ie3.util.quantities.PowerSystemUnits import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units +import java.util.UUID + trait PowerFlowResultData { private val dummyTime = diff --git a/src/test/scala/edu/ie3/simona/test/matchers/QuantityMatchers.scala b/src/test/scala/edu/ie3/simona/test/matchers/QuantityMatchers.scala index 1afb07811d..93c5de96cc 100644 --- a/src/test/scala/edu/ie3/simona/test/matchers/QuantityMatchers.scala +++ b/src/test/scala/edu/ie3/simona/test/matchers/QuantityMatchers.scala @@ -7,9 +7,10 @@ package edu.ie3.simona.test.matchers import edu.ie3.util.quantities.QuantityUtil -import javax.measure.Quantity import org.scalatest.matchers.{MatchResult, Matcher} +import javax.measure.Quantity + /** Trait, to simplify test coding, that is reliant on [[Quantity]] s */ trait QuantityMatchers { diff --git a/src/test/scala/edu/ie3/simona/util/ActorUtils.scala b/src/test/scala/edu/ie3/simona/util/ActorUtils.scala index dce3a38dc1..a3980f06b5 100644 --- a/src/test/scala/edu/ie3/simona/util/ActorUtils.scala +++ b/src/test/scala/edu/ie3/simona/util/ActorUtils.scala @@ -6,10 +6,10 @@ package edu.ie3.simona.util -import org.apache.pekko.actor.testkit.typed.scaladsl.TestProbe -import org.apache.pekko.actor.typed.ActorRef import edu.ie3.simona.ontology.messages.SchedulerMessage.Completion import edu.ie3.simona.ontology.messages.{Activation, SchedulerMessage} +import org.apache.pekko.actor.testkit.typed.scaladsl.TestProbe +import org.apache.pekko.actor.typed.ActorRef import org.scalatest.matchers.should.Matchers.convertToAnyShouldWrapper object ActorUtils { diff --git a/src/test/scala/edu/ie3/simona/util/CollectionUtilsSpec.scala b/src/test/scala/edu/ie3/simona/util/CollectionUtilsSpec.scala index 2553818567..debd508b9b 100644 --- a/src/test/scala/edu/ie3/simona/util/CollectionUtilsSpec.scala +++ b/src/test/scala/edu/ie3/simona/util/CollectionUtilsSpec.scala @@ -8,8 +8,7 @@ package edu.ie3.simona.util import edu.ie3.simona.test.common.UnitSpec import edu.ie3.simona.util.CollectionUtils._ -import squants.Each -import squants.Dimensionless +import squants.{Dimensionless, Each} class CollectionUtilsSpec extends UnitSpec { diff --git a/src/test/scala/edu/ie3/simona/util/ConfigUtilSpec.scala b/src/test/scala/edu/ie3/simona/util/ConfigUtilSpec.scala index 931ae996c5..ad62d964ab 100644 --- a/src/test/scala/edu/ie3/simona/util/ConfigUtilSpec.scala +++ b/src/test/scala/edu/ie3/simona/util/ConfigUtilSpec.scala @@ -24,8 +24,8 @@ import edu.ie3.simona.util.ConfigUtil.NotifierIdentifier._ import edu.ie3.simona.util.ConfigUtil.{ GridOutputConfigUtil, NotifierIdentifier, - ParticipantConfigUtil, - OutputConfigUtil + OutputConfigUtil, + ParticipantConfigUtil } import org.scalatest.prop.{TableDrivenPropertyChecks, TableFor2} diff --git a/src/test/scala/edu/ie3/simona/util/TestGridFactory.scala b/src/test/scala/edu/ie3/simona/util/TestGridFactory.scala index 89f0cdf57e..c5b1a5e921 100644 --- a/src/test/scala/edu/ie3/simona/util/TestGridFactory.scala +++ b/src/test/scala/edu/ie3/simona/util/TestGridFactory.scala @@ -6,7 +6,6 @@ package edu.ie3.simona.util -import edu.ie3.datamodel.models.input.{MeasurementUnitInput, NodeInput} import edu.ie3.datamodel.models.input.connector.{ LineInput, SwitchInput, @@ -25,6 +24,7 @@ import edu.ie3.datamodel.models.input.graphics.{ NodeGraphicInput } import edu.ie3.datamodel.models.input.system._ +import edu.ie3.datamodel.models.input.{MeasurementUnitInput, NodeInput} import scala.jdk.CollectionConverters._ From 2553dc789fb33ac6348c05900bbd95b0efef278d Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 17:52:29 +0100 Subject: [PATCH 08/15] Adding oen mistake to test CI --- .../model/participant/load/RandomLoadParamStoreSpec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala b/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala index fb4b8522f6..e56a927ca3 100644 --- a/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala @@ -13,8 +13,8 @@ import edu.ie3.simona.model.participant.load.random.{ } import edu.ie3.simona.test.common.UnitSpec import edu.ie3.util.TimeUtil -import org.scalatest.PrivateMethodTester import org.scalatest.prop.TableDrivenPropertyChecks +import org.scalatest.PrivateMethodTester import java.io.InputStreamReader From 1bec2819eb9e0c4c72b9e41ca66b198b10007b6b Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Wed, 29 Nov 2023 18:09:35 +0100 Subject: [PATCH 09/15] Fixing error again - CI should pass --- .../model/participant/load/RandomLoadParamStoreSpec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala b/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala index e56a927ca3..fb4b8522f6 100644 --- a/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala +++ b/src/test/scala/edu/ie3/simona/model/participant/load/RandomLoadParamStoreSpec.scala @@ -13,8 +13,8 @@ import edu.ie3.simona.model.participant.load.random.{ } import edu.ie3.simona.test.common.UnitSpec import edu.ie3.util.TimeUtil -import org.scalatest.prop.TableDrivenPropertyChecks import org.scalatest.PrivateMethodTester +import org.scalatest.prop.TableDrivenPropertyChecks import java.io.InputStreamReader From d8d70eb9421ed98c4eed6bba014a32599435fa39 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Thu, 30 Nov 2023 00:02:42 +0100 Subject: [PATCH 10/15] Remove all usages of asInstanceOf outside SimonaConfig --- .../ParticipantAgentFundamentals.scala | 38 +++------- .../evcs/EvcsAgentFundamentals.scala | 3 - .../FixedFeedInAgentFundamentals.scala | 3 - .../participant/hp/HpAgentFundamentals.scala | 3 - .../load/LoadAgentFundamentals.scala | 3 - .../participant/pv/PvAgentFundamentals.scala | 3 - .../wec/WecAgentFundamentals.scala | 3 - .../io/result/ResultEntityKafkaSink.scala | 13 ++-- .../edu/ie3/simona/model/grid/GridModel.scala | 3 +- .../load/profile/ProfileLoadModel.scala | 69 +++++++++---------- .../util/scala/io/ScalaReflectionSerde.scala | 4 +- .../participant/ParticipantAgentMock.scala | 3 - 12 files changed, 55 insertions(+), 93 deletions(-) diff --git a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala index 0417d5270d..adcdf48300 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala @@ -99,7 +99,6 @@ protected trait ParticipantAgentFundamentals[ M <: SystemParticipant[CD, PD] ] extends ServiceRegistration[PD, CD, D, I, MC, M] { this: ParticipantAgent[PD, CD, D, I, MC, M] => - protected val pdClassTag: ClassTag[PD] protected implicit val timeout: util.Timeout = Timeout(10, TimeUnit.SECONDS) /** Tries to extract the DateTime value from the base state data and verifies, @@ -670,48 +669,29 @@ protected trait ParticipantAgentFundamentals[ .flatMap { case (_, maybeData) => maybeData } - .fold[Try[PrimaryData]] { + .fold[Try[PD]] { Failure( new IllegalStateException( "Not able to determine the most recent result, although it should have been sent." ) ) } { - case result: PrimaryData - if pdClassTag.runtimeClass.equals(result.getClass) => + case result: PD => Success(result) - case primaryData: PrimaryData => - primaryData match { - case pd: EnrichableData[_] => - val q = - reactivePowerFunction(pd.p) - val enriched = pd.add(q) - if (pdClassTag.runtimeClass.equals(enriched.getClass)) - Success(enriched) - else - Failure( - new IllegalStateException( - "Received primary data cannot be enriched to expected data. Expected: " + pdClassTag.runtimeClass.getName + ", got: " + primaryData.getClass.getName + ", enriched to: " + enriched.getClass.getName - ) - ) - case _ => - Failure( - new IllegalStateException( - "Got the wrong primary data. Expected: " + pdClassTag.runtimeClass.getName + ", got: " + primaryData.getClass.getName - ) - ) - } - case secondaryData: SecondaryData => + case pd: PrimaryData with EnrichableData[PD] => + val q = reactivePowerFunction(pd.p) + Success(pd.add(q)) + case other => Failure( new IllegalStateException( - s"Did expect primary data, but got '$secondaryData'." + s"Did expect primary data, but got '$other'." ) ) } - .map(_.asInstanceOf[PD]) /** Change over to [[Idle]] state and reply completion to the scheduler. By - * doing so, also schedule an [[Activation]] for the next upcoming action. + * doing so, also schedule an [[edu.ie3.simona.ontology.messages.Activation]] + * for the next upcoming action. * * @param baseStateData * Base state data to pop next activation from diff --git a/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala index d76dffbdbb..870b56249d 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/evcs/EvcsAgentFundamentals.scala @@ -54,7 +54,6 @@ import squants.{Dimensionless, Each} import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet -import scala.reflect.{ClassTag, classTag} protected trait EvcsAgentFundamentals extends ParticipantAgentFundamentals[ @@ -67,8 +66,6 @@ protected trait EvcsAgentFundamentals ] with LazyLogging { this: EvcsAgent => - override protected val pdClassTag: ClassTag[ApparentPower] = - classTag[ApparentPower] /** Determines the needed base state data in dependence of the foreseen * simulation mode of the agent. diff --git a/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala index 7c619f9649..97e696fb34 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/fixedfeedin/FixedFeedInAgentFundamentals.scala @@ -45,7 +45,6 @@ import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet -import scala.reflect.{ClassTag, classTag} protected trait FixedFeedInAgentFundamentals extends ParticipantAgentFundamentals[ @@ -57,8 +56,6 @@ protected trait FixedFeedInAgentFundamentals FixedFeedInModel ] { this: FixedFeedInAgent => - override protected val pdClassTag: ClassTag[ApparentPower] = - classTag[ApparentPower] override val alternativeResult: ApparentPower = ZERO_POWER /** Determines the needed base state data in dependence of the foreseen diff --git a/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala index e17f0af060..56a0b0990e 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/hp/HpAgentFundamentals.scala @@ -56,7 +56,6 @@ import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet import scala.jdk.OptionConverters.RichOptional -import scala.reflect.{ClassTag, classTag} trait HpAgentFundamentals extends ParticipantAgentFundamentals[ @@ -68,8 +67,6 @@ trait HpAgentFundamentals HpModel ] { this: HpAgent => - override protected val pdClassTag: ClassTag[ApparentPowerAndHeat] = - classTag[ApparentPowerAndHeat] override val alternativeResult: ApparentPowerAndHeat = ApparentPowerAndHeat( Megawatts(0d), Megavars(0d), diff --git a/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala index 438808de3d..0f98c5668f 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/load/LoadAgentFundamentals.scala @@ -59,7 +59,6 @@ import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet -import scala.reflect.{ClassTag, classTag} protected trait LoadAgentFundamentals[LD <: LoadRelevantData, LM <: LoadModel[ LD @@ -72,8 +71,6 @@ protected trait LoadAgentFundamentals[LD <: LoadRelevantData, LM <: LoadModel[ LM ] { this: LoadAgent[LD, LM] => - override protected val pdClassTag: ClassTag[ApparentPower] = - classTag[ApparentPower] override val alternativeResult: ApparentPower = ZERO_POWER /** Determines the needed base state data in dependence of the foreseen diff --git a/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala index 3fd18c3094..ff0a461f45 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/pv/PvAgentFundamentals.scala @@ -50,7 +50,6 @@ import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet -import scala.reflect.{ClassTag, classTag} protected trait PvAgentFundamentals extends ParticipantAgentFundamentals[ @@ -62,8 +61,6 @@ protected trait PvAgentFundamentals PvModel ] { this: PvAgent => - override protected val pdClassTag: ClassTag[ApparentPower] = - classTag[ApparentPower] override val alternativeResult: ApparentPower = ZERO_POWER /** Determines the needed base state data in dependence of the foreseen diff --git a/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala index deed22f3d4..c0995c3fcd 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/wec/WecAgentFundamentals.scala @@ -48,7 +48,6 @@ import squants.{Dimensionless, Each, Power} import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet -import scala.reflect.{ClassTag, classTag} protected trait WecAgentFundamentals extends ParticipantAgentFundamentals[ @@ -60,8 +59,6 @@ protected trait WecAgentFundamentals WecModel ] { this: WecAgent => - override protected val pdClassTag: ClassTag[ApparentPower] = - classTag[ApparentPower] override val alternativeResult: ApparentPower = ZERO_POWER /** Determines the needed base state data in dependence of the foreseen diff --git a/src/main/scala/edu/ie3/simona/io/result/ResultEntityKafkaSink.scala b/src/main/scala/edu/ie3/simona/io/result/ResultEntityKafkaSink.scala index b9d8f1f272..d8d120209e 100644 --- a/src/main/scala/edu/ie3/simona/io/result/ResultEntityKafkaSink.scala +++ b/src/main/scala/edu/ie3/simona/io/result/ResultEntityKafkaSink.scala @@ -34,10 +34,15 @@ final case class ResultEntityKafkaSink[ ) extends ResultEntitySink { override def handleResultEntity(resultEntity: ResultEntity): Unit = { - val plainEntity = plainWriter.writePlain(resultEntity.asInstanceOf[V]) - producer.send( - new ProducerRecord[String, P](topic, plainEntity) - ) + resultEntity match { + case matchingEntity: V => + val plainEntity = plainWriter.writePlain(matchingEntity) + producer.send( + new ProducerRecord[String, P](topic, plainEntity) + ) + case other => + throw new RuntimeException(s"Received unexpected result entity $other") + } } override def close(): Unit = { diff --git a/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala b/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala index f350d33f32..16e0b0a604 100644 --- a/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala +++ b/src/main/scala/edu/ie3/simona/model/grid/GridModel.scala @@ -133,8 +133,9 @@ case object GridModel { transformerInput: Transformer3WInput, nodes: Seq[NodeModel] ): (NodeModel, NodeModel, NodeModel) = { + val connectorInput: ConnectorInput = transformerInput // upcast val (nodeA, nodeB) = - getConnectedNodes(transformerInput.asInstanceOf[ConnectorInput], nodes) + getConnectedNodes(connectorInput, nodes) val nodeCOpt: Option[NodeModel] = nodes.find( _.uuid.equals(transformerInput.getNodeC.getUuid) ) diff --git a/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala b/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala index 3987130c68..3be160d938 100644 --- a/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala +++ b/src/main/scala/edu/ie3/simona/model/participant/load/profile/ProfileLoadModel.scala @@ -103,7 +103,7 @@ final case class ProfileLoadModel( } } -case object ProfileLoadModel { +object ProfileLoadModel { final case class ProfileRelevantData(date: ZonedDateTime) extends LoadRelevantData @@ -113,42 +113,39 @@ case object ProfileLoadModel { operationInterval: OperationInterval, scalingFactor: Double, reference: LoadReference - ): ProfileLoadModel = reference match { - case LoadReference.ActivePower(power) => - val sRatedPowerScaled = LoadModel.scaleSRatedActivePower(input, power) - ProfileLoadModel( - input.getUuid, - input.getId, - operationInterval, - scalingFactor, - QControl.apply(input.getqCharacteristics()), - sRatedPowerScaled, - input.getCosPhiRated, - input.getLoadProfile.asInstanceOf[StandardLoadProfile], - reference - ) + ): ProfileLoadModel = { + val standardLoadProfile = input.getLoadProfile match { + case slp: StandardLoadProfile => slp + case other => + throw new RuntimeException( + s"Unexpected load profile $other within load model ${input.getUuid}" + ) + } - case LoadReference.EnergyConsumption(energyConsumption) => - val loadProfileMax = - LoadProfileStore().maxPower( - input.getLoadProfile.asInstanceOf[StandardLoadProfile] + val sRated = reference match { + case LoadReference.ActivePower(power) => + LoadModel.scaleSRatedActivePower(input, power) + case LoadReference.EnergyConsumption(energyConsumption) => + val loadProfileMax = + LoadProfileStore().maxPower(standardLoadProfile) + LoadModel.scaleSRatedEnergy( + input, + energyConsumption, + loadProfileMax, + LoadProfileStore.defaultLoadProfileEnergyScaling ) - val sRatedEnergy = LoadModel.scaleSRatedEnergy( - input, - energyConsumption, - loadProfileMax, - LoadProfileStore.defaultLoadProfileEnergyScaling - ) - ProfileLoadModel( - input.getUuid, - input.getId, - operationInterval, - scalingFactor, - QControl.apply(input.getqCharacteristics()), - sRatedEnergy, - input.getCosPhiRated, - input.getLoadProfile.asInstanceOf[StandardLoadProfile], - reference - ) + } + + ProfileLoadModel( + input.getUuid, + input.getId, + operationInterval, + scalingFactor, + QControl.apply(input.getqCharacteristics()), + sRated, + input.getCosPhiRated, + standardLoadProfile, + reference + ) } } diff --git a/src/main/scala/edu/ie3/util/scala/io/ScalaReflectionSerde.scala b/src/main/scala/edu/ie3/util/scala/io/ScalaReflectionSerde.scala index e129c8dff6..f342c60b8b 100644 --- a/src/main/scala/edu/ie3/util/scala/io/ScalaReflectionSerde.scala +++ b/src/main/scala/edu/ie3/util/scala/io/ScalaReflectionSerde.scala @@ -37,7 +37,7 @@ object ScalaReflectionSerde { override def close(): Unit = inner.close() } - def reflectionDeserializer4S[T: RecordFormat]: Deserializer[T] = + def reflectionDeserializer4S[T >: Null: RecordFormat]: Deserializer[T] = new Deserializer[T] { val inner = new GenericAvroDeserializer() @@ -52,7 +52,7 @@ object ScalaReflectionSerde { .map(data => implicitly[RecordFormat[T]].from(inner.deserialize(topic, data)) ) - .getOrElse(null.asInstanceOf[T]) + .orNull override def close(): Unit = inner.close() } diff --git a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala index 302279f453..c920facf5a 100644 --- a/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala +++ b/src/test/scala/edu/ie3/simona/agent/participant/ParticipantAgentMock.scala @@ -47,7 +47,6 @@ import squants.energy.{Kilowatts, Megawatts} import java.time.ZonedDateTime import java.util.UUID import scala.collection.SortedSet -import scala.reflect.{ClassTag, classTag} /** Creating a mocking participant agent * @@ -78,8 +77,6 @@ class ParticipantAgentMock( SimonaConfig.BaseRuntimeConfig, SystemParticipant[FixedRelevantData.type, ApparentPower] ] { - override protected val pdClassTag: ClassTag[ApparentPower] = - classTag[ApparentPower] override val alternativeResult: ApparentPower = ZERO_POWER /** Partial function, that is able to transfer From d9bfa96a3b8bf6a872e0c3d07687214fe28ab372 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Thu, 30 Nov 2023 00:04:16 +0100 Subject: [PATCH 11/15] is/asInstanceOf disallowed in the future --- .scalafix.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.scalafix.conf b/.scalafix.conf index a6ee3fe794..b15cf113cd 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -24,6 +24,8 @@ OrganizeImports { DisableSyntax { noWhileLoops = true + // noIsInstanceOf = true FIXME can be enabled once pureconfig is in use + // noAsInstanceOf = true FIXME same noXml = true noFinalize = true noValPatterns = true From 2eb61e3c2926e80dec08ebe36d2b42bf2fed2191 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Thu, 30 Nov 2023 00:52:29 +0100 Subject: [PATCH 12/15] Fixing primary data type recognition --- .../agent/participant/ParticipantAgent.scala | 10 ++++--- .../ParticipantAgentFundamentals.scala | 26 +++++++++++++++---- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala index 87c3279e04..638c59e03c 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgent.scala @@ -53,6 +53,7 @@ import org.apache.pekko.actor.{ActorRef, FSM} import squants.{Dimensionless, Power} import java.time.ZonedDateTime +import scala.reflect.{ClassTag, classTag} /** Common properties to participant agents * @@ -75,7 +76,7 @@ import java.time.ZonedDateTime * @since 2019-07-04 */ abstract class ParticipantAgent[ - PD <: PrimaryDataWithApparentPower[PD], + PD <: PrimaryDataWithApparentPower[PD]: ClassTag, CD <: CalcRelevantData, D <: ParticipantStateData[PD], I <: SystemParticipantInput, @@ -266,7 +267,7 @@ abstract class ParticipantAgent[ isYetTriggered = true, currentTick, scheduler - )(stateData.baseStateData.outputConfig) + )(stateData.baseStateData.outputConfig, classTag[PD]) case Event( msg: ProvisionMessage[_], @@ -317,7 +318,7 @@ abstract class ParticipantAgent[ isYetTriggered, currentTick, scheduler - )(updatedBaseStateData.outputConfig) + )(updatedBaseStateData.outputConfig, classTag[PD]) } else throw new IllegalStateException( s"Did not expect message from ${sender()} at tick $currentTick" @@ -581,7 +582,8 @@ abstract class ParticipantAgent[ tick: Long, scheduler: ActorRef )(implicit - outputConfig: NotifierConfig + outputConfig: NotifierConfig, + pdCt: ClassTag[PD] ): FSM.State[AgentState, ParticipantStateData[PD]] /** Partial function, that is able to transfer diff --git a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala index adcdf48300..6ba0d98423 100644 --- a/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala +++ b/src/main/scala/edu/ie3/simona/agent/participant/ParticipantAgentFundamentals.scala @@ -85,7 +85,7 @@ import java.time.ZonedDateTime import java.util.UUID import java.util.concurrent.TimeUnit import scala.collection.SortedSet -import scala.reflect.ClassTag +import scala.reflect.{ClassTag, classTag} import scala.util.{Failure, Success, Try} /** Useful functions to use in [[ParticipantAgent]] s @@ -553,7 +553,8 @@ protected trait ParticipantAgentFundamentals[ tick: Long, scheduler: ActorRef )(implicit - outputConfig: NotifierConfig + outputConfig: NotifierConfig, + pdCt: ClassTag[PD] ): FSM.State[AgentState, ParticipantStateData[PD]] = { if (!stateData.data.exists(_._2.isEmpty) && isYetTriggered) { /* We got everything we expect and we are yet triggered */ @@ -664,7 +665,7 @@ protected trait ParticipantAgentFundamentals[ def prepareData( data: Map[ActorRef, Option[_ <: Data]], reactivePowerFunction: Power => ReactivePower - ): Try[PD] = + )(implicit pdCt: ClassTag[PD]): Try[PD] = data.headOption .flatMap { case (_, maybeData) => maybeData @@ -678,9 +679,24 @@ protected trait ParticipantAgentFundamentals[ } { case result: PD => Success(result) - case pd: PrimaryData with EnrichableData[PD] => + case pd: PrimaryData with EnrichableData[_] => val q = reactivePowerFunction(pd.p) - Success(pd.add(q)) + pd.add(q) match { + case x: PD if classTag[PD].runtimeClass.isInstance(x) => Success(x) + case other => + Failure( + new IllegalStateException( + "Received primary data cannot be enriched to expected data. " + + s"Expected: ${classTag[PD].runtimeClass.getName}, got: ${pd.getClass.getName}, enriched to: ${other.getClass.getName}" + ) + ) + } + case pd: PrimaryData => + Failure( + new IllegalStateException( + s"Got the wrong primary data. Expected: ${classTag[PD].runtimeClass.getName}, got: ${pd.getClass.getName}" + ) + ) case other => Failure( new IllegalStateException( From eb9acb1aa903312b83d94ac509fc45bf458d2480 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Thu, 30 Nov 2023 14:47:56 +0100 Subject: [PATCH 13/15] Adding gradle settings to users guide --- .../usersguide/intellij-gradle-settings.png | Bin 0 -> 21661 bytes docs/readthedocs/usersguide.md | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 docs/readthedocs/images/usersguide/intellij-gradle-settings.png diff --git a/docs/readthedocs/images/usersguide/intellij-gradle-settings.png b/docs/readthedocs/images/usersguide/intellij-gradle-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..d461a36f11d94550c9a63632e28d83a3b2cd3901 GIT binary patch literal 21661 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%0DrIKLTXcTpf|3JUT@B0z` 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 literal 0 HcmV?d00001 diff --git a/docs/readthedocs/usersguide.md b/docs/readthedocs/usersguide.md index d34f221966..009d3a881b 100644 --- a/docs/readthedocs/usersguide.md +++ b/docs/readthedocs/usersguide.md @@ -15,6 +15,12 @@ You can find and download the source code of the latest stable SIMONA version [h $ git clone https://github.com/ie3-institute/simona.git +For speedy execution and optimal convenience, change the Gradle build settings to build and run using Gradle and run tests using IntelliJ IDEA. +Open the settings window via ``File > Settings``. Find the Gradle settings in at ``Build, Execution, Deployment > Build Tools > Gradle`` or via the search bar at the top. +When building the project using Gradle, tools such as ``scalafix`` can work on the already assembled project via Gradle. +Running tests is most convenient via IntelliJ, because this way one can properly take advantage of the respective graphical user interface. + +![](../readthedocs/images/usersguide/intellij-gradle-settings.png) ## Running a Standalone Simulation From 887a77c38a9595edb9e099c3fe314674fbdfc1eb Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Thu, 30 Nov 2023 14:52:20 +0100 Subject: [PATCH 14/15] Adding scalafix requirement to dev's guide --- docs/readthedocs/developersguide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/readthedocs/developersguide.md b/docs/readthedocs/developersguide.md index ace59e05e6..1e9657aaa0 100644 --- a/docs/readthedocs/developersguide.md +++ b/docs/readthedocs/developersguide.md @@ -30,6 +30,7 @@ In short, mergeable PRs have to meet our standards in several areas: - Automated checks - [Jenkins](https://simona.ie3.e-technik.tu-dortmund.de/ci/job/ie3-institute/job/simona/) run succeeds, i.e. - The code needs to be properly formatted (`gradle spotlessApply`) + - The code needs to adhere to some standards regarding import order etc. (`gradle scalafix`) - The code needs to compile - All tests need to succeed - [SonarQube](https://simona.ie3.e-technik.tu-dortmund.de/sonar/dashboard?id=edu.ie3%3Asimona) run succeeds, i.e. From f7ac76e46ca1ebdc4ebb3a56ee7271c0dffe72a6 Mon Sep 17 00:00:00 2001 From: Sebastian Peter Date: Thu, 30 Nov 2023 14:53:41 +0100 Subject: [PATCH 15/15] Small addition --- docs/readthedocs/developersguide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/readthedocs/developersguide.md b/docs/readthedocs/developersguide.md index 1e9657aaa0..e02cdffee6 100644 --- a/docs/readthedocs/developersguide.md +++ b/docs/readthedocs/developersguide.md @@ -46,7 +46,7 @@ In short, mergeable PRs have to meet our standards in several areas: - All vital parts of the new code need to be covered by tests (see {ref}`developersguide:tests`) - Code quality should be sufficient (see {ref}`developersguide:coding conventions`) -There can be exceptions to these rules, which have to be approved by the reviewer. +There can be exceptions to these rules in special cases, which have to be approved by the reviewer. ### Tests