Skip to content

Commit 9914349

Browse files
runningcodeclaude
andcommitted
refactor(snapshot): Remove namespace and package filtering
Emerge-android doesn't have package filtering — the scope is controlled entirely by what MergeClasses puts into the directory. Remove scanPackages, namespace, packageTrees, matchesPackage, and scannedPackages to match that approach. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fed6ad5 commit 9914349

5 files changed

Lines changed: 34 additions & 163 deletions

File tree

plugin-build/src/main/kotlin/io/sentry/android/gradle/snapshot/metadata/ExportPreviewMetadataTask.kt

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package io.sentry.android.gradle.snapshot.metadata
22

3-
import com.android.build.gradle.BaseExtension
43
import groovy.json.JsonOutput
54
import org.gradle.api.DefaultTask
65
import org.gradle.api.Project
76
import org.gradle.api.file.DirectoryProperty
87
import org.gradle.api.file.RegularFileProperty
9-
import org.gradle.api.provider.ListProperty
108
import org.gradle.api.provider.Property
119
import org.gradle.api.tasks.CacheableTask
1210
import org.gradle.api.tasks.Input
@@ -24,10 +22,6 @@ abstract class ExportPreviewMetadataTask : DefaultTask() {
2422
description = "Exports Compose @Preview metadata to a JSON file using ASM bytecode scanning"
2523
}
2624

27-
@get:Input abstract val scanPackages: ListProperty<String>
28-
29-
@get:Input abstract val namespace: Property<String>
30-
3125
@get:Input abstract val includePrivatePreviews: Property<Boolean>
3226

3327
@get:InputDirectory
@@ -38,8 +32,6 @@ abstract class ExportPreviewMetadataTask : DefaultTask() {
3832

3933
@TaskAction
4034
fun export() {
41-
val packages = scanPackages.get().ifEmpty { listOf(namespace.get()) }
42-
val packagePaths = packages.map { it.replace('.', '/') }
4335
val scanner = PreviewMethodScanner(includePrivatePreviews.get())
4436
val rootDir = mergedClassesDir.get().asFile
4537

@@ -54,19 +46,17 @@ abstract class ExportPreviewMetadataTask : DefaultTask() {
5446
.forEach { file -> scanner.findCustomAnnotations(file.readBytes(), customAnnotations) }
5547
}
5648

57-
// Second pass: find preview methods (filtered to scanned packages)
49+
// Second pass: find preview methods
5850
val previews = mutableListOf<PreviewMetadata>()
5951
rootDir
6052
.walk()
6153
.filter { it.isFile && it.name.endsWith(".class") }
6254
.forEach { file ->
6355
val relativePath = file.relativeTo(rootDir).path
64-
if (matchesPackage(relativePath, packagePaths)) {
65-
scanClassFile(file.readBytes(), relativePath, scanner, customAnnotations, previews)
66-
}
56+
scanClassFile(file.readBytes(), relativePath, scanner, customAnnotations, previews)
6757
}
6858

69-
val export = PreviewMetadataExport(scannedPackages = packages, previews = previews)
59+
val export = PreviewMetadataExport(previews = previews)
7060
val json = JsonOutput.prettyPrint(JsonOutput.toJson(export.toMap()))
7161

7262
val outFile = outputFile.get().asFile
@@ -76,10 +66,6 @@ abstract class ExportPreviewMetadataTask : DefaultTask() {
7666
logger.lifecycle("Exported ${previews.size} preview(s) to ${outFile.absolutePath}")
7767
}
7868

79-
private fun matchesPackage(classPath: String, packagePaths: List<String>): Boolean {
80-
return packagePaths.any { classPath.startsWith("$it/") }
81-
}
82-
8369
private fun scanClassFile(
8470
bytes: ByteArray,
8571
relativePath: String,
@@ -149,15 +135,12 @@ abstract class ExportPreviewMetadataTask : DefaultTask() {
149135
fun register(
150136
project: Project,
151137
extension: SentrySnapshotMetadataExtension,
152-
android: BaseExtension,
153138
mergeTask: TaskProvider<MergeClassesTask>,
154139
): TaskProvider<ExportPreviewMetadataTask> {
155140
return project.tasks.register(
156141
"exportPreviewMetadata",
157142
ExportPreviewMetadataTask::class.java,
158143
) { task ->
159-
task.scanPackages.set(extension.packageTrees)
160-
task.namespace.set(project.provider { android.namespace ?: "" })
161144
task.includePrivatePreviews.set(extension.includePrivatePreviews)
162145
task.mergedClassesDir.set(mergeTask.flatMap { it.outputDir })
163146

plugin-build/src/main/kotlin/io/sentry/android/gradle/snapshot/metadata/PreviewMetadata.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package io.sentry.android.gradle.snapshot.metadata
22

3-
data class PreviewMetadataExport(
4-
val scannedPackages: List<String>,
5-
val previews: List<PreviewMetadata>,
6-
) {
7-
fun toMap(): Map<String, Any> =
8-
mapOf("scannedPackages" to scannedPackages, "previews" to previews.map { it.toMap() })
3+
data class PreviewMetadataExport(val previews: List<PreviewMetadata>) {
4+
fun toMap(): Map<String, Any> = mapOf("previews" to previews.map { it.toMap() })
95
}
106

117
data class PreviewMetadata(

plugin-build/src/main/kotlin/io/sentry/android/gradle/snapshot/metadata/SentrySnapshotMetadataExtension.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.sentry.android.gradle.snapshot.metadata
22

33
import org.gradle.api.model.ObjectFactory
4-
import org.gradle.api.provider.ListProperty
54
import org.gradle.api.provider.Property
65
import org.jetbrains.annotations.ApiStatus
76

@@ -14,7 +13,4 @@ abstract class SentrySnapshotMetadataExtension(objects: ObjectFactory) {
1413

1514
val includePrivatePreviews: Property<Boolean> =
1615
objects.property(Boolean::class.java).convention(false)
17-
18-
val packageTrees: ListProperty<String> =
19-
objects.listProperty(String::class.java).convention(emptyList())
2016
}

plugin-build/src/main/kotlin/io/sentry/android/gradle/snapshot/metadata/SentrySnapshotMetadataPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class SentrySnapshotMetadataPlugin : Plugin<Project> {
1717
fun wireWithAndroid() {
1818
val android = project.extensions.getByType(BaseExtension::class.java)
1919
val mergeTask = MergeClassesTask.register(project, android)
20-
ExportPreviewMetadataTask.register(project, extension, android, mergeTask)
20+
ExportPreviewMetadataTask.register(project, extension, mergeTask)
2121
}
2222

2323
project.pluginManager.withPlugin("com.android.library") { wireWithAndroid() }

0 commit comments

Comments
 (0)