Skip to content

Commit

Permalink
Fix integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsonlee committed Dec 2, 2022
1 parent 23b4221 commit 3152a35
Show file tree
Hide file tree
Showing 13 changed files with 95 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import org.gradle.api.artifacts.ArtifactCollection
import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.ServiceLoader
Expand Down Expand Up @@ -96,10 +97,17 @@ interface AGPInterface {

val BaseVariant.variantScope: VariantScope

@Deprecated(
message = "Use BaseVariant.namespace instead",
replaceWith = ReplaceWith(expression = "variant.namespace"),
)
val BaseVariant.originalApplicationId: String

val BaseVariant.namespace: Provider<String>

val BaseVariant.hasDynamicFeature: Boolean

@Deprecated(message = "Deprecated, don't use it")
val BaseVariant.rawAndroidResources: FileCollection

val BaseVariant.javaCompilerTaskProvider: TaskProvider<out Task>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.android.builder.core.VariantType
import com.android.builder.model.AndroidProject
import com.android.builder.model.ApiVersion
import com.android.sdklib.BuildToolInfo
import com.didiglobal.booster.android.gradle.v3_3.V33.originalApplicationId
import com.didiglobal.booster.gradle.AGPInterface
import org.gradle.api.Project
import org.gradle.api.Task
Expand All @@ -29,6 +30,7 @@ import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -105,6 +107,11 @@ internal object V33 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = variantData.variantConfiguration.originalApplicationId

override val BaseVariant.namespace: Provider<String>
get() = project.provider {
variantData.variantConfiguration.originalApplicationId
}

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -109,6 +110,11 @@ internal object V34 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = variantData.variantConfiguration.originalApplicationId

override val BaseVariant.namespace: Provider<String>
get() = project.provider {
variantData.variantConfiguration.originalApplicationId
}

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -109,6 +110,11 @@ internal object V35 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = variantData.variantConfiguration.originalApplicationId

override val BaseVariant.namespace: Provider<String>
get() = project.provider {
variantData.variantConfiguration.originalApplicationId
}

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -118,6 +119,11 @@ object V36 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = variantData.variantConfiguration.originalApplicationId

override val BaseVariant.namespace: Provider<String>
get() = project.provider {
variantData.variantConfiguration.originalApplicationId
}

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -136,6 +137,11 @@ internal object V40 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = variantData.variantDslInfo.originalApplicationId

override val BaseVariant.namespace: Provider<String>
get() = project.provider {
variantData.variantDslInfo.originalApplicationId
}

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -153,6 +154,9 @@ internal object V41 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = componentProperties.variantDslInfo.packageName.get()

override val BaseVariant.namespace: Provider<String>
get() = componentProperties.variantDslInfo.packageName

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -154,6 +155,9 @@ internal object V42 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = component.variantDslInfo.packageName.get()

override val BaseVariant.namespace: Provider<String>
get() = component.variantDslInfo.packageName

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -162,6 +163,9 @@ internal object V70 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = component.variantDslInfo.namespace.get()

override val BaseVariant.namespace: Provider<String>
get() = component.variantDslInfo.namespace

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -158,6 +159,9 @@ internal object V71 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = component.variantDslInfo.namespace.get()

override val BaseVariant.namespace: Provider<String>
get() = component.variantDslInfo.namespace

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -168,6 +169,9 @@ internal object V72 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = component.variantDslInfo.namespace.get()

override val BaseVariant.namespace: Provider<String>
get() = component.variantDslInfo.namespace

override val BaseVariant.hasDynamicFeature: Boolean
get() = globalScope.hasDynamicFeatures

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,9 @@ class VariantScopeTestUnit : VariantTestCase() {

class OriginalApplicationIdTestUnit : VariantTestCase() {
override fun apply(variant: BaseVariant) {
assertNotNull(AGP.run { variant.originalApplicationId })
AGP.run { variant.assembleTask }.doFirst {
assertNotNull(AGP.run { variant.originalApplicationId })
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,19 @@ import com.android.build.gradle.internal.variant.BaseVariantData
import com.android.builder.core.DefaultApiVersion
import com.android.builder.model.ApiVersion
import com.android.sdklib.BuildToolInfo
import com.didiglobal.booster.android.gradle.v7_3.V73.globalScope
import com.didiglobal.booster.android.gradle.v7_3.V73.project
import com.didiglobal.booster.gradle.AGPInterface
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.artifacts.ArtifactCollection
import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedArtifactResult
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileSystemLocation
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import java.io.File
import java.util.TreeMap
Expand Down Expand Up @@ -89,16 +93,6 @@ internal object V73 : AGPInterface {
}
}

private inline fun <T, R : Any> Sequence<T>.firstOfOrNull(transform: (T) -> R?): R? {
for (element in this) {
val result = transform(element)
if (result != null) {
return result
}
}
return null
}

@Suppress("UnstableApiUsage")
private val BaseVariant.artifacts: ArtifactsImpl
get() = component.artifacts
Expand Down Expand Up @@ -164,13 +158,39 @@ internal object V73 : AGPInterface {
override val BaseVariant.originalApplicationId: String
get() = component.namespace.get()

override val BaseVariant.namespace: Provider<String>
get() = component.namespace

override val BaseVariant.hasDynamicFeature: Boolean
get() = component.global.hasDynamicFeatures

override val BaseVariant.rawAndroidResources: FileCollection
get() = ComponentImpl::class.java.getDeclaredField("allRawAndroidResources").apply {
isAccessible = true
}.get(component) as FileCollection
get() {
val allRes: ConfigurableFileCollection = component.services.fileCollection()

allRes.from(component.variantDependencies.getArtifactCollection(
AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH,
ArtifactScope.ALL,
AndroidArtifacts.ArtifactType.ANDROID_RES
).artifactFiles)

allRes.from(component.services.fileCollection(variantData.extraGeneratedResFolders)
.builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy)))

component.taskContainer.generateApkDataTask?.let {
allRes.from(artifacts.get(InternalArtifactType.MICRO_APK_RES))
}

allRes.from(component.sources.res.getVariantSources().map { allRes ->
allRes.map { directoryEntries ->
directoryEntries.directoryEntries.map {
it.asFiles(component.services::directoryProperty)
}
}
})

return allRes
}

override fun BaseVariant.getArtifactCollection(
configType: AndroidArtifacts.ConsumedConfigType,
Expand Down

0 comments on commit 3152a35

Please sign in to comment.