diff --git a/build.sbt b/build.sbt index 0e57a38b4668..7c0c187eac90 100644 --- a/build.sbt +++ b/build.sbt @@ -992,7 +992,8 @@ lazy val `version-output` = (project in file("lib/scala/version-output")) .settings( frgaalJavaCompilerSetting, Compile / sourceGenerators += Def.task { - val file = (Compile / sourceManaged).value / "buildinfo" / "Info.scala" + val file = + (Compile / sourceManaged).value / "org" / "enso" / "version" / "GeneratedVersion.java" BuildInfo .writeBuildInfoFile( file = file, @@ -1222,14 +1223,16 @@ lazy val testkit = project .in(file("lib/scala/testkit")) .settings( frgaalJavaCompilerSetting, - libraryDependencies ++= Seq( + libraryDependencies ++= logbackPkg ++ Seq( "org.apache.commons" % "commons-lang3" % commonsLangVersion, "commons-io" % "commons-io" % commonsIoVersion, "org.scalatest" %% "scalatest" % scalatestVersion, "junit" % "junit" % junitVersion, - "com.github.sbt" % "junit-interface" % junitIfVersion + "com.github.sbt" % "junit-interface" % junitIfVersion, + "org.slf4j" % "slf4j-api" % slf4jVersion ) ) + .dependsOn(`logging-service-logback`) lazy val searcher = project .in(file("lib/scala/searcher")) @@ -1444,7 +1447,7 @@ val truffleRunOptionsSettings = Seq( * the potential conflicts with other *.conf files. */ val testLogProviderOptions = Seq( - "-Dslf4j.provider=org.enso.logger.TestLogProvider", + "-Dslf4j.provider=org.enso.logging.service.logback.test.provider.TestLogProvider", "-Dconfig.resource=application-test.conf" ) @@ -2978,6 +2981,7 @@ lazy val editions = project cleanFiles += baseDirectory.value / ".." / ".." / "distribution" / "editions" ) .dependsOn(semver) + .dependsOn(`version-output`) .dependsOn(testkit % Test) lazy val semver = project diff --git a/docs/infrastructure/logging.md b/docs/infrastructure/logging.md index c771eb08f46f..ec993c963b7d 100644 --- a/docs/infrastructure/logging.md +++ b/docs/infrastructure/logging.md @@ -52,7 +52,7 @@ The configuration has two main sections: During component's setup, its `application.conf` config file is parsed. The config's keys and values are validated and, if correct, the parsed representation is available as an instance of -`org.enso.logger.config.LoggingServiceConfig` class. The class encapsulates the +`org.enso.logging.config.LoggingServiceConfig` class. The class encapsulates the `logging-service` section of `application.conf` file and is used to programmatically initialize loggers. @@ -191,7 +191,7 @@ File appender directs all log events to a log file: Rolling policy is a fully optional property of File Appender that would trigger automatic log rotation. All properties are optional with some reasonable -defaults if missing (defined in `org.enso.logger.config.FileAppender` config +defaults if missing (defined in `org.enso.logging.config.FileAppender` config class). #### Socket Appender @@ -281,9 +281,10 @@ The `org.slf4j.Logger` instances have to know where to send log events. This setting is typically performed once, when the service starts, and applies globally during its execution. Currently, it is not possible to dynamically change where log events are being stored. The main (abstract) class used for -setting up logging is `org.enso.logger.LoggerSetup`. An instance of that class -can be retrieved with the thread-safe `org.enso.logger.LoggerSetup.get` factory -method. `org.enso.logger.LoggerSetup` provides a number of `setupXYZAppender` +setting up logging is `org.enso.logging.config.LoggerSetup`. An instance of that +class can be retrieved with the thread-safe +`org.enso.logging.config.LoggerSetup.get` factory method. +`org.enso.logging.config.LoggerSetup` provides a number of `setupXYZAppender` methods that will direct loggers to send log events to an `XYZ` appender. Setting a specific hard-coded appender programmatically should however be avoided by the users. Instead, one should invoke one of the overloaded `setup` @@ -292,7 +293,7 @@ configuration. ```java package foo; -import org.enso.logger.LoggerSetup; +import org.enso.logging.config.LoggerSetup; import org.slf4j.event.Level; public class MyService { @@ -308,13 +309,13 @@ public class MyService { } ``` -`org.enso.logging.LoggingSetupHelper` class was introduced to help with the most -common use cases - establishing a file-based logging in the Enso's dedicated -directories or connecting to an existing logging server once it starts accepting -connections. That is why services don't call `LoggerSetup` directly but instead -provide a service-specific implementation of -`org.enso.logging.LoggingSetupHelper`. `LoggingSetupHelper` and `LoggerSetup` -provide `teardown` methods to properly dispose of log events. +`org.enso.logging.service.LoggingSetupHelper` class was introduced to help with +the most common use cases - establishing a file-based logging in the Enso's +dedicated directories or connecting to an existing logging server once it starts +accepting connections. That is why services don't call `LoggerSetup` directly +but instead provide a service-specific implementation of +`org.enso.logging.service.LoggingSetupHelper`. `LoggingSetupHelper` and +`LoggerSetup` provide `teardown` methods to properly dispose of log events. ### Log Masking diff --git a/engine/common/src/main/java/org/enso/common/ContextFactory.java b/engine/common/src/main/java/org/enso/common/ContextFactory.java index da53df9e0dce..639621531473 100644 --- a/engine/common/src/main/java/org/enso/common/ContextFactory.java +++ b/engine/common/src/main/java/org/enso/common/ContextFactory.java @@ -7,7 +7,7 @@ import org.enso.logger.Converter; import org.enso.logger.JulHandler; -import org.enso.logger.LoggerSetup; +import org.enso.logging.config.LoggerSetup; import org.graalvm.polyglot.Context; import org.graalvm.polyglot.HostAccess; import org.graalvm.polyglot.io.MessageTransport; diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/boot/MainModule.scala b/engine/language-server/src/main/scala/org/enso/languageserver/boot/MainModule.scala index f55fe0ca399b..a28a06d18843 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/boot/MainModule.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/boot/MainModule.scala @@ -2,7 +2,6 @@ package org.enso.languageserver.boot import akka.actor.ActorSystem import akka.stream.Materializer -import buildinfo.Info import com.typesafe.config.ConfigFactory import org.enso.distribution.locking.{ ResourceManager, @@ -48,13 +47,14 @@ import org.enso.librarymanager.local.DefaultLocalLibraryProvider import org.enso.librarymanager.published.PublishedLibraryCache import org.enso.lockmanager.server.LockManagerService import org.enso.logger.masking.Masking -import org.enso.logger.akka.AkkaConverter import org.enso.common.RuntimeOptions import org.enso.common.ContextFactory +import org.enso.logging.utils.akka.AkkaConverter import org.enso.polyglot.RuntimeServerInfo import org.enso.profiling.events.NoopEventsMonitor import org.enso.searcher.memory.InMemorySuggestionsRepo import org.enso.text.{ContentBasedVersioning, Sha3_224VersionCalculator} +import org.enso.version.BuildVersion import org.graalvm.polyglot.io.MessageEndpoint import org.slf4j.event.Level import org.slf4j.LoggerFactory @@ -75,7 +75,7 @@ class MainModule(serverConfig: LanguageServerConfig, logLevel: Level) { private val log = LoggerFactory.getLogger(this.getClass) log.debug( "Initializing main module of the Language Server from [{}, {}, {}]", - Info.currentEdition, + BuildVersion.currentEdition, serverConfig, logLevel ) @@ -312,7 +312,7 @@ class MainModule(serverConfig: LanguageServerConfig, logLevel: Level) { RuntimeOptions.LOG_MASKING, Masking.isMaskingEnabled.toString ) - extraOptions.put(RuntimeOptions.EDITION_OVERRIDE, Info.currentEdition) + extraOptions.put(RuntimeOptions.EDITION_OVERRIDE, BuildVersion.currentEdition) extraOptions.put( RuntimeOptions.JOB_PARALLELISM, Runtime.getRuntime.availableProcessors().toString diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/libraries/handler/LibraryPublishHandler.scala b/engine/language-server/src/main/scala/org/enso/languageserver/libraries/handler/LibraryPublishHandler.scala index 3396430bfa14..84660be65e5f 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/libraries/handler/LibraryPublishHandler.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/libraries/handler/LibraryPublishHandler.scala @@ -17,7 +17,7 @@ import org.enso.languageserver.libraries.BlockingOperation import org.enso.languageserver.requesthandler.RequestTimeout import org.enso.languageserver.util.UnhandledLogging import org.enso.libraryupload.{auth, LibraryUploader} -import org.enso.logging.LoggingServiceManager +import org.enso.logging.service.LoggingServiceManager import scala.concurrent.Future import scala.concurrent.duration.FiniteDuration diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/protocol/json/JsonConnectionController.scala b/engine/language-server/src/main/scala/org/enso/languageserver/protocol/json/JsonConnectionController.scala index 83ae82c4c3fe..5841cf11dd1c 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/protocol/json/JsonConnectionController.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/protocol/json/JsonConnectionController.scala @@ -97,9 +97,10 @@ import org.enso.languageserver.text.TextProtocol import org.enso.languageserver.util.UnhandledLogging import org.enso.languageserver.vcsmanager.VcsManagerApi._ import org.enso.languageserver.workspace.WorkspaceApi.ProjectInfo -import org.enso.logger.akka.ActorMessageLogging +import org.enso.logging.utils.akka.ActorMessageLogging import org.enso.polyglot.runtime.Runtime.Api import org.enso.polyglot.runtime.Runtime.Api.ProgressNotification +import org.enso.version.BuildVersion import java.util.UUID @@ -289,8 +290,8 @@ class JsonConnectionController( InitProtocolConnection, request.id, InitProtocolConnection.Result( - buildinfo.Info.ensoVersion, - buildinfo.Info.currentEdition, + BuildVersion.ensoVersion, + BuildVersion.currentEdition, allContentRoots ) ) @@ -346,8 +347,8 @@ class JsonConnectionController( InitProtocolConnection, id, InitProtocolConnection.Result( - buildinfo.Info.ensoVersion, - buildinfo.Info.currentEdition, + BuildVersion.ensoVersion, + BuildVersion.currentEdition, roots ) ) diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/ai/AICompletion2Handler.scala b/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/ai/AICompletion2Handler.scala index db9e13e7c894..116825c9e445 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/ai/AICompletion2Handler.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/ai/AICompletion2Handler.scala @@ -26,7 +26,7 @@ import org.enso.languageserver.runtime.{ } import org.enso.languageserver.session.JsonSession import org.enso.languageserver.util.UnhandledLogging -import org.enso.logger.akka.ActorMessageLogging +import org.enso.logging.utils.akka.ActorMessageLogging import org.enso.polyglot.runtime.Runtime.Api import java.nio.charset.StandardCharsets diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/workspace/ProjectInfoHandler.scala b/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/workspace/ProjectInfoHandler.scala index ea9517e243d7..21163ced83f3 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/workspace/ProjectInfoHandler.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/requesthandler/workspace/ProjectInfoHandler.scala @@ -1,7 +1,6 @@ package org.enso.languageserver.requesthandler.workspace import akka.actor.{Actor, Props} -import buildinfo.Info import com.typesafe.scalalogging.LazyLogging import org.enso.jsonrpc.{Request, ResponseError, ResponseResult} import org.enso.languageserver.data.Config @@ -10,6 +9,7 @@ import org.enso.languageserver.util.UnhandledLogging import org.enso.languageserver.workspace.WorkspaceApi.ProjectInfo import org.enso.logger.masking.MaskedPath import org.enso.pkg.{Config => PkgConfig} +import org.enso.version.BuildVersion import java.io.{File, FileReader} @@ -31,8 +31,8 @@ class ProjectInfoHandler(languageServerConfig: Config) if (projectConfig.isSuccess) { val projectInfo = ProjectInfo.Result( projectName = projectConfig.get.moduleName, - engineVersion = Info.ensoVersion, - graalVersion = Info.graalVersion + engineVersion = BuildVersion.ensoVersion, + graalVersion = BuildVersion.graalVersion ) sender() ! ResponseResult( ProjectInfo, diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/runtime/ContextRegistry.scala b/engine/language-server/src/main/scala/org/enso/languageserver/runtime/ContextRegistry.scala index fa17bb783e32..b740444483ce 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/runtime/ContextRegistry.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/runtime/ContextRegistry.scala @@ -11,7 +11,7 @@ import org.enso.languageserver.event.{ import org.enso.languageserver.monitoring.MonitoringProtocol.{Ping, Pong} import org.enso.languageserver.runtime.handler._ import org.enso.languageserver.util.UnhandledLogging -import org.enso.logger.akka.ActorMessageLogging +import org.enso.logging.utils.akka.ActorMessageLogging import org.enso.polyglot.runtime.Runtime.Api import org.enso.polyglot.runtime.Runtime.Api.ContextId diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/runtime/RuntimeConnector.scala b/engine/language-server/src/main/scala/org/enso/languageserver/runtime/RuntimeConnector.scala index 499355ec02b7..ca6f8f186e93 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/runtime/RuntimeConnector.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/runtime/RuntimeConnector.scala @@ -9,8 +9,8 @@ import org.enso.languageserver.runtime.RuntimeConnector.{ } import org.enso.languageserver.util.UnhandledLogging import org.enso.lockmanager.server.LockManagerService -import org.enso.logger.akka.ActorMessageLogging import org.enso.logger.masking.ToLogString +import org.enso.logging.utils.akka.ActorMessageLogging import org.enso.polyglot.runtime.Runtime import org.enso.polyglot.runtime.Runtime.{Api, ApiEnvelope} import org.enso.polyglot.runtime.serde.ApiSerde diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/util/UnhandledLogging.scala b/engine/language-server/src/main/scala/org/enso/languageserver/util/UnhandledLogging.scala index 3e70882a0c22..fb4f83cefa4a 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/util/UnhandledLogging.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/util/UnhandledLogging.scala @@ -2,7 +2,7 @@ package org.enso.languageserver.util import akka.actor.Actor import com.typesafe.scalalogging.LazyLogging -import org.enso.logger.akka.AkkaConverter +import org.enso.logging.utils.akka.AkkaConverter import org.slf4j.event.Level trait UnhandledLogging extends LazyLogging { this: Actor => diff --git a/engine/language-server/src/test/scala/org/enso/filewatcher/NoopWatcher.scala b/engine/language-server/src/test/scala/org/enso/filewatcher/test/NoopWatcher.scala similarity index 77% rename from engine/language-server/src/test/scala/org/enso/filewatcher/NoopWatcher.scala rename to engine/language-server/src/test/scala/org/enso/filewatcher/test/NoopWatcher.scala index 87484682cae1..9c9d582e0273 100644 --- a/engine/language-server/src/test/scala/org/enso/filewatcher/NoopWatcher.scala +++ b/engine/language-server/src/test/scala/org/enso/filewatcher/test/NoopWatcher.scala @@ -1,4 +1,6 @@ -package org.enso.filewatcher +package org.enso.filewatcher.test + +import org.enso.filewatcher.Watcher import java.util.concurrent.Executor diff --git a/engine/language-server/src/test/scala/org/enso/filewatcher/NoopWatcherFactory.scala b/engine/language-server/src/test/scala/org/enso/filewatcher/test/NoopWatcherFactory.scala similarity index 73% rename from engine/language-server/src/test/scala/org/enso/filewatcher/NoopWatcherFactory.scala rename to engine/language-server/src/test/scala/org/enso/filewatcher/test/NoopWatcherFactory.scala index 3f169d0063bb..7794942dd58c 100644 --- a/engine/language-server/src/test/scala/org/enso/filewatcher/NoopWatcherFactory.scala +++ b/engine/language-server/src/test/scala/org/enso/filewatcher/test/NoopWatcherFactory.scala @@ -1,4 +1,7 @@ -package org.enso.filewatcher +package org.enso.filewatcher.test + +import org.enso.filewatcher.{Watcher, WatcherFactory} + import java.nio.file.Path class NoopWatcherFactory extends WatcherFactory { diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/boot/resource/RepoInitializationSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/boot/resource/RepoInitializationSpec.scala index 317d6c657295..4cf21cce269b 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/boot/resource/RepoInitializationSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/boot/resource/RepoInitializationSpec.scala @@ -8,9 +8,12 @@ import org.enso.languageserver.boot.StartupConfig import org.enso.languageserver.data._ import org.enso.languageserver.event.InitializedEvent import org.enso.languageserver.filemanager.{ContentRoot, ContentRootWithFile} -import org.enso.logger.ReportLogsOnFailure import org.enso.searcher.memory.InMemorySuggestionsRepo -import org.enso.testkit.{FlakySpec, ToScalaFutureConversions} +import org.enso.testkit.{ + FlakySpec, + ReportLogsOnFailure, + ToScalaFutureConversions +} import org.scalatest.BeforeAndAfterAll import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootManagerSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootManagerSpec.scala index a7134f4af547..3021ff9b31b8 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootManagerSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootManagerSpec.scala @@ -10,9 +10,12 @@ import org.enso.languageserver.filemanager.ContentRootManagerProtocol.{ ContentRootsAddedNotification, SubscribeToNotifications } -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.{EitherValue, WithTemporaryDirectory} +import org.enso.testkit.{ + EitherValue, + ReportLogsOnFailure, + WithTemporaryDirectory +} import org.scalatest.concurrent.Futures import org.scalatest.concurrent.ScalaFutures.convertScalaFuture import org.scalatest.matchers.should.Matchers diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootSerializationSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootSerializationSpec.scala index 9e4a694ef75d..e77ecb7dbee1 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootSerializationSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/ContentRootSerializationSpec.scala @@ -3,7 +3,7 @@ package org.enso.languageserver.filemanager import io.circe.Json import io.circe.syntax._ import io.circe.literal._ -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/FileSystemSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/FileSystemSpec.scala index d016820448fc..ce62a66a51ed 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/FileSystemSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/filemanager/FileSystemSpec.scala @@ -2,7 +2,7 @@ package org.enso.languageserver.filemanager import org.apache.commons.io.FileUtils import org.enso.languageserver.effect.Effects -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsResolverSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsResolverSpec.scala index f5de8b56a05f..8466dd4d6184 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsResolverSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsResolverSpec.scala @@ -1,7 +1,6 @@ package org.enso.languageserver.libraries import org.enso.editions.LibraryName -import org.enso.logger.ReportLogsOnFailure import org.enso.pkg.{ Component, ComponentGroup, @@ -11,6 +10,7 @@ import org.enso.pkg.{ GroupName, GroupReference } +import org.enso.testkit.ReportLogsOnFailure import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsValidatorSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsValidatorSpec.scala index f8b7aa7b580c..1c3fc19e06e0 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsValidatorSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/ComponentGroupsValidatorSpec.scala @@ -1,7 +1,6 @@ package org.enso.languageserver.libraries import org.enso.editions.LibraryName -import org.enso.logger.ReportLogsOnFailure import org.enso.pkg.{ ComponentGroup, ComponentGroups, @@ -9,6 +8,7 @@ import org.enso.pkg.{ GroupName, GroupReference } +import org.enso.testkit.ReportLogsOnFailure import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/EditionNameSerializationSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/EditionNameSerializationSpec.scala index c5d5974c550c..e34c17e7a97a 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/EditionNameSerializationSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/EditionNameSerializationSpec.scala @@ -5,7 +5,7 @@ import org.enso.languageserver.libraries.EditionReference.{ CurrentProjectEdition, NamedEdition } -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LibraryEntrySerializationSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LibraryEntrySerializationSpec.scala index a759c94a6d98..8d942c9a20e3 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LibraryEntrySerializationSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LibraryEntrySerializationSpec.scala @@ -1,7 +1,7 @@ package org.enso.languageserver.libraries import io.circe.syntax._ -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LocalLibraryManagerSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LocalLibraryManagerSpec.scala index 15d21ec830e3..126832e1258c 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LocalLibraryManagerSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/libraries/LocalLibraryManagerSpec.scala @@ -5,9 +5,8 @@ import akka.testkit._ import org.enso.distribution.FileSystem.PathSyntax import org.enso.editions.LibraryName import org.enso.librarymanager.LibraryLocations -import org.enso.logger.ReportLogsOnFailure import org.enso.pkg.PackageManager -import org.enso.testkit.WithTemporaryDirectory +import org.enso.testkit.{ReportLogsOnFailure, WithTemporaryDirectory} import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike import org.scalatest.BeforeAndAfterAll diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/HealthCheckEndpointSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/HealthCheckEndpointSpec.scala index 45cb680b322a..0b2b384b5049 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/HealthCheckEndpointSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/HealthCheckEndpointSpec.scala @@ -11,8 +11,7 @@ import org.enso.languageserver.monitoring.HealthCheckEndpointSpec.{ } import org.enso.languageserver.monitoring.MonitoringProtocol.{Ping, Pong} import org.enso.languageserver.requesthandler.monitoring.PingHandler -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import org.scalatest.flatspec.AnyFlatSpecLike import org.scalatest.matchers.must.Matchers diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/IdlenessEndpointSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/IdlenessEndpointSpec.scala index 065432e0a15b..dcd95435c114 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/IdlenessEndpointSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/monitoring/IdlenessEndpointSpec.scala @@ -5,8 +5,7 @@ import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.server.Directives import akka.http.scaladsl.testkit.{RouteTestTimeout, ScalatestRouteTest} import org.enso.languageserver.TestClock -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import org.scalatest.flatspec.AnyFlatSpecLike import org.scalatest.matchers.should.Matchers diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/requesthandler/monitoring/PingHandlerSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/requesthandler/monitoring/PingHandlerSpec.scala index a6d71fbe0966..f451e023977b 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/requesthandler/monitoring/PingHandlerSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/requesthandler/monitoring/PingHandlerSpec.scala @@ -6,8 +6,7 @@ import org.enso.jsonrpc.Id.Number import org.enso.jsonrpc.{Request, ResponseResult, Unused} import org.enso.languageserver.monitoring.MonitoringApi import org.enso.languageserver.monitoring.MonitoringProtocol.{Ping, Pong} -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import org.scalatest.BeforeAndAfterAll import org.scalatest.flatspec.AnyFlatSpecLike import org.scalatest.matchers.must.Matchers diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/runtime/ContextEventsListenerSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/runtime/ContextEventsListenerSpec.scala index 0e78c9e6cfcd..308424fece6e 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/runtime/ContextEventsListenerSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/runtime/ContextEventsListenerSpec.scala @@ -20,9 +20,8 @@ import org.enso.languageserver.session.SessionRouter.{ DeliverToBinaryController, DeliverToJsonController } -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.RetrySpec +import org.enso.testkit.{ReportLogsOnFailure, RetrySpec} import org.scalatest.BeforeAndAfterAll import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/search/SuggestionsHandlerSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/search/SuggestionsHandlerSpec.scala index f2a590c642f1..b76ed913f4a3 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/search/SuggestionsHandlerSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/search/SuggestionsHandlerSpec.scala @@ -14,13 +14,12 @@ import org.enso.languageserver.event.InitializedEvent import org.enso.languageserver.filemanager._ import org.enso.languageserver.session.JsonSession import org.enso.languageserver.session.SessionRouter.DeliverToJsonController -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.data.{Tree, TypeGraph} import org.enso.polyglot.runtime.Runtime.Api import org.enso.polyglot.{ExportedSymbol, ModuleExports, Suggestion} import org.enso.searcher.SuggestionsRepo import org.enso.searcher.memory.InMemorySuggestionsRepo -import org.enso.testkit.RetrySpec +import org.enso.testkit.{ReportLogsOnFailure, RetrySpec} import org.scalatest.BeforeAndAfterAll import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/vcsmanager/GitSpec.scala b/engine/language-server/src/test/scala/org/enso/languageserver/vcsmanager/GitSpec.scala index 5871a1fad934..3d3ef0e6a1a2 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/vcsmanager/GitSpec.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/vcsmanager/GitSpec.scala @@ -10,8 +10,7 @@ import org.eclipse.jgit.api.{Git => JGit} import org.eclipse.jgit.lib.Repository import org.eclipse.jgit.storage.file.FileRepositoryBuilder import org.eclipse.jgit.revwalk.RevCommit -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import scala.concurrent.duration._ import scala.jdk.CollectionConverters._ diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinaryFileManipulationTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinaryFileManipulationTest.scala index e7c5f69c374d..5257c44dabd2 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinaryFileManipulationTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinaryFileManipulationTest.scala @@ -5,8 +5,7 @@ import org.apache.commons.io.FileUtils import org.enso.languageserver.protocol.binary._ import org.enso.languageserver.util.binary.BinaryDecoder import org.enso.languageserver.websocket.binary.factory._ -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import java.io.File import java.nio.ByteBuffer diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinarySessionManagementTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinarySessionManagementTest.scala index 40079c775b99..39dfbef57ad9 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinarySessionManagementTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/BinarySessionManagementTest.scala @@ -12,8 +12,7 @@ import org.enso.languageserver.websocket.binary.factory.{ InboundMessageFactory, SessionInitFactory } -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} class BinarySessionManagementTest extends BaseBinaryServerTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/VisualizationProtocolTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/VisualizationProtocolTest.scala index c0d28463ee1e..24b566e44445 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/VisualizationProtocolTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/binary/VisualizationProtocolTest.scala @@ -12,8 +12,7 @@ import org.enso.languageserver.runtime.ContextRegistryProtocol.{ VisualizationUpdate } import org.enso.languageserver.util.binary.BinaryDecoder -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import org.scalatest.concurrent.Eventually class VisualizationProtocolTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala index bb874d78fcba..19cec97064bf 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala @@ -10,7 +10,8 @@ import org.enso.distribution.locking.ResourceManager import org.enso.distribution.{DistributionManager, LanguageHome} import org.enso.editions.updater.EditionManager import org.enso.editions.{EditionResolver, Editions} -import org.enso.filewatcher.{NoopWatcherFactory, WatcherAdapterFactory} +import org.enso.filewatcher.WatcherAdapterFactory +import org.enso.filewatcher.test.NoopWatcherFactory import org.enso.jsonrpc.test.JsonRpcServerTestKit import org.enso.jsonrpc.{ClientControllerFactory, ProtocolFactory} import org.enso.languageserver.TestClock diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/CapabilitiesTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/CapabilitiesTest.scala index 3d1e32e7361c..fb6b80f69c1f 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/CapabilitiesTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/CapabilitiesTest.scala @@ -3,8 +3,8 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ import io.circe.parser.parse import io.circe.syntax.EncoderOps -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api +import org.enso.testkit.ReportLogsOnFailure import java.util.UUID diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ContextRegistryTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ContextRegistryTest.scala index 27011b9622ac..f4c44567feac 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ContextRegistryTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ContextRegistryTest.scala @@ -11,8 +11,8 @@ import org.enso.languageserver.session.JsonSession import org.enso.languageserver.websocket.json.{ ExecutionContextJsonMessages => json } -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api +import org.enso.testkit.ReportLogsOnFailure import java.util.UUID diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileManagerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileManagerTest.scala index 6635b76ac3b9..810d910acff9 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileManagerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileManagerTest.scala @@ -7,9 +7,8 @@ import org.bouncycastle.util.encoders.Hex import org.enso.runner.common.ProfilingConfig import org.enso.languageserver.boot.StartupConfig import org.enso.languageserver.data._ -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.RetrySpec +import org.enso.testkit.{ReportLogsOnFailure, RetrySpec} import java.io.File import java.nio.file.attribute.BasicFileAttributes diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileNotificationsTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileNotificationsTest.scala index 07dab225cb59..dc4285b4aeaf 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileNotificationsTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/FileNotificationsTest.scala @@ -2,9 +2,8 @@ package org.enso.languageserver.websocket.json import java.io.File import io.circe.literal._ -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import org.enso.text.editing.model.{Position, Range, TextEdit} class FileNotificationsTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/InputOutputRedirectionTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/InputOutputRedirectionTest.scala index d295b3d333c8..7eb0c855a956 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/InputOutputRedirectionTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/InputOutputRedirectionTest.scala @@ -1,8 +1,7 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.RetrySpec +import org.enso.testkit.{ReportLogsOnFailure, RetrySpec} class InputOutputRedirectionTest extends BaseServerTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/LibrariesTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/LibrariesTest.scala index 76d4a009964f..84d5e24ba8cb 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/LibrariesTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/LibrariesTest.scala @@ -14,14 +14,14 @@ import org.enso.languageserver.libraries.{ } import org.enso.languageserver.runtime.TestComponentGroups import org.enso.librarymanager.published.bundles.LocalReadOnlyRepository -import org.enso.librarymanager.published.repository.{ +import org.enso.librarymanager.published.repository.LibraryManifest +import org.enso.librarymanager.test.published.repository.{ EmptyRepository, - ExampleRepository, - LibraryManifest + ExampleRepository } -import org.enso.logger.ReportLogsOnFailure import org.enso.pkg.{Config, Contact, Package, PackageManager} -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} +import org.enso.version.BuildVersion import org.enso.yaml.YamlHelper import java.nio.file.Files @@ -698,7 +698,7 @@ class LibrariesTest "id": 0, "result": { "editionNames": [ - ${buildinfo.Info.currentEdition} + ${BuildVersion.currentEdition} ] } } @@ -729,7 +729,7 @@ class LibrariesTest "id": 0, "result": { "editionNames": [ - ${buildinfo.Info.currentEdition}, + ${BuildVersion.currentEdition}, "testlocal" ] } @@ -789,7 +789,7 @@ class LibrariesTest PublishedLibrary("Foo", "Bar", isCached = false) ) - val currentEditionName = buildinfo.Info.currentEdition + val currentEditionName = BuildVersion.currentEdition client.send(json""" { "jsonrpc": "2.0", "method": "editions/listDefinedLibraries", @@ -837,7 +837,7 @@ class LibrariesTest LibraryName("Standard", "Base") ) - val currentEditionName = buildinfo.Info.currentEdition + val currentEditionName = BuildVersion.currentEdition client.send(json""" { "jsonrpc": "2.0", "method": "editions/listDefinedComponents", @@ -868,7 +868,7 @@ class LibrariesTest "editions/resolve" should { "resolve the engine version associated with an edition" in { - val currentVersion = buildinfo.Info.ensoVersion + val currentVersion = BuildVersion.ensoVersion val client = getInitialisedWsClient() client.send(json""" @@ -901,7 +901,7 @@ class LibrariesTest "params": { "edition": { "type": "NamedEdition", - "editionName": ${buildinfo.Info.currentEdition} + "editionName": ${BuildVersion.currentEdition} } } } diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/MonitoringTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/MonitoringTest.scala index 05e608b4748d..65850885337f 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/MonitoringTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/MonitoringTest.scala @@ -1,8 +1,7 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} class MonitoringTest extends BaseServerTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProfilingManagerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProfilingManagerTest.scala index 77852fcdebb8..300ce7d25026 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProfilingManagerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProfilingManagerTest.scala @@ -2,7 +2,7 @@ package org.enso.languageserver.websocket.json import org.enso.distribution.DistributionManager import org.enso.languageserver.profiling.ProfilingManager -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure import java.nio.file.Files diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProjectSettingsManagerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProjectSettingsManagerTest.scala index c4ab3587b565..9f2329579be5 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProjectSettingsManagerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ProjectSettingsManagerTest.scala @@ -2,7 +2,8 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ import org.enso.distribution.FileSystem -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure +import org.enso.version.BuildVersion import java.nio.file.Files @@ -40,7 +41,7 @@ class ProjectSettingsManagerTest { "jsonrpc": "2.0", "id": 0, "result": { - "parentEdition": ${buildinfo.Info.currentEdition}, + "parentEdition": ${BuildVersion.currentEdition}, "preferLocalLibraries": true } } diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ReceivesTreeUpdatesHandlerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ReceivesTreeUpdatesHandlerTest.scala index 42438f7cfe78..60fdf0b504eb 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ReceivesTreeUpdatesHandlerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/ReceivesTreeUpdatesHandlerTest.scala @@ -2,8 +2,7 @@ package org.enso.languageserver.websocket.json import java.nio.file.{Files, Paths} import io.circe.literal._ -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} class ReceivesTreeUpdatesHandlerTest extends BaseServerTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RefactoringTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RefactoringTest.scala index 24c58ff658d0..a7608778c3a4 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RefactoringTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RefactoringTest.scala @@ -1,8 +1,8 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api +import org.enso.testkit.ReportLogsOnFailure import java.util.UUID diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RuntimeTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RuntimeTest.scala index fa9411cf67c7..2718601e5aea 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RuntimeTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/RuntimeTest.scala @@ -2,8 +2,8 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ import org.enso.languageserver.runtime.TestComponentGroups -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api +import org.enso.testkit.ReportLogsOnFailure class RuntimeTest extends BaseServerTest with ReportLogsOnFailure { diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SessionManagementTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SessionManagementTest.scala index b290b0f610aa..9ca80d072389 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SessionManagementTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SessionManagementTest.scala @@ -3,7 +3,7 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ import io.circe.parser.parse import io.circe.syntax.EncoderOps -import org.enso.logger.ReportLogsOnFailure +import org.enso.testkit.ReportLogsOnFailure class SessionManagementTest extends BaseServerTest with ReportLogsOnFailure { diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerEventsTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerEventsTest.scala index fe19731a6840..7fd4241ee110 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerEventsTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerEventsTest.scala @@ -3,11 +3,10 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ import org.enso.languageserver.search.Suggestions import org.enso.languageserver.websocket.json.{SearchJsonMessages => json} -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.{ExportedSymbol, ModuleExports} import org.enso.polyglot.data.Tree import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import scala.collection.immutable.ListSet diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerTest.scala index d3c07ea88b1a..6a795defcf2f 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/SuggestionsHandlerTest.scala @@ -1,8 +1,7 @@ package org.enso.languageserver.websocket.json import io.circe.literal._ import org.enso.languageserver.websocket.json.{SearchJsonMessages => json} -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.{FlakySpec, RetrySpec} +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure, RetrySpec} class SuggestionsHandlerTest extends BaseServerTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala index 5cab56b284cb..d0f667682e83 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala @@ -5,9 +5,8 @@ import io.circe.literal._ import org.enso.languageserver.event.{BufferClosed, JsonSessionTerminated} import org.enso.languageserver.filemanager.Path import org.enso.languageserver.session.JsonSession -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import org.enso.text.editing.model import java.io.File diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VcsManagerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VcsManagerTest.scala index 102ebed8e1c0..3c1359a5e026 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VcsManagerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VcsManagerTest.scala @@ -11,8 +11,7 @@ import org.enso.runner.common.ProfilingConfig import org.enso.languageserver.boot.StartupConfig import org.enso.languageserver.data._ import org.enso.languageserver.vcsmanager.VcsApi -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} import java.io.File import java.nio.charset.StandardCharsets diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VisualizationOperationsTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VisualizationOperationsTest.scala index 95d07b6f2708..b6ea8f71502e 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VisualizationOperationsTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/VisualizationOperationsTest.scala @@ -5,8 +5,8 @@ import org.enso.languageserver.runtime.{ MethodPointer, VisualizationConfiguration } -import org.enso.logger.ReportLogsOnFailure import org.enso.polyglot.runtime.Runtime.Api +import org.enso.testkit.ReportLogsOnFailure import org.enso.text.editing.model class VisualizationOperationsTest diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/WorkspaceOperationsTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/WorkspaceOperationsTest.scala index 529ff7fff56e..388066ef12bc 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/WorkspaceOperationsTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/WorkspaceOperationsTest.scala @@ -1,10 +1,9 @@ package org.enso.languageserver.websocket.json -import buildinfo.Info import io.circe.literal.JsonStringContext import org.enso.languageserver.data.Config -import org.enso.logger.ReportLogsOnFailure -import org.enso.testkit.FlakySpec +import org.enso.testkit.{FlakySpec, ReportLogsOnFailure} +import org.enso.version.BuildVersion import java.io.{File, FileOutputStream} @@ -42,8 +41,8 @@ class WorkspaceOperationsTest "id": 1, "result": { "projectName" : "Standard", - "engineVersion" : ${Info.ensoVersion}, - "graalVersion" : ${Info.graalVersion} + "engineVersion" : ${BuildVersion.ensoVersion}, + "graalVersion" : ${BuildVersion.graalVersion} } } """) diff --git a/engine/launcher/src/main/scala/org/enso/launcher/Launcher.scala b/engine/launcher/src/main/scala/org/enso/launcher/Launcher.scala index 3a7040991799..d01786f68fdb 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/Launcher.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/Launcher.scala @@ -505,15 +505,16 @@ case class Launcher(cliOptions: GlobalCLIOptions) { hideEngineVersion: Boolean = false ): Int = { val useJSON = cliOptions.useJSON - val runtimeVersionParameter = - if (hideEngineVersion) None else Some(getEngineVersion(useJSON)) + val runtimeVersionParameter: java.util.List[VersionDescriptionParameter] = + if (hideEngineVersion) java.util.List.of() + else java.util.List.of(getEngineVersion(useJSON)) val versionDescription = VersionDescription.make( "Enso Launcher", - includeRuntimeJVMInfo = false, - enableNativeImageOSWorkaround = true, - additionalParameters = runtimeVersionParameter.toSeq, - customVersion = Some(CurrentVersion.version.toString) + false, + true, + runtimeVersionParameter, + CurrentVersion.version.toString ) println(versionDescription.asString(useJSON)) @@ -547,14 +548,16 @@ case class Launcher(cliOptions: GlobalCLIOptions) { else "Not installed." } - VersionDescriptionParameter( - humanReadableName = whichEngine match { - case WhichEngine.FromProject(name) => - s"Enso engine from project $name" - case WhichEngine.Default => "Current default Enso engine" - }, - jsonName = "runtime", - value = runtimeVersionString + val humanReadableName = whichEngine match { + case WhichEngine.FromProject(name) => + s"Enso engine from project $name" + case WhichEngine.Default => "Current default Enso engine" + } + val jsonName = "runtime" + new VersionDescriptionParameter( + humanReadableName, + jsonName, + runtimeVersionString ) } diff --git a/engine/launcher/src/main/scala/org/enso/launcher/cli/InternalOpts.scala b/engine/launcher/src/main/scala/org/enso/launcher/cli/InternalOpts.scala index b67071a877d4..4dd28754a19a 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/cli/InternalOpts.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/cli/InternalOpts.scala @@ -14,6 +14,7 @@ import org.enso.distribution.config.DefaultVersion._ import org.enso.launcher.distribution.LauncherEnvironment import org.enso.launcher.upgrade.LauncherUpgrader import org.enso.launcher.releases.LauncherRepository +import org.enso.version.BuildVersion /** Implements internal options that the launcher may use when running another * instance of itself. @@ -84,7 +85,7 @@ object InternalOpts { * In release mode, this is an identity function, since these internal options are not permitted anyway. */ def removeInternalTestOptions(args: Seq[String]): Seq[String] = - if (buildinfo.Info.isRelease) args + if (BuildVersion.isRelease) args else { (removeOption(EMULATE_VERSION) andThen removeOption(EMULATE_LOCATION))( args @@ -193,7 +194,7 @@ object InternalOpts { * Disabled in release mode. */ private def testingOptions: Opts[Unit] = - if (buildinfo.Info.isRelease) Opts.pure(()) + if (BuildVersion.isRelease) Opts.pure(()) else { val emulateVersion = Opts.optionalParameter[SemVer](EMULATE_VERSION, "VERSION", "").hidden diff --git a/engine/launcher/src/main/scala/org/enso/launcher/cli/LauncherLogging.scala b/engine/launcher/src/main/scala/org/enso/launcher/cli/LauncherLogging.scala index a49ebdc435f5..4d5f590256ac 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/cli/LauncherLogging.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/cli/LauncherLogging.scala @@ -2,9 +2,9 @@ package org.enso.launcher.cli import java.nio.file.Path import org.enso.launcher.distribution.DefaultManagers -import org.enso.logger.LoggerSetup import org.slf4j.event.Level -import org.enso.logging.LoggingSetupHelper +import org.enso.logging.config.LoggerSetup +import org.enso.logging.service.LoggingSetupHelper import scala.concurrent.ExecutionContext.Implicits.global /** Manages setting up the logging service within the launcher. diff --git a/engine/launcher/src/main/scala/org/enso/launcher/distribution/LauncherEnvironment.scala b/engine/launcher/src/main/scala/org/enso/launcher/distribution/LauncherEnvironment.scala index 8743232dc1a6..03d258933e41 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/distribution/LauncherEnvironment.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/distribution/LauncherEnvironment.scala @@ -3,6 +3,7 @@ package org.enso.launcher.distribution import java.nio.file.Path import com.typesafe.scalalogging.Logger import org.enso.distribution.Environment +import org.enso.version.BuildVersion /** Default [[Environment]] to use in the launcher. * @@ -24,7 +25,7 @@ object LauncherEnvironment extends Environment { * possible, before [[getPathToRunningExecutable]] is called. */ def internalOverrideExecutableLocation(newLocation: Path): Unit = - if (buildinfo.Info.isRelease) { + if (BuildVersion.isRelease) { throw new IllegalStateException( "Internal testing function internalOverrideExecutableLocation used " + "in a release build." diff --git a/engine/launcher/src/main/scala/org/enso/launcher/releases/LauncherRepository.scala b/engine/launcher/src/main/scala/org/enso/launcher/releases/LauncherRepository.scala index e74492f6b968..86aa35c38553 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/releases/LauncherRepository.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/releases/LauncherRepository.scala @@ -16,6 +16,7 @@ import org.enso.runtimeversionmanager.releases.{ ReleaseProvider, SimpleReleaseProvider } +import org.enso.version.BuildVersion /** Represents the default Enso repository providing releases of the launcher. * @@ -60,7 +61,7 @@ object LauncherRepository { fakeRepositoryRoot: Path, shouldWaitForAssets: Boolean ): Unit = - if (buildinfo.Info.isRelease) + if (BuildVersion.isRelease) throw new IllegalStateException( "Internal testing function internalUseFakeRepository used in a " + "release build." diff --git a/engine/launcher/src/main/scala/org/enso/launcher/releases/fallback/staticwebsite/FallbackManifest.scala b/engine/launcher/src/main/scala/org/enso/launcher/releases/fallback/staticwebsite/FallbackManifest.scala index c9fadf82b9c3..4fc54e66ae79 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/releases/fallback/staticwebsite/FallbackManifest.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/releases/fallback/staticwebsite/FallbackManifest.scala @@ -1,6 +1,6 @@ package org.enso.launcher.releases.fallback.staticwebsite -import org.enso.yaml.YamlDecoder +import org.enso.scala.yaml.YamlDecoder import org.yaml.snakeyaml.nodes.{MappingNode, Node} import java.io.StringReader diff --git a/engine/launcher/src/main/scala/org/enso/launcher/releases/launcher/LauncherManifest.scala b/engine/launcher/src/main/scala/org/enso/launcher/releases/launcher/LauncherManifest.scala index 4654b57755f3..36bd08f5bce9 100644 --- a/engine/launcher/src/main/scala/org/enso/launcher/releases/launcher/LauncherManifest.scala +++ b/engine/launcher/src/main/scala/org/enso/launcher/releases/launcher/LauncherManifest.scala @@ -3,8 +3,9 @@ package org.enso.launcher.releases.launcher import org.enso.launcher.releases.launcher import org.enso.semver.SemVer import org.enso.runtimeversionmanager.releases.ReleaseProviderException +import org.enso.scala.yaml.YamlDecoder import org.enso.semver.SemVerYaml._ -import org.enso.yaml.{ParseError, YamlDecoder} +import org.enso.yaml.ParseError import org.yaml.snakeyaml.error.YAMLException import org.yaml.snakeyaml.nodes.{MappingNode, Node} diff --git a/engine/launcher/src/test/scala/org/enso/launcher/NativeLauncherSpec.scala b/engine/launcher/src/test/scala/org/enso/launcher/NativeLauncherSpec.scala index ec8a55199333..53091610716f 100644 --- a/engine/launcher/src/test/scala/org/enso/launcher/NativeLauncherSpec.scala +++ b/engine/launcher/src/test/scala/org/enso/launcher/NativeLauncherSpec.scala @@ -1,7 +1,7 @@ package org.enso.launcher -import buildinfo.Info import io.circe.parser +import org.enso.version.BuildVersion class NativeLauncherSpec extends NativeTest { "native launcher" should { @@ -12,15 +12,18 @@ class NativeLauncherSpec extends NativeTest { timeoutSeconds = 30 ) run should returnSuccess + val out = run.stdout - val version = parser.parse(run.stdout).getOrElse { - throw new RuntimeException("Version should be a valid JSON string.") + val version = parser.parse(out).getOrElse { + throw new RuntimeException( + "Version should be a valid JSON string. Got: " + out + ) } version.asObject.get .apply("version") .get .asString - .get shouldEqual Info.ensoVersion + .get shouldEqual BuildVersion.ensoVersion } } } diff --git a/engine/launcher/src/test/scala/org/enso/launcher/upgrade/UpgradeSpec.scala b/engine/launcher/src/test/scala/org/enso/launcher/upgrade/UpgradeSpec.scala index 5c57cabc027a..7e941bcbbc73 100644 --- a/engine/launcher/src/test/scala/org/enso/launcher/upgrade/UpgradeSpec.scala +++ b/engine/launcher/src/test/scala/org/enso/launcher/upgrade/UpgradeSpec.scala @@ -10,6 +10,7 @@ import org.enso.cli.OS import org.enso.launcher._ import org.enso.testkit.{FlakySpec, WithTemporaryDirectory} import org.enso.process.{RunResult, WrappedProcess} +import org.enso.version.BuildVersion import org.scalatest.exceptions.TestFailedException import org.scalatest.{BeforeAndAfterAll, Ignore, OptionValues} @@ -181,7 +182,7 @@ class UpgradeSpec "not downgrade without being explicitly asked to do so" taggedAs Flaky in { // precondition for the test to make sense SemVer - .parse(buildinfo.Info.ensoVersion) + .parse(BuildVersion.ensoVersion) .get .isGreaterThan(SemVer.of(0, 0, 4)) shouldBe true @@ -195,7 +196,7 @@ class UpgradeSpec "(and update necessary files)" taggedAs Flaky in { // precondition for the test to make sense SemVer - .parse(buildinfo.Info.ensoVersion) + .parse(BuildVersion.ensoVersion) .get .isGreaterThan(SemVer.of(0, 0, 4)) shouldBe true diff --git a/engine/runner/src/main/java/org/enso/runner/CurrentVersion.java b/engine/runner/src/main/java/org/enso/runner/CurrentVersion.java new file mode 100644 index 000000000000..31dd8177f23b --- /dev/null +++ b/engine/runner/src/main/java/org/enso/runner/CurrentVersion.java @@ -0,0 +1,47 @@ +package org.enso.runner; + +import org.enso.semver.SemVer; +import org.enso.version.BuildVersion; + +/** + * A helper class that allows to access current version of the runner. + * + *
The current version is parsed from {@link BuildVersion}, but in development mode it can be
+ * overridden by setting `enso.version.override` property. This is used in project-manager tests to
+ * override the version of projects created using the runner.
+ */
+final class CurrentVersion {
+ private CurrentVersion() {}
+
+ private static SemVer version = null;
+
+ public static SemVer getVersion() {
+ if (version == null) {
+ version = computeVersion();
+ }
+ return version;
+ }
+
+ private static SemVer computeVersion() {
+ var buildVersion =
+ (SemVer)
+ SemVer.parse(BuildVersion.ensoVersion())
+ .getOrElse(
+ () -> {
+ throw new IllegalStateException(
+ "Fatal error: Enso version included in buildinfo is not a valid "
+ + "semver string, this should never happen.");
+ });
+ if (!BuildVersion.isRelease()) {
+ var overrideVersionProp = System.getProperty("enso.version.override");
+ if (overrideVersionProp == null) {
+ return buildVersion;
+ }
+ var parseRes = SemVer.parse(overrideVersionProp);
+ if (parseRes.isSuccess()) {
+ return parseRes.get();
+ }
+ }
+ return buildVersion;
+ }
+}
diff --git a/engine/runner/src/main/java/org/enso/runner/DependencyPreinstaller.java b/engine/runner/src/main/java/org/enso/runner/DependencyPreinstaller.java
new file mode 100644
index 000000000000..ee77908dbfd7
--- /dev/null
+++ b/engine/runner/src/main/java/org/enso/runner/DependencyPreinstaller.java
@@ -0,0 +1,138 @@
+package org.enso.runner;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.enso.cli.ProgressBar;
+import org.enso.cli.task.ProgressReporter;
+import org.enso.cli.task.TaskProgress;
+import org.enso.distribution.DistributionManager;
+import org.enso.distribution.Environment;
+import org.enso.distribution.LanguageHome;
+import org.enso.distribution.locking.LockUserInterface;
+import org.enso.distribution.locking.Resource;
+import org.enso.distribution.locking.ResourceManager;
+import org.enso.distribution.locking.ThreadSafeFileLockManager;
+import org.enso.editions.DefaultEdition;
+import org.enso.editions.EditionResolver;
+import org.enso.editions.updater.EditionManager;
+import org.enso.librarymanager.DefaultLibraryProvider;
+import org.enso.librarymanager.LibraryResolver;
+import org.enso.librarymanager.dependencies.Dependency;
+import org.enso.librarymanager.dependencies.DependencyResolver;
+import org.enso.librarymanager.published.PublishedLibraryCache;
+import org.enso.pkg.PackageManager;
+import org.enso.runner.common.CompilerBasedDependencyExtractor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.event.Level;
+import scala.Some;
+
+/** A helper to preinstall all dependencies of a project. */
+class DependencyPreinstaller {
+ private DependencyPreinstaller() {}
+
+ private static final Logger logger = LoggerFactory.getLogger(DependencyPreinstaller.class);
+
+ static void preinstallDependencies(File projectRoot, Level logLevel) {
+ var pkg = PackageManager.Default().loadPackage(projectRoot).get();
+ var dependencyExtractor = new CompilerBasedDependencyExtractor(logLevel);
+ var environment = new Environment() {};
+ var languageHome = LanguageHome.detectFromExecutableLocation(environment);
+
+ var distributionManager = new DistributionManager(environment);
+ var lockManager = new ThreadSafeFileLockManager(distributionManager.paths().locks());
+ var resourceManager = new ResourceManager(lockManager);
+ var editionProvider =
+ EditionManager.makeEditionProvider(distributionManager, Some.apply(languageHome), true);
+ var editionResolver = new EditionResolver(editionProvider);
+ var editionOpt =
+ editionResolver.resolve(
+ pkg.getConfig().edition().getOrElse(DefaultEdition::getDefaultEdition));
+ if (editionOpt.isLeft()) {
+ @SuppressWarnings("deprecation")
+ var ex = editionOpt.left().get();
+ throw new RuntimeException("Cannot resolve current project's editionOpt: " + ex.getMessage());
+ }
+ @SuppressWarnings("deprecation")
+ var edition = editionOpt.right().get();
+
+ var preferLocalLibraries = pkg.getConfig().preferLocalLibraries();
+ var progressReporter =
+ new ProgressReporter() {
+ @Override
+ public void trackProgress(String message, TaskProgress> task) {
+ logger.info(message);
+ ProgressBar.waitWithProgress(task);
+ }
+ };
+ var lockUserInterface =
+ new LockUserInterface() {
+ @Override
+ public void startWaitingForResource(Resource resource) {
+ logger.warn(resource.waitMessage());
+ }
+
+ @Override
+ public void finishWaitingForResource(Resource resource) {}
+ };
+ var providers =
+ DefaultLibraryProvider.makeProviders(
+ distributionManager,
+ resourceManager,
+ lockUserInterface,
+ progressReporter,
+ Some.apply(languageHome),
+ Some.apply(projectRoot.toPath()));
+ var localLibraryProvider = providers._1;
+ var publishedLibraryProvider = providers._2;
+
+ var dependencyResolver =
+ new DependencyResolver(
+ localLibraryProvider,
+ (PublishedLibraryCache) publishedLibraryProvider,
+ edition,
+ preferLocalLibraries,
+ new LibraryResolver(localLibraryProvider),
+ dependencyExtractor);
+ var installer =
+ new DefaultLibraryProvider(
+ localLibraryProvider, publishedLibraryProvider, edition, preferLocalLibraries);
+
+ var immediateDependencies = dependencyExtractor.findDependencies(pkg);
+ logger.trace("The project imports the following libraries: {}", immediateDependencies);
+ Set If `connectionUri` is provided it tries to connect to a logging service server and pass logs
+ * to it. If it is not provided, or the connection could not be established, falls back to logging
+ * to standard error output.
+ *
+ * @param connectionUri optional uri of logging service server to connect to
+ * @param logLevel log level to use for the runner and runtime
+ * @param logMasking switches log masking on and off
+ */
+ static void setup(URI connectionUri, Level logLevel, boolean logMasking) {
+ Masking.setup(logMasking);
+ var loggerSetup = LoggerSetup.get();
+ var executorService = Executors.newSingleThreadExecutor();
+ try {
+ setupImpl(connectionUri, logLevel, executorService, loggerSetup);
+ } finally {
+ executorService.shutdown();
+ }
+ }
+
+ private static void setupImpl(
+ URI connectionUri, Level logLevel, ExecutorService executorService, LoggerSetup loggerSetup) {
+ if (connectionUri != null) {
+ var future =
+ executorService.submit(
+ () ->
+ loggerSetup.setupSocketAppender(
+ logLevel, connectionUri.getHost(), connectionUri.getPort()));
+ try {
+ var success = future.get();
+ if (success) {
+ logger.trace("Connected to logging service at [{}]", connectionUri);
+ return;
+ } else {
+ throw new RuntimeException("Failed to connect to logging service");
+ }
+ } catch (InterruptedException | ExecutionException e) {
+ System.err.println(
+ "Failed to connect to the logging service server, " + "falling back to local logging.");
+ }
+ }
+ if (!setupConsoleAppender(logLevel, executorService, loggerSetup)) {
+ System.err.println("Failed to initialize logging infrastructure");
+ }
+ }
+
+ static void tearDown() {
+ LoggerSetup.get().teardown();
+ }
+
+ private static boolean setupConsoleAppender(
+ Level logLevel, ExecutorService executorService, LoggerSetup loggerSetup) {
+ var future = executorService.submit(() -> loggerSetup.setupConsoleAppender(logLevel));
+ try {
+ return future.get();
+ } catch (ExecutionException | InterruptedException e) {
+ System.err.println("Failed to initialize console appender: " + e.getMessage());
+ return false;
+ }
+ }
+}
diff --git a/engine/runner/src/main/java/org/enso/runner/TerminalIO.java b/engine/runner/src/main/java/org/enso/runner/TerminalIO.java
new file mode 100644
index 000000000000..3a1c2525be79
--- /dev/null
+++ b/engine/runner/src/main/java/org/enso/runner/TerminalIO.java
@@ -0,0 +1,66 @@
+package org.enso.runner;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import org.jline.reader.EndOfFileException;
+import org.jline.reader.LineReader;
+import org.jline.reader.LineReaderBuilder;
+import org.jline.reader.UserInterruptException;
+import org.jline.reader.impl.DefaultParser;
+import org.jline.reader.impl.history.DefaultHistory;
+import org.jline.terminal.Terminal;
+import org.jline.terminal.TerminalBuilder;
+
+final class TerminalIO implements ReplIO {
+ private final Terminal terminal;
+ private final LineReader lineReader;
+
+ TerminalIO(Path historyFilePath) {
+ // jline uses the class loader from `Thread.currentThread().getContextClassLoader()` to
+ // load services. We need to override the context class loader to be `IsolatedClassLoader`
+ // from the runner.jar class loader.
+ var prevClassLoader = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ try {
+ terminal = TerminalBuilder.builder().system(true).build();
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+ var parser = new DefaultParser();
+ parser.setEscapeChars(null);
+ var history = new DefaultHistory();
+ lineReader =
+ LineReaderBuilder.builder()
+ .parser(parser)
+ .variable(LineReader.HISTORY_FILE, historyFilePath)
+ .history(history)
+ .terminal(terminal)
+ .build();
+ Thread.currentThread().setContextClassLoader(prevClassLoader);
+
+ Runtime.getRuntime()
+ .addShutdownHook(
+ new Thread(
+ () -> {
+ try {
+ history.save();
+ } catch (IOException e) {
+ System.err.println("Failed to save REPL history: " + e);
+ }
+ }));
+ }
+
+ @Override
+ public UserInput readLine(String prompt) {
+ try {
+ return new Line(lineReader.readLine(prompt));
+ } catch (UserInterruptException | EndOfFileException e) {
+ return new EndOfInput();
+ }
+ }
+
+ @Override
+ public void println(String contents) {
+ terminal.writer().println(contents);
+ }
+}
diff --git a/engine/runner/src/main/java/org/enso/runner/UserInput.java b/engine/runner/src/main/java/org/enso/runner/UserInput.java
new file mode 100644
index 000000000000..638422e58398
--- /dev/null
+++ b/engine/runner/src/main/java/org/enso/runner/UserInput.java
@@ -0,0 +1,17 @@
+package org.enso.runner;
+
+sealed class UserInput permits EndOfInput, Line {}
+
+final class EndOfInput extends UserInput {}
+
+final class Line extends UserInput {
+ private final String line;
+
+ Line(String line) {
+ this.line = line;
+ }
+
+ public String getLine() {
+ return line;
+ }
+}
diff --git a/engine/runner/src/main/scala/org/enso/runner/CurrentVersion.scala b/engine/runner/src/main/scala/org/enso/runner/CurrentVersion.scala
deleted file mode 100644
index c7adb0d92c42..000000000000
--- a/engine/runner/src/main/scala/org/enso/runner/CurrentVersion.scala
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.enso.runner
-
-import org.enso.semver.SemVer
-
-/** A helper object that allows to access current version of the runner.
- *
- * The current version is parsed from [[buildinfo]], but in development mode it
- * can be overridden by setting `enso.version.override` property. This is used
- * in project-manager tests to override the version of projects created using
- * the runner.
- */
-object CurrentVersion {
-
- /** The version that the application should report. */
- lazy val version: SemVer = computeVersion()
-
- private def computeVersion(): SemVer = {
- val buildVersion =
- SemVer.parse(buildinfo.Info.ensoVersion).getOrElse {
- throw new IllegalStateException(
- "Fatal error: Enso version included in buildinfo is not a valid " +
- "semver string, this should never happen."
- )
- }
- if (buildinfo.Info.isRelease) buildVersion
- else
- sys.props
- .get("enso.version.override")
- .flatMap(v => SemVer.parse(v).toOption)
- .getOrElse(buildVersion)
- }
-}
diff --git a/engine/runner/src/main/scala/org/enso/runner/DependencyPreinstaller.scala b/engine/runner/src/main/scala/org/enso/runner/DependencyPreinstaller.scala
deleted file mode 100644
index a26ebc232322..000000000000
--- a/engine/runner/src/main/scala/org/enso/runner/DependencyPreinstaller.scala
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.enso.runner
-
-import org.slf4j.event.Level
-import com.typesafe.scalalogging.Logger
-import org.enso.cli.ProgressBar
-import org.enso.cli.task.{ProgressReporter, TaskProgress}
-import org.enso.distribution.locking.{
- LockUserInterface,
- Resource,
- ResourceManager,
- ThreadSafeFileLockManager
-}
-import org.enso.distribution.{DistributionManager, Environment, LanguageHome}
-import org.enso.editions.updater.EditionManager
-import org.enso.editions.{DefaultEdition, EditionResolver}
-import org.enso.runner.common.CompilerBasedDependencyExtractor
-import org.enso.librarymanager.dependencies.DependencyResolver
-import org.enso.librarymanager.{DefaultLibraryProvider, LibraryResolver}
-import org.enso.pkg.PackageManager
-
-import java.io.File
-
-/** A helper to preinstall all dependencies of a project. */
-object DependencyPreinstaller {
-
- /** Parses the project to find out its direct dependencies, uses the resolver
- * to find all transitive dependencies and ensures that all of them are
- * installed.
- */
- def preinstallDependencies(projectRoot: File, logLevel: Level): Unit = {
- val logger = Logger[DependencyPreinstaller.type]
- val pkg = PackageManager.Default.loadPackage(projectRoot).get
-
- val dependencyExtractor = new CompilerBasedDependencyExtractor(logLevel)
- val environment = new Environment {}
- val languageHome = LanguageHome.detectFromExecutableLocation(environment)
-
- val distributionManager = new DistributionManager(environment)
- val lockManager = new ThreadSafeFileLockManager(
- distributionManager.paths.locks
- )
- val resourceManager = new ResourceManager(lockManager)
-
- val editionProvider = EditionManager.makeEditionProvider(
- distributionManager,
- Some(languageHome),
- true
- )
- val editionResolver = EditionResolver(editionProvider)
- val edition = editionResolver
- .resolve(
- pkg.getConfig().edition.getOrElse(DefaultEdition.getDefaultEdition)
- ) match {
- case Left(error) =>
- throw new RuntimeException(
- s"Cannot resolve current project's edition: ${error.getMessage}"
- )
- case Right(value) => value
- }
-
- val preferLocalLibraries = pkg.getConfig().preferLocalLibraries
-
- val (localLibraryProvider, publishedLibraryProvider) =
- DefaultLibraryProvider.makeProviders(
- distributionManager,
- resourceManager,
- new LockUserInterface {
- override def startWaitingForResource(resource: Resource): Unit =
- logger.warn(resource.waitMessage)
-
- override def finishWaitingForResource(resource: Resource): Unit = ()
- },
- new ProgressReporter {
- override def trackProgress(
- message: String,
- task: TaskProgress[_]
- ): Unit = {
- logger.info(message)
- ProgressBar.waitWithProgress(task)
- }
- },
- languageHome = Some(languageHome),
- projectRoot = Some(projectRoot.toPath)
- )
-
- val dependencyResolver = new DependencyResolver(
- localLibraryProvider,
- publishedLibraryProvider,
- edition,
- preferLocalLibraries,
- LibraryResolver(localLibraryProvider),
- dependencyExtractor
- )
- val installer = new DefaultLibraryProvider(
- localLibraryProvider,
- publishedLibraryProvider,
- edition,
- preferLocalLibraries
- )
- val immediateDependencies = dependencyExtractor.findDependencies(pkg)
- logger.trace(
- s"The project imports the following libraries: $immediateDependencies."
- )
- val allDependencies = immediateDependencies.flatMap { name =>
- dependencyResolver.findDependencies(name).get
- }
- logger.trace(s"The project depends on: $allDependencies.")
-
- val dependenciesToInstall = allDependencies.filter(!_.isCached)
-
- if (dependenciesToInstall.isEmpty) {
- logger.info(s"All ${allDependencies.size} dependencies are installed.")
- } else {
- logger.info(s"Will install ${dependenciesToInstall.size} dependencies.")
- dependenciesToInstall.toList
- .map { dependency =>
- installer.findSpecificLibraryVersion(
- dependency.libraryName,
- dependency.version
- )
- }
- .find(_.isLeft)
- .toLeft(()) match {
- case Left(error) =>
- throw new RuntimeException(
- s"Some dependencies could not be installed: [$error]."
- )
- case Right(_) =>
- }
- }
- }
-}
diff --git a/engine/runner/src/main/scala/org/enso/runner/ProjectUploader.scala b/engine/runner/src/main/scala/org/enso/runner/ProjectUploader.scala
deleted file mode 100644
index 7d165c9e66db..000000000000
--- a/engine/runner/src/main/scala/org/enso/runner/ProjectUploader.scala
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.enso.runner
-
-import com.typesafe.scalalogging.Logger
-import org.enso.cli.ProgressBar
-import org.enso.cli.task.{ProgressReporter, TaskProgress}
-import org.enso.runner.common.CompilerBasedDependencyExtractor
-import org.enso.libraryupload.{auth, LibraryUploader}
-import org.enso.pkg.PackageManager
-import org.slf4j.event.Level
-
-import java.nio.file.Path
-
-/** Gathers helper functions for uploading a library project. */
-object ProjectUploader {
-
- private lazy val logger = Logger[ProjectUploader.type]
-
- /** Uploads a project to a library repository.
- *
- * @param projectRoot path to the root of the project
- * @param uploadUrl URL of upload endpoint of the repository to upload to
- * @param authToken an optional token used for authentication in the
- * repository
- * @param showProgress specifies if CLI progress bars should be displayed
- * showing progress of compression and upload
- * @param logLevel the log level to use for the context gathering
- * dependencies
- */
- def uploadProject(
- projectRoot: Path,
- uploadUrl: String,
- authToken: Option[String],
- showProgress: Boolean,
- logLevel: Level
- ): Unit = {
- val progressReporter = new ProgressReporter {
- override def trackProgress(
- message: String,
- task: TaskProgress[_]
- ): Unit = {
- logger.info(message)
- if (showProgress) {
- ProgressBar.waitWithProgress(task)
- }
- }
- }
-
- val token = authToken match {
- case Some(value) => auth.SimpleHeaderToken(value)
- case None => auth.NoAuthorization
- }
-
- val dependencyExtractor = new CompilerBasedDependencyExtractor(logLevel)
-
- LibraryUploader(dependencyExtractor)
- .uploadLibrary(
- projectRoot,
- uploadUrl,
- token,
- progressReporter
- )
- .get
- }
-
- /** Updates manifest of the project.
- *
- * @param projectRoot path to the root of the project
- * @param logLevel the log level to use for the context gathering
- * dependencies
- */
- def updateManifest(projectRoot: Path, logLevel: Level): Unit = {
- val pkg = PackageManager.Default.loadPackage(projectRoot.toFile).get
-
- val dependencyExtractor = new CompilerBasedDependencyExtractor(logLevel)
- LibraryUploader(dependencyExtractor).updateManifest(pkg).get
- }
-}
diff --git a/engine/runner/src/main/scala/org/enso/runner/Repl.scala b/engine/runner/src/main/scala/org/enso/runner/Repl.scala
deleted file mode 100644
index bf299c454942..000000000000
--- a/engine/runner/src/main/scala/org/enso/runner/Repl.scala
+++ /dev/null
@@ -1,195 +0,0 @@
-package org.enso.runner
-
-import com.typesafe.scalalogging.Logger
-
-import java.io.{
- IOException,
- InputStream,
- OutputStream,
- PrintStream,
- PrintWriter,
- Writer
-}
-import java.util.Scanner
-import org.enso.polyglot.debugger.{ReplExecutor, SessionManager}
-import org.jline.reader.impl.DefaultParser
-import org.jline.reader.impl.history.DefaultHistory
-import org.jline.reader.{LineReader, LineReaderBuilder}
-import org.jline.terminal.{Terminal, TerminalBuilder}
-
-import java.nio.file.Path
-import scala.util.Try
-
-/** Represents user console input.
- */
-sealed trait UserInput
-
-/** End of user input.
- */
-case object EndOfInput extends UserInput
-
-/** A normal line of user input.
- * @param line the contents of the input line
- */
-case class Line(line: String) extends UserInput
-
-/** Abstract representation of Repl IO operations
- */
-trait ReplIO {
-
- /** Ask user for a line of input, using given prompt
- * @param prompt the prompt to display to the user
- * @return the user-provided input
- */
- def readLine(prompt: String): UserInput
-
- /** Print a line to the REPL.
- * @param contents contents of the line to print
- */
- def println(contents: String): Unit
-
- /** Print a stack trace to the REPL.
- * @param exception which stack trace is to be printed
- */
- def printStackTrace(exception: Exception): Unit = {
- val traceBuilder = new StringBuilder
- val traceWriter = new Writer() {
- override def write(
- cbuf: Array[Char],
- off: Int,
- len: Int
- ): Unit =
- traceBuilder.append(cbuf.slice(off, off + len).mkString)
-
- override def flush(): Unit = {}
-
- override def close(): Unit = {}
- }
- exception.printStackTrace(new PrintWriter(traceWriter))
- println(traceBuilder.toString())
- }
-}
-
-/** A barebones implementation of [[ReplIO]] based on standard input / output operations.
- * @param in input stream to use
- * @param out output stream to use
- */
-case class SimpleReplIO(in: InputStream, out: OutputStream) extends ReplIO {
- private val scanner: Scanner = new Scanner(in)
- private val printer: PrintStream = new PrintStream(out)
-
- /** Ask user for a line of input, using given prompt
- * @param prompt the prompt to display to the user
- * @return the user-provided input
- */
- override def readLine(prompt: String): UserInput = {
- printer.print(prompt)
- Try(scanner.nextLine()).map(Line).getOrElse(EndOfInput)
- }
-
- /** Print a line to the REPL.
- * @param contents contents of the line to print
- */
- override def println(contents: String): Unit = printer.println(contents)
-}
-
-/** An implementation of [[ReplIO]] using system terminal capabilities.
- */
-case class TerminalIO(historyFilePath: Path) extends ReplIO {
- // jline uses the class loader from `Thread.currentThread().getContextClassLoader()` to
- // load services. We need to override the context class loader to be `IsolatedClassLoader`
- // from the runner.jar class loader.
- private val prevClassLoader = Thread.currentThread().getContextClassLoader
- Thread
- .currentThread()
- .setContextClassLoader(classOf[TerminalIO].getClassLoader)
- private val terminal: Terminal =
- TerminalBuilder.builder().system(true).build()
- private val parser: DefaultParser = new DefaultParser()
- parser.setEscapeChars(null)
- private val history = new DefaultHistory()
- private val lineReader: LineReader =
- LineReaderBuilder
- .builder()
- .parser(parser)
- .variable(LineReader.HISTORY_FILE, historyFilePath)
- .history(history)
- .terminal(terminal)
- .build()
- Thread.currentThread().setContextClassLoader(prevClassLoader)
-
- Runtime.getRuntime.addShutdownHook(new Thread() {
- override def run(): Unit = {
- try {
- history.save()
- } catch {
- case e: IOException =>
- Logger[TerminalIO].warn("Failed to save REPL history.", e)
- }
- }
- })
-
- /** Ask user for a line of input, using given prompt
- * @param prompt the prompt to display to the user
- * @return the user-provided input
- */
- override def readLine(prompt: String): UserInput =
- Try(lineReader.readLine(prompt)).map(Line).getOrElse(EndOfInput)
-
- /** Print a line to the REPL.
- * @param contents contents of the line to print
- */
- override def println(contents: String): Unit =
- terminal.writer().println(contents)
-}
-
-/** The Repl logic to inject into runtime instrumentation framework.
- *
- * @param replIO the IO implementation to use with this Repl
- */
-case class Repl(replIO: ReplIO) extends SessionManager {
-
- /** Runs the Repl session by asking for user input and performing
- * the requested action with the execution node.
- *
- * End of input causes exit from the Repl.
- *
- * @param executor the interface for executing commands inside the session
- */
- override def startSession(
- executor: ReplExecutor
- ): Nothing = {
- var continueRunning = true
- while (continueRunning) {
- val input = replIO.readLine("> ")
- input match {
- case EndOfInput =>
- continueRunning = false
- case Line(line) =>
- if (line.isEmpty) {
- // nop
- } else if (line == ":list" || line == ":l") {
- val bindings = executor.listBindings()
- bindings.foreach { case (varName, value) =>
- replIO.println(s"$varName = $value")
- }
- } else if (line == ":quit" || line == ":q") {
- continueRunning = false
- } else {
- val result = executor.evaluate(line)
- result match {
- case Left(exception) =>
- replIO.println(
- s"Evaluation failed with: ${exception.getMessage}"
- )
- replIO.printStackTrace(exception)
- case Right(objectRepresentation) =>
- replIO.println(s">>> $objectRepresentation")
- }
- }
- }
- }
-
- executor.exit()
- }
-}
diff --git a/engine/runner/src/main/scala/org/enso/runner/RunnerLogging.scala b/engine/runner/src/main/scala/org/enso/runner/RunnerLogging.scala
deleted file mode 100644
index ccaee4120a60..000000000000
--- a/engine/runner/src/main/scala/org/enso/runner/RunnerLogging.scala
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.enso.runner
-
-import java.net.URI
-import com.typesafe.scalalogging.Logger
-import org.enso.logger.LoggerSetup
-import org.enso.logger.masking.Masking
-import org.slf4j.event.Level
-
-import scala.util.{Failure, Success}
-import scala.concurrent.Future
-
-/** Manages setting up the logging service within the runner.
- */
-object RunnerLogging {
-
- private val logger = Logger[RunnerLogging.type]
-
- /** Sets up the runner's logging service.
- *
- * If `connectionUri` is provided it tries to connect to a logging service
- * server and pass logs to it. If it is not provided, or the connection could
- * not be established, falls back to logging to standard error output.
- *
- * @param connectionUri optional uri of logging service server to connect to
- * @param logLevel log level to use for the runner and runtime
- * @param logMasking switches log masking on and off
- */
- def setup(
- connectionUri: Option[URI],
- logLevel: Level,
- logMasking: Boolean
- ): Unit = {
- import scala.concurrent.ExecutionContext.Implicits.global
- Masking.setup(logMasking)
- val loggerSetup = LoggerSetup.get()
- val initializedLogger = connectionUri match {
- case Some(uri) =>
- Future {
- loggerSetup.setupSocketAppender(
- logLevel,
- uri.getHost(),
- uri.getPort()
- )
- }
- .map(success =>
- if (success) {
- logger.trace("Connected to logging service at [{}].", uri)
- true
- } else
- throw new RuntimeException("Failed to connect to logging service")
- )
- .recoverWith[Boolean] { _ =>
- System.err.println(
- "Failed to connect to the logging service server, " +
- "falling back to local logging."
- )
- Future.successful(loggerSetup.setupConsoleAppender(logLevel))
- }
- case None =>
- Future.successful(loggerSetup.setupConsoleAppender(logLevel))
- }
- initializedLogger.onComplete {
- case Failure(exception) =>
- exception.printStackTrace()
- System.err.println("Logger setup: " + exception.getMessage)
- case Success(success) =>
- if (!success) {
- System.err.println("Failed to initialize logging infrastructure")
- }
- }
- }
-
- /** Shuts down the logging service gracefully.
- */
- def tearDown(): Unit = {
- LoggerSetup.get().teardown()
- }
-}
diff --git a/engine/runtime-fat-jar/src/main/java/module-info.java b/engine/runtime-fat-jar/src/main/java/module-info.java
index 1f5b2eee274d..87816c972306 100644
--- a/engine/runtime-fat-jar/src/main/java/module-info.java
+++ b/engine/runtime-fat-jar/src/main/java/module-info.java
@@ -26,9 +26,9 @@
org.enso.interpreter.epb.EpbLanguageProvider;
provides com.oracle.truffle.api.instrumentation.provider.TruffleInstrumentProvider with
- org.enso.interpreter.instrument.ReplDebuggerInstrumentProvider,
- org.enso.interpreter.instrument.RuntimeServerInstrumentProvider,
- org.enso.interpreter.instrument.IdExecutionInstrumentProvider;
+ org.enso.interpreter.instrument.repl.debugger.ReplDebuggerInstrumentProvider,
+ org.enso.interpreter.instrument.runtime.server.RuntimeServerInstrumentProvider,
+ org.enso.interpreter.instrument.id.execution.IdExecutionInstrumentProvider;
// java.beans.Transient needed by Jackson jackson.databind.ext.Java7SupportImpl
diff --git a/engine/runtime-instrument-common/src/main/java/org/enso/interpreter/service/ExecutionService.java b/engine/runtime-instrument-common/src/main/java/org/enso/interpreter/service/ExecutionService.java
index 8f4ce3cbb22a..c24bde869267 100644
--- a/engine/runtime-instrument-common/src/main/java/org/enso/interpreter/service/ExecutionService.java
+++ b/engine/runtime-instrument-common/src/main/java/org/enso/interpreter/service/ExecutionService.java
@@ -30,9 +30,7 @@
import org.enso.compiler.suggestions.SimpleUpdate;
import org.enso.interpreter.instrument.Endpoint;
import org.enso.interpreter.instrument.MethodCallsCache;
-import org.enso.interpreter.instrument.NotificationHandler;
import org.enso.interpreter.instrument.RuntimeCache;
-import org.enso.interpreter.instrument.Timer;
import org.enso.interpreter.instrument.UpdatesSynchronizationState;
import org.enso.interpreter.instrument.VisualizationHolder;
import org.enso.interpreter.instrument.profiling.ProfilingInfo;
@@ -47,6 +45,8 @@
import org.enso.interpreter.runtime.data.Type;
import org.enso.interpreter.runtime.data.atom.AtomConstructor;
import org.enso.interpreter.runtime.error.PanicException;
+import org.enso.interpreter.runtime.instrument.NotificationHandler;
+import org.enso.interpreter.runtime.instrument.Timer;
import org.enso.interpreter.runtime.scope.ModuleScope;
import org.enso.interpreter.runtime.state.State;
import org.enso.interpreter.service.error.FailedToApplyEditsException;
diff --git a/engine/runtime-instrument-common/src/main/scala/org/enso/compiler/context/ChangesetBuilder.scala b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/ChangesetBuilder.scala
similarity index 98%
rename from engine/runtime-instrument-common/src/main/scala/org/enso/compiler/context/ChangesetBuilder.scala
rename to engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/ChangesetBuilder.scala
index 3db6f8849292..f98b7a0a14aa 100644
--- a/engine/runtime-instrument-common/src/main/scala/org/enso/compiler/context/ChangesetBuilder.scala
+++ b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/ChangesetBuilder.scala
@@ -1,26 +1,17 @@
-package org.enso.compiler.context
+package org.enso.interpreter.instrument
import com.oracle.truffle.api.source.Source
-
-import java.util.UUID
-import org.enso.compiler.core.{
- CompilerError,
- EnsoParser,
- ExternalID,
- IR,
- Identifier
-}
import org.enso.compiler.core.Implicits.AsMetadata
-import org.enso.compiler.core.ir.Literal
-import org.enso.compiler.core.ir.Location
-import org.enso.compiler.core.ir.Name
-import org.enso.compiler.suggestions.SimpleUpdate
+import org.enso.compiler.core.ir.{Literal, Location, Name}
import org.enso.compiler.core.ir.module.scope.definition
+import org.enso.compiler.core._
import org.enso.compiler.pass.analyse.DataflowAnalysis
+import org.enso.compiler.suggestions.SimpleUpdate
import org.enso.interpreter.instrument.execution.model.PendingEdit
import org.enso.text.editing.model.{IdMap, TextEdit}
import org.enso.text.editing.{IndexedSource, TextEditor}
+import java.util.UUID
import scala.collection.mutable
import scala.util.Using
diff --git a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/AnalyzeModuleJob.scala b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/AnalyzeModuleJob.scala
index eca4ecb8f3b0..6c662b24ed1d 100644
--- a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/AnalyzeModuleJob.scala
+++ b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/AnalyzeModuleJob.scala
@@ -1,6 +1,5 @@
package org.enso.interpreter.instrument.job
-import org.enso.compiler.context.Changeset
import org.enso.compiler.suggestions.{
ExportsBuilder,
ModuleExportsDiff,
@@ -8,6 +7,7 @@ import org.enso.compiler.suggestions.{
SuggestionDiff
}
import org.enso.compiler.core.IR
+import org.enso.interpreter.instrument.Changeset
import org.enso.interpreter.instrument.execution.ModuleIndexing.IndexState
import org.enso.interpreter.instrument.execution.RuntimeContext
import org.enso.interpreter.runtime.Module
diff --git a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala
index 1fcb8f3b1522..e8a19d44a145 100644
--- a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala
+++ b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala
@@ -20,6 +20,8 @@ import org.enso.interpreter.instrument.execution.{
}
import org.enso.interpreter.instrument.{
CacheInvalidation,
+ Changeset,
+ ChangesetBuilder,
InstrumentFrame,
Visualization
}
@@ -36,7 +38,6 @@ import java.io.File
import java.util
import java.util.UUID
import java.util.logging.Level
-
import scala.jdk.OptionConverters._
/** A job that ensures that specified files are compiled.
diff --git a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/service/InteractiveMode.scala b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/service/InteractiveMode.scala
index cbf66928dd1f..46220d19d38f 100644
--- a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/service/InteractiveMode.scala
+++ b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/service/InteractiveMode.scala
@@ -6,9 +6,9 @@ import org.enso.distribution.ProgressAndLockNotificationForwarder
import org.enso.editions.{LibraryName, LibraryVersion}
import org.enso.pkg.QualifiedName
import org.enso.polyglot.runtime.Runtime.{Api, ApiResponse}
-import org.enso.interpreter.instrument.NotificationHandler
import org.enso.interpreter.instrument.ProgressNotificationTranslator
import org.enso.interpreter.instrument.Endpoint
+import org.enso.interpreter.runtime.instrument.NotificationHandler
import java.nio.file.Path
diff --git a/engine/runtime-instrument-common/src/test/scala/org/enso/compiler/test/context/ChangesetBuilderTest.scala b/engine/runtime-instrument-common/src/test/scala/org/enso/compiler/test/context/ChangesetBuilderTest.scala
index 3381178a6b60..8579d3b93dc8 100644
--- a/engine/runtime-instrument-common/src/test/scala/org/enso/compiler/test/context/ChangesetBuilderTest.scala
+++ b/engine/runtime-instrument-common/src/test/scala/org/enso/compiler/test/context/ChangesetBuilderTest.scala
@@ -1,12 +1,7 @@
package org.enso.compiler.test.context
import org.enso.compiler.Passes
-import org.enso.compiler.context.{
- ChangesetBuilder,
- FreshNameSupply,
- InlineContext,
- ModuleContext
-}
+import org.enso.compiler.context.{FreshNameSupply, InlineContext, ModuleContext}
import org.enso.compiler.core.{ExternalID, IR, Identifier}
import org.enso.compiler.core.ir.{CallArgument, Expression, Function}
import org.enso.compiler.core.ir.expression.Application
@@ -15,6 +10,7 @@ import org.enso.compiler.core.ir.module.scope.definition
import org.enso.compiler.pass.PassManager
import org.enso.compiler.test.CompilerTestSetup
import org.enso.compiler.context.LocalScope
+import org.enso.interpreter.instrument.ChangesetBuilder
import org.enso.text.buffer.Rope
import org.enso.text.editing.JavaEditorAdapter
import org.enso.text.editing.model.{Position, Range, TextEdit}
diff --git a/engine/runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument/IdExecutionInstrument.java b/engine/runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument/id/execution/IdExecutionInstrument.java
similarity index 99%
rename from engine/runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument/IdExecutionInstrument.java
rename to engine/runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument/id/execution/IdExecutionInstrument.java
index 3c0e1aff122f..53537b45e231 100644
--- a/engine/runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument/IdExecutionInstrument.java
+++ b/engine/runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument/id/execution/IdExecutionInstrument.java
@@ -1,4 +1,4 @@
-package org.enso.interpreter.instrument;
+package org.enso.interpreter.instrument.id.execution;
import com.oracle.truffle.api.CallTarget;
import com.oracle.truffle.api.CompilerDirectives;
@@ -37,6 +37,7 @@
import org.enso.interpreter.runtime.error.DataflowError;
import org.enso.interpreter.runtime.error.PanicException;
import org.enso.interpreter.runtime.error.PanicSentinel;
+import org.enso.interpreter.runtime.instrument.Timer;
import org.enso.interpreter.runtime.state.State;
import org.enso.interpreter.runtime.tag.AvoidIdInstrumentationTag;
import org.enso.interpreter.runtime.tag.IdentifiedTag;
diff --git a/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java b/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/repl/debugger/ReplDebuggerInstrument.java
similarity index 98%
rename from engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java
rename to engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/repl/debugger/ReplDebuggerInstrument.java
index 4cdc0122acea..87012f057480 100644
--- a/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java
+++ b/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/repl/debugger/ReplDebuggerInstrument.java
@@ -1,4 +1,4 @@
-package org.enso.interpreter.instrument;
+package org.enso.interpreter.instrument.repl.debugger;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.TruffleLogger;
@@ -31,6 +31,8 @@
import java.util.logging.Level;
import org.enso.common.DebugServerInfo;
import org.enso.compiler.pass.analyse.FramePointer;
+import org.enso.interpreter.instrument.DebuggerMessageHandler;
+import org.enso.interpreter.instrument.ReplExecutionEventNode;
import org.enso.interpreter.node.EnsoRootNode;
import org.enso.interpreter.node.expression.builtin.debug.DebugBreakpointNode;
import org.enso.interpreter.node.expression.builtin.text.util.ToJavaStringNode;
diff --git a/engine/runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument/RuntimeServerInstrument.java b/engine/runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument/runtime/server/RuntimeServerInstrument.java
similarity index 94%
rename from engine/runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument/RuntimeServerInstrument.java
rename to engine/runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument/runtime/server/RuntimeServerInstrument.java
index befa84fb837a..ccb742c4ca50 100644
--- a/engine/runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument/RuntimeServerInstrument.java
+++ b/engine/runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument/runtime/server/RuntimeServerInstrument.java
@@ -1,4 +1,4 @@
-package org.enso.interpreter.instrument;
+package org.enso.interpreter.instrument.runtime.server;
import com.oracle.truffle.api.TruffleContext;
import com.oracle.truffle.api.TruffleOptions;
@@ -11,7 +11,12 @@
import java.util.Arrays;
import java.util.Optional;
import org.enso.distribution.locking.LockManager;
+import org.enso.interpreter.instrument.Handler;
+import org.enso.interpreter.instrument.HandlerFactory;
+import org.enso.interpreter.instrument.HandlerFactoryImpl;
import org.enso.interpreter.runtime.EnsoContext;
+import org.enso.interpreter.runtime.instrument.NotificationHandler;
+import org.enso.interpreter.runtime.instrument.Timer;
import org.enso.interpreter.service.ExecutionService;
import org.enso.lockmanager.client.ConnectedLockManager;
import org.enso.polyglot.RuntimeServerInfo;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/AnnotationsCompilerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/AnnotationsCompilerTest.java
similarity index 96%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/AnnotationsCompilerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/AnnotationsCompilerTest.java
index 87eda4ff434f..b78b8b06cd45 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/AnnotationsCompilerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/AnnotationsCompilerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
@@ -9,7 +9,7 @@
import org.enso.compiler.core.ir.module.scope.Definition;
import org.junit.Test;
-public class AnnotationsCompilerTest extends CompilerTest {
+public class AnnotationsCompilerTest extends CompilerTests {
@Test
public void testModuleMethod() throws Exception {
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/CompilerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/CompilerTests.java
similarity index 98%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/CompilerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/CompilerTests.java
index 9dafb8d8df9a..7b01bed83311 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/CompilerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/CompilerTests.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -14,7 +14,7 @@
import org.junit.AfterClass;
import org.junit.BeforeClass;
-public abstract class CompilerTest {
+public abstract class CompilerTests {
protected static EnsoParser ensoCompiler;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ErrorCompilerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ErrorCompilerTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/ErrorCompilerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ErrorCompilerTest.java
index 78e25605236d..e21a0bf5aa2d 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ErrorCompilerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ErrorCompilerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -12,7 +12,7 @@
import org.junit.Test;
import scala.collection.immutable.List;
-public class ErrorCompilerTest extends CompilerTest {
+public class ErrorCompilerTest extends CompilerTests {
@Test
public void unfinishedLiteral1() throws Exception {
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExecCompilerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExecCompilerTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExecCompilerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExecCompilerTest.java
index a6a0068896a3..a0c18e195433 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExecCompilerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExecCompilerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExecStrictCompilerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExecStrictCompilerTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExecStrictCompilerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExecStrictCompilerTest.java
index 256da1d16a7d..131da4a1f965 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExecStrictCompilerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExecStrictCompilerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExportCycleDetectionTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExportCycleDetectionTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExportCycleDetectionTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExportCycleDetectionTest.java
index d6fe43456c2f..bd86cb230f72 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExportCycleDetectionTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExportCycleDetectionTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExportedSymbolsTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExportedSymbolsTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExportedSymbolsTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExportedSymbolsTest.java
index a5e0e9a14a7f..1b8d45734564 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ExportedSymbolsTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ExportedSymbolsTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ImportsAndFQNConsistencyTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ImportsAndFQNConsistencyTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/ImportsAndFQNConsistencyTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ImportsAndFQNConsistencyTest.java
index d724b8181a53..ea8a18c3ce94 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/ImportsAndFQNConsistencyTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/ImportsAndFQNConsistencyTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.greaterThan;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerdeCompilerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerdeCompilerTest.java
similarity index 98%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerdeCompilerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerdeCompilerTest.java
index 18d15cae5779..d070c83bc253 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerdeCompilerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerdeCompilerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -107,7 +107,7 @@ private void parseSerializedModule(String projectName, String forbiddenMessage)
ctx.leave();
}
- CompilerTest.assertIR("Serialized and deserialized IR for " + projectName, old, now);
+ CompilerTests.assertIR("Serialized and deserialized IR for " + projectName, old, now);
}
private Context ensoContextForPackage(String name, File pkgFile, boolean disableIrCaching)
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerializationManagerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerializationManagerTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerializationManagerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerializationManagerTest.java
index 7a04b07d98fd..8c29b11ddaf1 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerializationManagerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerializationManagerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import com.oracle.truffle.api.TruffleFile;
import java.nio.file.Path;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerializerTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerializerTest.java
similarity index 98%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerializerTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerializerTest.java
index 5ec0c09193d1..a2aa54510121 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/SerializerTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/SerializerTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/TypeInferenceTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/TypeInferenceTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/TypeInferenceTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/TypeInferenceTest.java
index 7a1e3bf0ee36..b67414c09c17 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/TypeInferenceTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/TypeInferenceTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
@@ -10,6 +10,8 @@
import java.util.List;
import java.util.Optional;
import java.util.Set;
+import org.enso.compiler.Compiler;
+import org.enso.compiler.Passes;
import org.enso.compiler.context.FreshNameSupply;
import org.enso.compiler.context.ModuleContext;
import org.enso.compiler.core.IR;
@@ -26,7 +28,6 @@
import org.enso.compiler.pass.analyse.types.InferredType;
import org.enso.compiler.pass.analyse.types.TypeInference;
import org.enso.compiler.pass.analyse.types.TypeRepresentation;
-import org.enso.compiler.test.CompilerRunner;
import org.enso.pkg.QualifiedName;
import org.graalvm.polyglot.Source;
import org.junit.Ignore;
@@ -36,7 +37,7 @@
import scala.collection.immutable.Seq$;
import scala.jdk.javaapi.CollectionConverters;
-public class TypeInferenceTest extends CompilerTest {
+public class TypeInferenceTest extends CompilerTests {
@Ignore("TODO resolving global methods")
@Test
public void zeroAryCheck() throws Exception {
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/VectorArraySignatureTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/VectorArraySignatureTest.java
similarity index 99%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/VectorArraySignatureTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/VectorArraySignatureTest.java
index d5c2c9440a7b..5cabcd4cb387 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/VectorArraySignatureTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/VectorArraySignatureTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler;
+package org.enso.compiler.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/passes/MethodCallsTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/passes/MethodCallsTest.java
similarity index 97%
rename from engine/runtime-integration-tests/src/test/java/org/enso/compiler/passes/MethodCallsTest.java
rename to engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/passes/MethodCallsTest.java
index ae14fdd6e5d4..e4b5b79acf19 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/compiler/passes/MethodCallsTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/compiler/test/passes/MethodCallsTest.java
@@ -1,4 +1,4 @@
-package org.enso.compiler.passes;
+package org.enso.compiler.test.passes;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.instanceOf;
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/caches/ModuleCacheTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/caches/ModuleCacheTest.java
index a55cf495fe5a..0c3df4818a40 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/caches/ModuleCacheTest.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/caches/ModuleCacheTest.java
@@ -9,7 +9,7 @@
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.common.RuntimeOptions;
-import org.enso.compiler.CompilerTest;
+import org.enso.compiler.test.CompilerTests;
import org.enso.interpreter.runtime.EnsoContext;
import org.enso.test.utils.ContextUtils;
import org.graalvm.polyglot.Context;
@@ -67,7 +67,7 @@ public void testCompareList() throws Exception {
var meta = new ModuleCache.Metadata("hash", "code", CompilationStage.AFTER_CODEGEN.toString());
var cachedIr = mc.deserialize(ensoCtx, ByteBuffer.wrap(arr), meta, null);
assertNotNull("IR read", cachedIr);
- CompilerTest.assertIR(name, ir, cachedIr.moduleIR());
+ CompilerTests.assertIR(name, ir, cachedIr.moduleIR());
}
@Test
@@ -97,6 +97,6 @@ public void testCompareWithWarning() throws Exception {
var meta = new ModuleCache.Metadata("hash", "code", CompilationStage.AFTER_CODEGEN.toString());
var cachedIr = mc.deserialize(ensoCtx, ByteBuffer.wrap(arr), meta, null);
assertNotNull("IR read", cachedIr);
- CompilerTest.assertIR(name, ir, cachedIr.moduleIR());
+ CompilerTests.assertIR(name, ir, cachedIr.moduleIR());
}
}
diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/TestLogProviderOnClasspath.java b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/TestLogProviderOnClasspath.java
index 31ab81725ede..02a3bdfe4588 100644
--- a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/TestLogProviderOnClasspath.java
+++ b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/TestLogProviderOnClasspath.java
@@ -1,18 +1,21 @@
package org.enso.interpreter.test;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.*;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.hamcrest.Matchers.nullValue;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import java.util.stream.Collectors;
+import org.enso.logging.service.logback.test.provider.TestLogProvider;
import org.junit.Test;
import org.slf4j.spi.SLF4JServiceProvider;
/**
- * In the `runtime/Test` testing suite, {@link org.enso.logger.TestLogProvider} should be among the
- * logging providers, because it is explicitly chosen as the logging provider for the tests.
+ * In the `runtime/Test` testing suite, {@link TestLogProvider} should be among the logging
+ * providers, because it is explicitly chosen as the logging provider for the tests.
*/
public class TestLogProviderOnClasspath {
@Test
@@ -25,12 +28,14 @@ public void testLogProviderOnClasspath() {
}
List