@@ -63,8 +63,8 @@ class VendorPlugin : Plugin<Project> {
63
63
android.registerTransform(VendorTransform (
64
64
vendor,
65
65
JarJarTransformer (
66
- parentPackageProvider = { variantName ->
67
- android.libraryVariants.find { it.name == variantName }!! .applicationId
66
+ parentPackageProvider = {
67
+ android.libraryVariants.find { it.name == " release " }!! .applicationId
68
68
},
69
69
jarJarProvider = { jarJar.resolve() },
70
70
project = project,
@@ -78,13 +78,13 @@ interface JarTransformer {
78
78
}
79
79
80
80
class JarJarTransformer (
81
- private val parentPackageProvider : (String ) -> String ,
81
+ private val parentPackageProvider : () -> String ,
82
82
private val jarJarProvider : () -> Collection <File >,
83
83
private val project : Project ,
84
84
private val logger : Logger
85
85
) : JarTransformer {
86
86
override fun transform (variantName : String , input : File , output : File , ownPackageNames : Set <String >, externalPackageNames : Set <String >) {
87
- val parentPackage = parentPackageProvider(variantName )
87
+ val parentPackage = parentPackageProvider()
88
88
val rulesFile = File .createTempFile(" $parentPackage -$variantName " , " .jarjar" )
89
89
rulesFile.printWriter().use {
90
90
for (packageName in ownPackageNames) {
@@ -162,22 +162,28 @@ class VendorTransform(
162
162
private fun process (workDir : File , transformInvocation : TransformInvocation ): File {
163
163
transformInvocation.context.variantName
164
164
val unzippedDir = File (workDir, " unzipped" )
165
+ val unzippedExcludedDir = File (workDir, " unzipped-excluded" )
165
166
unzippedDir.mkdirs()
167
+ unzippedExcludedDir.mkdirs()
168
+
169
+ val externalCodeDir = if (
170
+ transformInvocation.context.variantName.toLowerCase().contains(" test" ))
171
+ unzippedExcludedDir else unzippedDir
166
172
167
173
for (input in transformInvocation.inputs) {
168
174
for (directoryInput in input.directoryInputs) {
169
175
directoryInput.file.copyRecursively(unzippedDir)
170
176
}
171
177
}
172
- val foo : List < String > = mutableListOf ( " Hello " )
178
+
173
179
val ownPackageNames = inferPackages(unzippedDir)
174
180
175
181
for (jar in configuration.resolve()) {
176
- unzipJar(jar, unzippedDir )
182
+ unzipJar(jar, externalCodeDir )
177
183
}
178
- val externalPackageNames = inferPackages(unzippedDir ) subtract ownPackageNames
179
- val java = File (unzippedDir , " java" )
180
- val javax = File (unzippedDir , " javax" )
184
+ val externalPackageNames = inferPackages(externalCodeDir ) subtract ownPackageNames
185
+ val java = File (externalCodeDir , " java" )
186
+ val javax = File (externalCodeDir , " javax" )
181
187
if (java.exists() || javax.exists()) {
182
188
// JarJar unconditionally skips any classes whose package name starts with "java" or "javax".
183
189
throw GradleException (" Vendoring java or javax packages is not supported. " +
0 commit comments