From 1331ff89c7d73c36d7e8109f843339de96fa9d4d Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Fri, 29 Apr 2022 17:43:35 +0530 Subject: [PATCH] Provide sync issues with initialization result; Build tooling api modules before building app module --- app/build.gradle | 72 +++++++++--------- .../assets/data/common/tooling-api-all.jar | Bin 4784256 -> 4791217 bytes build-tools/builder-api/build.gradle | 4 + .../itsaky/androidide/builder/BuildService.kt | 20 ++++- .../tooling/impl/ToolingApiServerImpl.kt | 9 ++- .../tooling/impl/util/ProjectReader.java | 55 ++++++++----- .../tooling/impl/ToolingApiImplTest.kt | 11 +-- .../test/test-home/.androidide/init/model.jar | Bin 51553 -> 54335 bytes .../internal/DefaultProjectSyncIssues.kt | 24 ++++++ .../api/model/internal/DefaultSyncIssue.kt | 29 +++++++ .../model/util/AndroidModulePropertyCopier.kt | 23 +++++- .../tooling/api/IToolingApiServer.kt | 3 +- .../api/messages/result/InitializeResult.kt | 34 +++++++++ .../messages/result/TaskExecutionResult.kt | 30 ++++++++ .../androidide/tooling/api/MessageTest.kt | 67 ---------------- 15 files changed, 245 insertions(+), 136 deletions(-) create mode 100644 build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultProjectSyncIssues.kt create mode 100644 build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultSyncIssue.kt create mode 100644 build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/InitializeResult.kt create mode 100644 build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/TaskExecutionResult.kt delete mode 100644 build-tools/tooling-api/src/test/java/com/itsaky/androidide/tooling/api/MessageTest.kt diff --git a/app/build.gradle b/app/build.gradle index 27e03d610..cc8f88dfb 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,60 +4,60 @@ apply plugin: 'kotlin-android' android { compileSdkVersion rootProject.ext.compileSdk buildToolsVersion rootProject.ext.buildTools - + defaultConfig { applicationId rootProject.ext.packageName minSdkVersion rootProject.ext.minSdk targetSdkVersion rootProject.ext.targetSdk versionCode rootProject.ext.versionCode versionName rootProject.ext.versionName - + multiDexEnabled true vectorDrawables.useSupportLibrary = true } - + compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility rootProject.ext.javaSourceVersion targetCompatibility rootProject.ext.javaTargetVersion } - + kotlinOptions { jvmTarget = "11" } - - + + buildFeatures { viewBinding true } - + signingConfigs { - + debug { - storeFile file("dev.keystore") + storeFile file ("dev.keystore") keyAlias "androidide" storePassword "ed68424fb109e5aa8146e4b86caa72e3" keyPassword "ed68424fb109e5aa8146e4b86caa72e3" } - + release { - storeFile file("dev.keystore") + storeFile file ("dev.keystore") keyAlias "androidide" storePassword "ed68424fb109e5aa8146e4b86caa72e3" keyPassword "ed68424fb109e5aa8146e4b86caa72e3" } } - + buildTypes { debug { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile ('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.debug } release { minifyEnabled true shrinkResources true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile ('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } @@ -66,7 +66,7 @@ android { excludes += ['META-INF/eclipse.inf', 'about_files/LICENSE-2.0.txt', 'plugin.xml', 'plugin.properties', 'about.mappings', 'about.properties', 'about.ini', 'modeling32.png'] } } - + lint { abortOnError false disable 'VectorPath', 'NestedWeights', 'ContentDescription', 'SmallSp' @@ -74,10 +74,10 @@ android { } dependencies { - + // Annotation processors annotationProcessor 'com.github.bumptech.glide:compiler:4.13.1' - + implementation common.editor implementation common.utilcode implementation common.file_picker @@ -87,9 +87,9 @@ dependencies { implementation common.xml2json implementation google.gson implementation google.guava - + implementation common.jsoup - + // AndroidX implementation androidx.annotation implementation androidx.appcompat @@ -103,24 +103,28 @@ dependencies { implementation androidx.vectors implementation androidx.animated_vectors implementation google.material - + // Kotlin implementation "androidx.core:core-ktx:1.7.0" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - + // Local projects here - implementation project(':treeview') - implementation project(':emulatorview') - implementation project(':xml-inflater') - implementation project(':lexers') - implementation project(':common') - implementation project(':actions') - - implementation project(':lsp:api') - implementation project(':lsp:java') - implementation project(':lsp:xml') - - implementation fileTree(dir: 'libs', include: ['*.jar']) - + implementation project (':treeview') + implementation project (':emulatorview') + implementation project (':xml-inflater') + implementation project (':lexers') + implementation project (':common') + implementation project (':actions') + + implementation project (':lsp:api') + implementation project (':lsp:java') + implementation project (':lsp:xml') + + implementation fileTree (dir: 'libs', include: ['*.jar']) + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' + + // This is to build the tooling-api-impl project before the app is built + // So we always copy the latest JAR file to assets + compileOnly project (path: ':build-tools:tooling-api-impl') } \ No newline at end of file diff --git a/app/src/main/assets/data/common/tooling-api-all.jar b/app/src/main/assets/data/common/tooling-api-all.jar index 13689a4c2350e7face3c2621b467f2b3d461cc11..eff3804be16a0ef60dafd2bb427f8946f5ea62ba 100644 GIT binary patch delta 106519 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 aM3`|M|EjDLZ4zx#YnlGh;D#D!iT@7^RzQXT delta 99838 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 diff --git a/build-tools/builder-api/build.gradle b/build-tools/builder-api/build.gradle index 48815a5c2..a2acc9c62 100644 --- a/build-tools/builder-api/build.gradle +++ b/build-tools/builder-api/build.gradle @@ -24,6 +24,10 @@ java { targetCompatibility rootProject.ext.javaTargetVersion } +dependencies { + api project (path: ':build-tools:tooling-api') +} + repositories { mavenCentral () } diff --git a/build-tools/builder-api/src/main/java/com/itsaky/androidide/builder/BuildService.kt b/build-tools/builder-api/src/main/java/com/itsaky/androidide/builder/BuildService.kt index 7b585fa5c..bb592eb82 100644 --- a/build-tools/builder-api/src/main/java/com/itsaky/androidide/builder/BuildService.kt +++ b/build-tools/builder-api/src/main/java/com/itsaky/androidide/builder/BuildService.kt @@ -17,7 +17,10 @@ package com.itsaky.androidide.builder +import com.itsaky.androidide.tooling.api.messages.result.InitializeResult +import com.itsaky.androidide.tooling.api.messages.result.TaskExecutionResult import java.io.File +import java.util.concurrent.* /** * A build service provides API to initialize project, execute builds, query a build, cancel running @@ -31,17 +34,21 @@ interface BuildService { * Initialize the project. * * @param rootDir The root directory of the project to initialize. + * @return A [CompletableFuture] which returns an [InitializeResult] when the project + * initialization process finishes. */ - fun initializeProject(rootDir: File) - + fun initializeProject(rootDir: File): CompletableFuture + /** * Execute the given tasks. * * @param tasks The tasks to execute. If the fully qualified path of the task is not specified, * then it will be executed in the root project directory. + * @return A [CompletableFuture] which returns a list of [TaskExecutionResult]. The result + * contains a list of tasks that were executed and the result of the whole execution. * @see BuildService.executeProjectTasks */ - fun executeTasks(vararg tasks: String) + fun executeTasks(vararg tasks: String): CompletableFuture /** * Execute the given tasks of the given project. @@ -51,6 +58,11 @@ interface BuildService { * project. If the task name is not fully qualified, then it will be executed in the given * project path. For example, if the project path is ':app' and the task is 'assembleDebug', * then, ':app:assembleDebug' task will be executed. + * @return A [CompletableFuture] which returns a list of [TaskExecutionResult]. The result + * contains a list of tasks that were executed and the result of the whole execution. */ - fun executeProjectTasks(projectPath: String, vararg tasks: String) + fun executeProjectTasks( + projectPath: String, + vararg tasks: String + ): CompletableFuture } diff --git a/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/ToolingApiServerImpl.kt b/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/ToolingApiServerImpl.kt index 52ddb7888..e9045a027 100644 --- a/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/ToolingApiServerImpl.kt +++ b/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/ToolingApiServerImpl.kt @@ -20,7 +20,9 @@ package com.itsaky.androidide.tooling.impl import com.itsaky.androidide.tooling.api.IToolingApiClient import com.itsaky.androidide.tooling.api.IToolingApiServer import com.itsaky.androidide.tooling.api.messages.InitializeProjectMessage +import com.itsaky.androidide.tooling.api.messages.result.InitializeResult import com.itsaky.androidide.tooling.api.model.IdeGradleProject +import com.itsaky.androidide.tooling.api.model.internal.DefaultProjectSyncIssues import com.itsaky.androidide.tooling.impl.util.InitScriptHandler import com.itsaky.androidide.tooling.impl.util.ProjectReader import com.itsaky.androidide.tooling.impl.util.StopWatch @@ -43,7 +45,7 @@ internal class ToolingApiServerImpl : IToolingApiServer { private var project: IdeGradleProject? = null private val log = ILogger.newInstance(javaClass.simpleName) - override fun initialize(params: InitializeProjectMessage): CompletableFuture { + override fun initialize(params: InitializeProjectMessage): CompletableFuture { return CompletableFutures.computeAsync { val stopWatch = StopWatch("Connection to project") this.connector = GradleConnector.newConnector().forProjectDirectory(params.directory) @@ -58,7 +60,8 @@ internal class ToolingApiServerImpl : IToolingApiServer { val connection = this.connector!!.connect() stopWatch.lapFromLast("Project connection established") - this.project = ProjectReader.read(connection) + val issues: MutableMap = mutableMapOf() + this.project = ProjectReader.read(connection, issues) stopWatch.lapFromLast( "Project read ${if(this.project == null) "failed" else "successful"}") @@ -66,7 +69,7 @@ internal class ToolingApiServerImpl : IToolingApiServer { stopWatch.log() initialized = true - return@computeAsync this.project + return@computeAsync InitializeResult(project, issues) } } diff --git a/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/util/ProjectReader.java b/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/util/ProjectReader.java index 77595a521..f280d2f46 100644 --- a/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/util/ProjectReader.java +++ b/build-tools/tooling-api-impl/src/main/java/com/itsaky/androidide/tooling/impl/util/ProjectReader.java @@ -21,10 +21,12 @@ import static com.itsaky.androidide.utils.ILogger.newInstance; import com.android.builder.model.v2.models.AndroidProject; import com.android.builder.model.v2.models.ModelBuilderParameter; +import com.android.builder.model.v2.models.ProjectSyncIssues; import com.android.builder.model.v2.models.VariantDependencies; import com.itsaky.androidide.tooling.api.model.IdeAndroidModule; import com.itsaky.androidide.tooling.api.model.IdeGradleProject; import com.itsaky.androidide.tooling.api.model.IdeGradleTask; +import com.itsaky.androidide.tooling.api.model.internal.DefaultProjectSyncIssues; import com.itsaky.androidide.tooling.api.model.internal.DefaultVariant; import com.itsaky.androidide.tooling.api.model.util.AndroidModulePropertyCopier; import com.itsaky.androidide.tooling.api.model.util.ProjectBuilder; @@ -38,6 +40,8 @@ import org.gradle.tooling.UnknownModelException; import org.gradle.tooling.model.GradleProject; import org.gradle.tooling.model.GradleTask; +import java.util.Map; + /** * @author Akash Yadav */ @@ -45,17 +49,20 @@ public class ProjectReader { private static final ILogger LOG = newInstance("test"); - public static IdeGradleProject read(ProjectConnection connection) { + public static IdeGradleProject read( + ProjectConnection connection, Map outIssues) { final var gradleModel = connection.getModel(GradleProject.class); if (gradleModel == null) { return null; } - return buildProjectModel(connection, gradleModel); + return buildProjectModel(connection, gradleModel, outIssues); } private static IdeGradleProject buildProjectModel( - ProjectConnection connection, GradleProject gradleModel) { + ProjectConnection connection, + GradleProject gradleModel, + Map outIssues) { try { final var modelBuilder = connection.model(AndroidProject.class); addProperty(modelBuilder, AndroidProject.PROPERTY_BUILD_MODEL_ONLY, true); @@ -67,19 +74,17 @@ public class ProjectReader { "Project " + gradleModel.getPath() + " is not an Android project."); } - final var module = buildAndroidProjectModel(gradleModel, android); + final var module = buildAndroidProjectModel(gradleModel, android, outIssues); + readDependencies(connection, module); - try { - tryReadDependencies(connection, module); - } catch (Throwable err) { - LOG.error("Unable to fetch dependencies for project", module.getProjectPath(), err); - } + final var issues = readSyncIssues(connection); + outIssues.put(gradleModel.getPath(), issues); return module; } catch (Throwable error) { try { LOG.info("Building IdeGradleProject model for project:", gradleModel.getPath()); - return buildGradleProjectModel(gradleModel); + return buildGradleProjectModel(gradleModel, outIssues); } catch (Throwable e) { LOG.error("Unable to create model for project", e); return null; @@ -87,8 +92,16 @@ public class ProjectReader { } } - private static void tryReadDependencies( - ProjectConnection connection, IdeAndroidModule android) { + private static DefaultProjectSyncIssues readSyncIssues(ProjectConnection connection) { + final var builder = connection.model(ProjectSyncIssues.class); + addProperty(builder, AndroidProject.PROPERTY_BUILD_MODEL_ONLY, true); + addProperty(builder, AndroidProject.PROPERTY_INVOKED_FROM_IDE, true); + + final var issues = builder.get(); + return AndroidModulePropertyCopier.INSTANCE.copy(issues); + } + + private static void readDependencies(ProjectConnection connection, IdeAndroidModule android) { for (final var variant : android.getVariants()) { fillVariantDependencies(connection, android, variant); @@ -128,7 +141,9 @@ public class ProjectReader { } private static IdeAndroidModule buildAndroidProjectModel( - GradleProject gradle, AndroidProject android) { + GradleProject gradle, + AndroidProject android, + Map outIssues) { LOG.debug("Building IdeAndroidModule for project:", gradle.getPath()); final var builder = new ProjectBuilder(); final var copier = AndroidModulePropertyCopier.INSTANCE; @@ -153,13 +168,14 @@ public class ProjectReader { builder.setLintRuleJars(android.getLintRuleJars()); final var module = builder.buildAndroidModule(); - addSubprojects(gradle, module); + addSubprojects(gradle, module, outIssues); addTasks(gradle, module); return module; } - private static IdeGradleProject buildGradleProjectModel(GradleProject gradle) { + private static IdeGradleProject buildGradleProjectModel( + GradleProject gradle, Map outIssues) { final var builder = new ProjectBuilder(); builder.setName(gradle.getName()); builder.setDescription(gradle.getDescription()); @@ -169,7 +185,7 @@ public class ProjectReader { builder.setBuildScript(gradle.getBuildScript().getSourceFile()); final var project = builder.buildGradleProject(); - addSubprojects(gradle, project); + addSubprojects(gradle, project, outIssues); addTasks(gradle, project); return project; @@ -181,13 +197,16 @@ public class ProjectReader { } } - private static void addSubprojects(GradleProject gradle, IdeGradleProject project) { + private static void addSubprojects( + GradleProject gradle, + IdeGradleProject project, + Map outIssues) { for (final var subGradle : gradle.getChildren()) { final var connection = GradleConnector.newConnector() .forProjectDirectory(subGradle.getProjectDirectory()) .connect(); - final var sub = buildProjectModel(connection, subGradle); + final var sub = buildProjectModel(connection, subGradle, outIssues); if (sub != null) { project.getSubprojects().add(sub); } diff --git a/build-tools/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/ToolingApiImplTest.kt b/build-tools/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/ToolingApiImplTest.kt index 06848281e..0dc72ad77 100644 --- a/build-tools/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/ToolingApiImplTest.kt +++ b/build-tools/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/ToolingApiImplTest.kt @@ -27,13 +27,13 @@ import com.itsaky.androidide.tooling.api.model.IdeAndroidModule import com.itsaky.androidide.tooling.api.model.IdeGradleProject import com.itsaky.androidide.tooling.api.util.ToolingApiLauncher import com.itsaky.androidide.utils.ILogger +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 import java.io.BufferedReader import java.io.File import java.io.InputStream import java.io.InputStreamReader -import org.junit.Test -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 /** @author Akash Yadav */ @RunWith(JUnit4::class) @@ -46,8 +46,9 @@ class ToolingApiImplTest { val client = TestClient() val server = launchServer(client) - val project = server.initialize(InitializeProjectMessage(getTestProject())).get() - log.debug(project?.asJson()) + val result = server.initialize(InitializeProjectMessage(getTestProject())).get() + val project = result.project + log.debug(result.syncIssues.asJson()) assertThat(project).isNotNull() assertThat(project!!).isInstanceOf(IdeGradleProject::class.java) diff --git a/build-tools/tooling-api-impl/src/test/test-home/.androidide/init/model.jar b/build-tools/tooling-api-impl/src/test/test-home/.androidide/init/model.jar index fc00a3e6389d71cff649c8fc5eb16cbffb864308..14449de73da0dfa48f5de7305a4b4a9df7923fc7 100644 GIT binary patch delta 11156 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 diff --git a/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultProjectSyncIssues.kt b/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultProjectSyncIssues.kt new file mode 100644 index 000000000..c8cb69056 --- /dev/null +++ b/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultProjectSyncIssues.kt @@ -0,0 +1,24 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.tooling.api.model.internal + +import com.android.builder.model.v2.models.ProjectSyncIssues + +/** @author Akash Yadav */ +class DefaultProjectSyncIssues(override val syncIssues: Collection) : + ProjectSyncIssues diff --git a/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultSyncIssue.kt b/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultSyncIssue.kt new file mode 100644 index 000000000..cd847ea87 --- /dev/null +++ b/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/internal/DefaultSyncIssue.kt @@ -0,0 +1,29 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.tooling.api.model.internal + +import com.android.builder.model.v2.ide.SyncIssue + +/** @author Akash Yadav */ +class DefaultSyncIssue( + override val data: String?, + override val message: String, + override val multiLineMessage: List?, + override val severity: Int, + override val type: Int +) : SyncIssue diff --git a/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/util/AndroidModulePropertyCopier.kt b/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/util/AndroidModulePropertyCopier.kt index 1e852ef30..3a8ca3559 100644 --- a/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/util/AndroidModulePropertyCopier.kt +++ b/build-tools/tooling-api-model/src/main/java/com/itsaky/androidide/tooling/api/model/util/AndroidModulePropertyCopier.kt @@ -28,10 +28,12 @@ import com.android.builder.model.v2.ide.JavaArtifact import com.android.builder.model.v2.ide.JavaCompileOptions import com.android.builder.model.v2.ide.SourceProvider import com.android.builder.model.v2.ide.SourceSetContainer +import com.android.builder.model.v2.ide.SyncIssue import com.android.builder.model.v2.ide.TestInfo import com.android.builder.model.v2.ide.TestedTargetVariant import com.android.builder.model.v2.ide.Variant import com.android.builder.model.v2.ide.ViewBindingOptions +import com.android.builder.model.v2.models.ProjectSyncIssues import com.android.builder.model.v2.models.VariantDependencies import com.itsaky.androidide.tooling.api.model.IdeAndroidModule import com.itsaky.androidide.tooling.api.model.internal.DefaultAndroidArtifact @@ -43,15 +45,16 @@ import com.itsaky.androidide.tooling.api.model.internal.DefaultGraphItem import com.itsaky.androidide.tooling.api.model.internal.DefaultJavaArtifact import com.itsaky.androidide.tooling.api.model.internal.DefaultJavaCompileOptions import com.itsaky.androidide.tooling.api.model.internal.DefaultModelSyncFile +import com.itsaky.androidide.tooling.api.model.internal.DefaultProjectSyncIssues import com.itsaky.androidide.tooling.api.model.internal.DefaultSourceProvider import com.itsaky.androidide.tooling.api.model.internal.DefaultSourceSetContainer +import com.itsaky.androidide.tooling.api.model.internal.DefaultSyncIssue import com.itsaky.androidide.tooling.api.model.internal.DefaultTestInfo import com.itsaky.androidide.tooling.api.model.internal.DefaultTestedTargetVariant import com.itsaky.androidide.tooling.api.model.internal.DefaultVariant import com.itsaky.androidide.tooling.api.model.internal.DefaultVariantDependencies import com.itsaky.androidide.tooling.api.model.internal.DefaultViewBindingOptions import com.itsaky.androidide.utils.ILogger -import java.lang.reflect.Proxy /** * As the data is sent over streams, and the instances of properties specified in [IdeAndroidModule] @@ -294,7 +297,7 @@ object AndroidModulePropertyCopier { } } - private fun copy(artifact: ArtifactDependencies?): DefaultArtifactDependencies? = + fun copy(artifact: ArtifactDependencies?): DefaultArtifactDependencies? = DefaultArtifactDependencies().apply { if (artifact == null) { return null @@ -304,7 +307,7 @@ object AndroidModulePropertyCopier { this.runtimeDependencies = copy(artifact.runtimeDependencies) } - private fun copy(graphs: List?): List? { + fun copy(graphs: List?): List? { if (graphs == null) { return null } @@ -312,9 +315,21 @@ object AndroidModulePropertyCopier { return graphs.map { copy(it) } } - private fun copy(graph: GraphItem): DefaultGraphItem = + fun copy(graph: GraphItem): DefaultGraphItem = DefaultGraphItem().apply { this.dependencies = copy(graph.dependencies)!! this.requestedCoordinates = graph.requestedCoordinates } + + fun copy(issues: ProjectSyncIssues): DefaultProjectSyncIssues = + DefaultProjectSyncIssues(copy(issues.syncIssues)) + + @JvmName("copySyncIssue") + fun copy(syncIssues: Collection): Collection { + return syncIssues.map { copy(it) } + } + + fun copy(issue: SyncIssue) = + DefaultSyncIssue( + issue.data, issue.message, issue.multiLineMessage, issue.severity, issue.type) } diff --git a/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/IToolingApiServer.kt b/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/IToolingApiServer.kt index 4b16d89ba..52ebdaf4f 100644 --- a/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/IToolingApiServer.kt +++ b/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/IToolingApiServer.kt @@ -18,6 +18,7 @@ package com.itsaky.androidide.tooling.api import com.itsaky.androidide.tooling.api.messages.InitializeProjectMessage +import com.itsaky.androidide.tooling.api.messages.result.InitializeResult import com.itsaky.androidide.tooling.api.model.IdeGradleProject import java.util.concurrent.* import org.eclipse.lsp4j.jsonrpc.services.JsonRequest @@ -33,7 +34,7 @@ interface IToolingApiServer { /** Initialize the server with the project directory. */ @JsonRequest("initializeProject") - fun initialize(params: InitializeProjectMessage): CompletableFuture + fun initialize(params: InitializeProjectMessage): CompletableFuture /** Is the server initialized? */ @JsonRequest("isInitialized") fun isInitialized(): CompletableFuture diff --git a/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/InitializeResult.kt b/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/InitializeResult.kt new file mode 100644 index 000000000..e62c763c5 --- /dev/null +++ b/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/InitializeResult.kt @@ -0,0 +1,34 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.tooling.api.messages.result + +import com.itsaky.androidide.tooling.api.model.IdeGradleProject +import com.itsaky.androidide.tooling.api.model.internal.DefaultProjectSyncIssues + +/** + * Result received after an initialize project request. + * + * @param project The initialized project model. + * @param syncIssues The issues reported by the Android Gradle Plugin during the project sync. + * + * @author Akash Yadav + */ +data class InitializeResult( + val project: IdeGradleProject?, + val syncIssues: Map +) diff --git a/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/TaskExecutionResult.kt b/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/TaskExecutionResult.kt new file mode 100644 index 000000000..205841e80 --- /dev/null +++ b/build-tools/tooling-api/src/main/java/com/itsaky/androidide/tooling/api/messages/result/TaskExecutionResult.kt @@ -0,0 +1,30 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.tooling.api.messages.result + +import com.itsaky.androidide.tooling.api.model.IdeGradleTask + +/** + * Result for a task execution. + * + * @param tasks The tasks that were executed. + * @param result The result of the task execution. + * + * @author Akash Yadav + */ +data class TaskExecutionResult(val tasks: List, val result: Boolean) diff --git a/build-tools/tooling-api/src/test/java/com/itsaky/androidide/tooling/api/MessageTest.kt b/build-tools/tooling-api/src/test/java/com/itsaky/androidide/tooling/api/MessageTest.kt deleted file mode 100644 index 6958c26f4..000000000 --- a/build-tools/tooling-api/src/test/java/com/itsaky/androidide/tooling/api/MessageTest.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * This file is part of AndroidIDE. - * - * AndroidIDE is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * AndroidIDE is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AndroidIDE. If not, see . - */ - -package com.itsaky.androidide.tooling.api - -import com.google.common.truth.Truth.assertThat -import com.google.gson.JsonObject -import com.google.gson.JsonParser -import com.itsaky.androidide.utils.ILogger -import org.junit.Test -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 - -/** @author Akash Yadav */ -@RunWith(JUnit4::class) -class MessageTest { - - private val log = ILogger.newInstance(javaClass.simpleName) - - @Test - fun testStringToMessage() { - val message = - "{'name': 'My name', 'otherName': 'Other other name', 'className': 'com.itsaky.androidide.tooling.api.MessageTest\$MessageToString'}" - val obj = Message.fromJson(message) - assertThat(obj).isInstanceOf(MessageToString::class.java) - assertThat((obj as MessageToString).name).isEqualTo("My name") - assertThat(obj.otherName).isEqualTo("Other other name") - - log.debug("obj.name is ${obj.name}") - } - - @Test - fun testMessageToString() { - val message = MessageToString() - val string = message.asJsonString() - log.debug("MessageToString:$string") - assertThat(string) - .isEqualTo( - "{\"name\":\"Your name\",\"otherName\":\"Other name\",\"className\":\"com.itsaky.androidide.tooling.api.MessageTest\$MessageToString\"}") - assertThat((JsonParser.parseString(string) as JsonObject)["name"].asString) - .isEqualTo("Your name") - assertThat((JsonParser.parseString(string) as JsonObject)["otherName"].asString) - .isEqualTo("Other name") - } - - private open class Parent: Message() { - val otherName: String = "Other name" - } - - private class MessageToString : Parent() { - val name: String = "Your name" - } -}