diff --git a/.idea/libraries/workspace_model_codegen.xml b/.idea/libraries/workspace_model_codegen.xml index 44ba6db1478d..5e0dd87f9c0b 100644 --- a/.idea/libraries/workspace_model_codegen.xml +++ b/.idea/libraries/workspace_model_codegen.xml @@ -1,8 +1,8 @@ - + - + diff --git a/platform/workspaceModel/codegen-impl/build.gradle.kts b/platform/workspaceModel/codegen-impl/build.gradle.kts index cdabfcae6f94..c51547d9972d 100644 --- a/platform/workspaceModel/codegen-impl/build.gradle.kts +++ b/platform/workspaceModel/codegen-impl/build.gradle.kts @@ -15,10 +15,14 @@ repositories { url = uri("https://www.jetbrains.com/intellij-repository/releases") } maven { - url = uri("https://www.jetbrains.com/intellij-repository/nightly") + url = uri("https://packages.jetbrains.team/maven/p/ij/intellij-dependencies") } } +kotlin { + jvmToolchain(17) +} + publishing { repositories { maven { @@ -38,6 +42,6 @@ publishing { dependencies { implementation("org.jetbrains.kotlin:kotlin-reflect") - implementation("com.jetbrains.intellij.platform:workspace-model-codegen:LATEST-TRUNK-SNAPSHOT") + implementation("com.jetbrains.intellij.platform:workspace-model-codegen:0.0.1") implementation("com.jetbrains.intellij.platform:workspace-model-storage:223.8836.34") } \ No newline at end of file diff --git a/platform/workspaceModel/codegen/build.gradle.kts b/platform/workspaceModel/codegen/build.gradle.kts index db0c5189df19..81127c413989 100644 --- a/platform/workspaceModel/codegen/build.gradle.kts +++ b/platform/workspaceModel/codegen/build.gradle.kts @@ -19,6 +19,10 @@ repositories { } } +kotlin { + jvmToolchain(17) +} + publishing { repositories { maven { diff --git a/plugins/devkit/intellij.devkit.workspaceModel/src/CodegenJarLoader.kt b/plugins/devkit/intellij.devkit.workspaceModel/src/CodegenJarLoader.kt index 26b099be9ac8..01b8bfd62926 100644 --- a/plugins/devkit/intellij.devkit.workspaceModel/src/CodegenJarLoader.kt +++ b/plugins/devkit/intellij.devkit.workspaceModel/src/CodegenJarLoader.kt @@ -21,14 +21,14 @@ import java.util.* @Service(Service.Level.PROJECT) class CodegenJarLoader(val project: Project) { - private val classLoaderToVersion = mutableMapOf() + private val classLoaderToVersion = mutableMapOf() suspend fun getClassLoader(): ClassLoader? { - val targetApiVersion = calculateTargetApiVersion() ?: return null - val result = classLoaderToVersion[targetApiVersion] + val artifactVersion = calculateArtifactVersion() ?: return null + val result = classLoaderToVersion[artifactVersion] return if (result == null) { val classLoader = loadJar() ?: return null - classLoaderToVersion[targetApiVersion] = classLoader + classLoaderToVersion[artifactVersion] = classLoader classLoader } else { result @@ -36,10 +36,9 @@ class CodegenJarLoader(val project: Project) { } private suspend fun loadJar(): ClassLoader? { - val calculateTargetApiVersion = calculateTargetApiVersion() - thisLogger().debug("Calculated target API version: $calculateTargetApiVersion") - val codegenLibraryDescription = JpsMavenRepositoryLibraryDescriptor(GROUP_ID, ARTIFACT_ID, - VERSION, false, emptyList()) + val artifactVersion = calculateArtifactVersion() ?: return null + val codegenLibraryDescription = JpsMavenRepositoryLibraryDescriptor(GROUP_ID, ARTIFACT_ID, artifactVersion, + false, emptyList()) val promise = JarRepositoryManager.loadDependenciesAsync(project, codegenLibraryDescription, setOf(ArtifactKind.ARTIFACT), listOf(INTELLIJ_DEPENDENCIES_DESCRIPTION), null) @@ -51,12 +50,14 @@ class CodegenJarLoader(val project: Project) { return URLClassLoader(arrayOf(pathToJar), this.javaClass.classLoader) } - private fun calculateTargetApiVersion(): Int? { + private fun calculateArtifactVersion(): String? { val allScope = GlobalSearchScope.allScope(project) val generatorVersionsClass = JavaPsiFacade.getInstance(project).findClass(CodeGeneratorVersions::class.java.name, allScope) ?: return null thisLogger().debug("Reading generator version from: ${generatorVersionsClass.containingFile.containingDirectory}") val versionField = generatorVersionsClass.findFieldByName("API_VERSION_INTERNAL", false) ?: return null - return (versionField.initializer as? PsiLiteralExpression)?.value as? Int + val apiVersion = (versionField.initializer as? PsiLiteralExpression)?.value as? Int ?: return null + thisLogger().debug("Calculated target API version: $apiVersion") + return "$VERSION$apiVersion" } companion object { @@ -64,11 +65,11 @@ class CodegenJarLoader(val project: Project) { private const val GROUP_ID = "com.jetbrains.intellij.platform" private const val ARTIFACT_ID = "workspace-model-codegen-impl" - private const val VERSION = "0.0.6" + private const val VERSION = "0.0." private val INTELLIJ_DEPENDENCIES_DESCRIPTION = RemoteRepositoryDescription( "intellij-dependencies", "Intellij Dependencies", - "https://packages.jetbrains.team/maven/p/ide-accessibility-assistant/codegen-test", + "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies", ) } } \ No newline at end of file