From d625600d34a8e0fb55ced7556789a51b045ebcf8 Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Fri, 22 Aug 2025 11:21:11 +0200 Subject: [PATCH] [jps build devkit] refactoring: move constants from RuntimeModuleRepositoryBuildConstants to 'intellij.devkit.runtimeModuleRepository.generator' (IJPL-201730) This is needed to reuse it in the build scripts. GitOrigin-RevId: 2ff3d844537787622db4f00af38a17ece44c729b --- .../generator/src/RuntimeModuleRepositoryGenerator.kt | 4 ++++ .../build/RuntimeModuleRepositoryBuildConstants.kt | 4 ---- .../jps/src/build/RuntimeModuleRepositoryBuilder.kt | 11 ++++------- .../jps/src/build/RuntimeModuleRepositoryTarget.kt | 8 +++----- .../testSrc/build/RuntimeModuleRepositoryCheckers.kt | 4 ++-- .../RuntimeModuleRepositoryIncrementalBuildTest.kt | 3 ++- 6 files changed, 15 insertions(+), 19 deletions(-) diff --git a/plugins/devkit/runtimeModuleRepository/generator/src/RuntimeModuleRepositoryGenerator.kt b/plugins/devkit/runtimeModuleRepository/generator/src/RuntimeModuleRepositoryGenerator.kt index 693934bd330a..ce40dd19363a 100644 --- a/plugins/devkit/runtimeModuleRepository/generator/src/RuntimeModuleRepositoryGenerator.kt +++ b/plugins/devkit/runtimeModuleRepository/generator/src/RuntimeModuleRepositoryGenerator.kt @@ -16,6 +16,10 @@ import org.jetbrains.jps.model.module.JpsModule import org.jetbrains.jps.model.module.JpsModuleDependency object RuntimeModuleRepositoryGenerator { + const val JAR_REPOSITORY_FILE_NAME: String = "module-descriptors.jar" + const val COMPACT_REPOSITORY_FILE_NAME: String = "module-descriptors.dat" + const val GENERATOR_VERSION: Int = 2 + /** * Generates the runtime module descriptors for all modules and libraries in [project]. */ diff --git a/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuildConstants.kt b/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuildConstants.kt index 22f85c56f497..1c15f6b0b2c7 100644 --- a/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuildConstants.kt +++ b/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuildConstants.kt @@ -2,10 +2,6 @@ package com.intellij.devkit.runtimeModuleRepository.jps.build object RuntimeModuleRepositoryBuildConstants { - const val JAR_REPOSITORY_FILE_NAME: String = "module-descriptors.jar" - const val COMPACT_REPOSITORY_FILE_NAME: String = "module-descriptors.dat" - const val GENERATOR_VERSION: Int = 2 - /** * Must be equal to the [org.jetbrains.idea.devkit.build.IntelliJModuleRepositoryBuildScopeProvider.TARGET_TYPE_ID] */ diff --git a/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuilder.kt b/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuilder.kt index e09757976646..ca6d6bf0d6b6 100644 --- a/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuilder.kt +++ b/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryBuilder.kt @@ -3,9 +3,6 @@ package com.intellij.devkit.runtimeModuleRepository.jps.build import com.intellij.devkit.runtimeModuleRepository.generator.RuntimeModuleRepositoryGenerator import com.intellij.devkit.runtimeModuleRepository.generator.RuntimeModuleRepositoryValidator -import com.intellij.devkit.runtimeModuleRepository.jps.build.RuntimeModuleRepositoryBuildConstants.COMPACT_REPOSITORY_FILE_NAME -import com.intellij.devkit.runtimeModuleRepository.jps.build.RuntimeModuleRepositoryBuildConstants.GENERATOR_VERSION -import com.intellij.devkit.runtimeModuleRepository.jps.build.RuntimeModuleRepositoryBuildConstants.JAR_REPOSITORY_FILE_NAME import com.intellij.devkit.runtimeModuleRepository.jps.impl.DevkitRuntimeModuleRepositoryJpsBundle import com.intellij.openapi.diagnostic.logger import com.intellij.platform.runtime.repository.serialization.RawRuntimeModuleDescriptor @@ -68,16 +65,16 @@ internal class RuntimeModuleRepositoryBuilder val outputDir = Path.of(JpsPathUtil.urlToOsPath(outputUrl)) val modulesXml = RuntimeModuleRepositoryTarget.getModulesXmlFile(project) ?: error("Project was not loaded from .idea") try { - val jarRepositoryPath = outputDir.resolve(JAR_REPOSITORY_FILE_NAME) + val jarRepositoryPath = outputDir.resolve(RuntimeModuleRepositoryGenerator.JAR_REPOSITORY_FILE_NAME) val timeToSaveDescriptorsToJar = measureTimeMillis { - RuntimeModuleRepositorySerialization.saveToJar(descriptors, null, jarRepositoryPath, null, GENERATOR_VERSION) + RuntimeModuleRepositorySerialization.saveToJar(descriptors, null, jarRepositoryPath, null, RuntimeModuleRepositoryGenerator.GENERATOR_VERSION) } outputConsumer.registerOutputFile(jarRepositoryPath.toFile(), listOf(modulesXml.absolutePath)) LOG.info("${descriptors.size} descriptors are saved to JAR in ${timeToSaveDescriptorsToJar}ms") - val compactRepositoryPath = outputDir.resolve(COMPACT_REPOSITORY_FILE_NAME) + val compactRepositoryPath = outputDir.resolve(RuntimeModuleRepositoryGenerator.COMPACT_REPOSITORY_FILE_NAME) val timeToSaveDescriptorsToCompactFile = measureTimeMillis { - CompactFileWriter.saveToFile(descriptors, null, null, GENERATOR_VERSION, compactRepositoryPath) + CompactFileWriter.saveToFile(descriptors, null, null, RuntimeModuleRepositoryGenerator.GENERATOR_VERSION, compactRepositoryPath) } LOG.info("${descriptors.size} descriptors are saved in compact format in ${timeToSaveDescriptorsToCompactFile}ms") outputConsumer.registerOutputFile(compactRepositoryPath.toFile(), listOf(modulesXml.absolutePath)) diff --git a/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryTarget.kt b/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryTarget.kt index b32fa406a163..c87a9e29545a 100644 --- a/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryTarget.kt +++ b/plugins/devkit/runtimeModuleRepository/jps/src/build/RuntimeModuleRepositoryTarget.kt @@ -5,8 +5,6 @@ package com.intellij.devkit.runtimeModuleRepository.jps.build import com.dynatrace.hash4j.hashing.HashSink import com.intellij.devkit.runtimeModuleRepository.generator.RuntimeModuleRepositoryGenerator -import com.intellij.devkit.runtimeModuleRepository.jps.build.RuntimeModuleRepositoryBuildConstants.COMPACT_REPOSITORY_FILE_NAME -import com.intellij.devkit.runtimeModuleRepository.jps.build.RuntimeModuleRepositoryBuildConstants.JAR_REPOSITORY_FILE_NAME import com.intellij.devkit.runtimeModuleRepository.jps.impl.DevkitRuntimeModuleRepositoryJpsBundle import com.intellij.openapi.diagnostic.logger import com.intellij.platform.runtime.repository.serialization.impl.CompactFileReader @@ -73,14 +71,14 @@ internal class RuntimeModuleRepositoryTarget( val project = context.projectDescriptor.project val outputUrl = JpsJavaExtensionService.getInstance().getProjectExtension(project)?.outputUrl ?: return emptyList() val outputDir = JpsPathUtil.urlToFile(outputUrl) - return java.util.List.of(File(outputDir, JAR_REPOSITORY_FILE_NAME), - File(outputDir, COMPACT_REPOSITORY_FILE_NAME)) + return java.util.List.of(File(outputDir, RuntimeModuleRepositoryGenerator.JAR_REPOSITORY_FILE_NAME), + File(outputDir, RuntimeModuleRepositoryGenerator.COMPACT_REPOSITORY_FILE_NAME)) } override fun computeConfigurationDigest(projectDescriptor: ProjectDescriptor, hash: HashSink) { hash.putString(JarFileSerializer.SPECIFICATION_VERSION) hash.putInt(CompactFileReader.FORMAT_VERSION) - hash.putInt(RuntimeModuleRepositoryBuildConstants.GENERATOR_VERSION) + hash.putInt(RuntimeModuleRepositoryGenerator.GENERATOR_VERSION) val time = measureTimeMillis { computeDependenciesDigest(projectDescriptor, hash) diff --git a/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryCheckers.kt b/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryCheckers.kt index 0843e39f2a1e..e9e15df43f2e 100644 --- a/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryCheckers.kt +++ b/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryCheckers.kt @@ -11,9 +11,9 @@ import java.nio.file.Path fun checkRuntimeModuleRepository(outputDir: Path, expected: RawDescriptorListBuilder.() -> Unit) { - val jarPath = outputDir.resolve(RuntimeModuleRepositoryBuildConstants.JAR_REPOSITORY_FILE_NAME) + val jarPath = outputDir.resolve(RuntimeModuleRepositoryGenerator.JAR_REPOSITORY_FILE_NAME) checkRuntimeModuleRepository(RuntimeModuleRepositorySerialization.loadFromJar(jarPath), expected) - val compactPath = outputDir.resolve(RuntimeModuleRepositoryBuildConstants.COMPACT_REPOSITORY_FILE_NAME) + val compactPath = outputDir.resolve(RuntimeModuleRepositoryGenerator.COMPACT_REPOSITORY_FILE_NAME) checkRuntimeModuleRepository(RuntimeModuleRepositorySerialization.loadFromCompactFile(compactPath), expected) } diff --git a/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryIncrementalBuildTest.kt b/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryIncrementalBuildTest.kt index e6feee5568f1..7cc44fce61af 100644 --- a/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryIncrementalBuildTest.kt +++ b/plugins/devkit/runtimeModuleRepository/jps/testSrc/build/RuntimeModuleRepositoryIncrementalBuildTest.kt @@ -1,6 +1,7 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.devkit.runtimeModuleRepository.jps.build +import com.intellij.devkit.runtimeModuleRepository.generator.RuntimeModuleRepositoryGenerator import org.jetbrains.jps.builders.BuildResult import org.jetbrains.jps.builders.CompileScopeTestBuilder import org.jetbrains.jps.model.java.JavaSourceRootType @@ -83,7 +84,7 @@ class RuntimeModuleRepositoryIncrementalBuildTest : RuntimeModuleRepositoryTestC descriptor("a") } - deleteFile("out/${RuntimeModuleRepositoryBuildConstants.COMPACT_REPOSITORY_FILE_NAME}") + deleteFile("out/${RuntimeModuleRepositoryGenerator.COMPACT_REPOSITORY_FILE_NAME}") buildAndCheck { descriptor("a") }