[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
This commit is contained in:
Nikolay Chashnikov
2025-08-22 16:02:27 +00:00
committed by intellij-monorepo-bot
parent a8d4d66be3
commit d625600d34
6 changed files with 15 additions and 19 deletions
@@ -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].
*/
@@ -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]
*/
@@ -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))
@@ -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)
@@ -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)
}
@@ -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")
}