Files
openide/platform/util/progress/intellij.platform.util.progress.iml
Kate Botsman 35f17aa034 RDCT-1444 Add TaskInfoEntity
This entity is going to represent running progress in Rhizome DB.
The data is mostly copied from `PlatformTaskSupport.ProgressStartedEvent` structure.

Few differences here:
- No `CoroutineContext` in the entity

It's not possible to put the actual coroutine context to `SharedEntity` because it's not serializable.
The context is used mostly for cancellation of a job. The possibility to cancel a job will be provided through a different API.

- New `TaskStatus` field

The status represents the actual status of a task, whether it's running, paused or canceled.

Also:

- Added utils which should make working with `TasksInfoEntity` easier

The utils are queries, which allow avoiding writing the same `asQuery().getOne` in every place where tasks info needs to be retrieved.

- Marked classes used in `TaskInfoEntity` as `@Serializable`

All data used in `SharedEntities` have to be serializable, otherwise it won't be possible to put entity to shared DB

- Add `kotlinx/serialization/KSerializer` to `ideaProjectStructure/exposed-third-party`

With Rhizome `KSerializer` is going to be exposed in more places. Therefore, it makes sense to add this class to default `exposed-third-party-api`, so the tests won't fail because of the added `@Serializable` annotation.

GitOrigin-RevId: 1a1b979b7660d41879a40a4d28b6487b3205e743
2024-09-09 14:33:01 +00:00

43 lines
2.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="kotlin-language" name="Kotlin">
<configuration version="5" platform="JVM 1.8" allPlatforms="JVM [1.8]" useProjectSettings="false">
<compilerSettings>
<option name="additionalArguments" value="-Xjvm-default=all -opt-in=com.intellij.openapi.util.IntellijInternalApi -opt-in=org.jetbrains.kotlin.utils.addToStdlib.UnsafeCastFunction" />
</compilerSettings>
<compilerArguments>
<stringArguments>
<stringArg name="jvmTarget" arg="1.8" />
<stringArg name="apiVersion" arg="2.0" />
<stringArg name="languageVersion" arg="2.0" />
</stringArguments>
<arrayArguments>
<arrayArg name="pluginClasspaths">
<args>$KOTLIN_BUNDLED$/lib/kotlinx-serialization-compiler-plugin.jar</args>
</arrayArg>
<arrayArg name="pluginOptions" />
</arrayArguments>
</compilerArguments>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="com.intellij.platform.util.progress" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="jetbrains-annotations" level="project" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="library" name="kotlinx-coroutines-core" level="project" />
<orderEntry type="library" name="kotlinx-collections-immutable" level="project" />
<orderEntry type="library" name="Guava" level="project" />
<orderEntry type="module" module-name="intellij.platform.util" />
<orderEntry type="module" module-name="intellij.platform.util.coroutines" />
<orderEntry type="library" name="fastutil-min" level="project" />
<orderEntry type="library" name="kotlinx-serialization-core" level="project" />
<orderEntry type="library" name="kotlinx-serialization-json" level="project" />
</component>
</module>