aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builder-model/src/main/java/com/android/builder/model/AndroidLibrary.java6
-rw-r--r--builder/src/main/java/com/android/builder/dependency/LibraryBundle.java22
-rw-r--r--gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java6
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy2
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy1
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/dependency/LibraryDependencyImpl.java14
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/model/AndroidLibraryImpl.java10
7 files changed, 44 insertions, 17 deletions
diff --git a/builder-model/src/main/java/com/android/builder/model/AndroidLibrary.java b/builder-model/src/main/java/com/android/builder/model/AndroidLibrary.java
index df19b16..dfd8d33 100644
--- a/builder-model/src/main/java/com/android/builder/model/AndroidLibrary.java
+++ b/builder-model/src/main/java/com/android/builder/model/AndroidLibrary.java
@@ -27,6 +27,12 @@ import java.util.List;
public interface AndroidLibrary {
/**
+ * Returns the location of the library aar bundle.
+ */
+ @NonNull
+ File getBundle();
+
+ /**
* Returns the location of the unzipped archive.
*/
@NonNull
diff --git a/builder/src/main/java/com/android/builder/dependency/LibraryBundle.java b/builder/src/main/java/com/android/builder/dependency/LibraryBundle.java
index aff858b..a6083ff 100644
--- a/builder/src/main/java/com/android/builder/dependency/LibraryBundle.java
+++ b/builder/src/main/java/com/android/builder/dependency/LibraryBundle.java
@@ -34,20 +34,26 @@ public abstract class LibraryBundle implements LibraryDependency {
public static final String FN_PROGUARD_TXT = "proguard.txt";
private final String mName;
+ private final File mBundle;
private final File mBundleFolder;
/**
* Creates the bundle dependency with an optional name
- * @param bundleFolder the folder containing the library
+ *
+ * @param bundle the library's aar bundle file
+ * @param bundleFolder the folder containing the unarchived library content
* @param name an optional name
*/
- protected LibraryBundle(@NonNull File bundleFolder, @Nullable String name) {
- mName = name;
+ protected LibraryBundle(@NonNull File bundle,
+ @NonNull File bundleFolder,
+ @Nullable String name) {
+ mBundle = bundle;
mBundleFolder = bundleFolder;
+ mName = name;
}
- protected LibraryBundle(@NonNull File bundleFolder) {
- this(bundleFolder, null);
+ protected LibraryBundle(@NonNull File bundle, @NonNull File bundleFolder) {
+ this(bundle, bundleFolder, null);
}
public String getName() {
@@ -73,6 +79,12 @@ public abstract class LibraryBundle implements LibraryDependency {
@Override
@NonNull
+ public File getBundle() {
+ return mBundle;
+ }
+
+ @Override
+ @NonNull
public File getFolder() {
return mBundleFolder;
}
diff --git a/gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java b/gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java
index 0d0c779..b747d0e 100644
--- a/gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java
+++ b/gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java
@@ -165,6 +165,12 @@ public class AndroidProjectTest extends TestCase {
assertNotNull(dependencies);
assertEquals(2, dependencies.getJars().size());
assertEquals(1, dependencies.getLibraries().size());
+
+ AndroidLibrary lib = dependencies.getLibraries().get(0);
+ assertNotNull(lib);
+ assertNotNull(lib.getBundle());
+ assertNotNull(lib.getFolder());
+
assertTrue(dependencies.getProjectDependenciesPath().isEmpty());
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
index 584e510..40e46f2 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
@@ -1335,7 +1335,7 @@ public abstract class BasePlugin {
def explodedDir = project.file(
"$project.buildDir/exploded-bundles/${bundleName}.aar")
LibraryDependencyImpl adep = new LibraryDependencyImpl(
- explodedDir, nestedBundles, artifact.file,
+ artifact.file, explodedDir, nestedBundles,
id.group + ":" + id.name + ":" + id.version)
bundlesForThisModule << adep
reverseMap.put(adep, configDependencies)
diff --git a/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy
index 41f4bb8..ff6d47c 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy
@@ -292,6 +292,7 @@ public class LibraryPlugin extends BasePlugin implements Plugin<Project> {
// configure the variant to be testable.
variantConfig.output = new LibraryBundle(
+ bundle.archivePath,
project.file("$project.buildDir/$DIR_BUNDLES/${variantData.dirName}"),
variantData.getName()) {
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dependency/LibraryDependencyImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/dependency/LibraryDependencyImpl.java
index 134ceea..75d4112 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/dependency/LibraryDependencyImpl.java
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dependency/LibraryDependencyImpl.java
@@ -29,21 +29,13 @@ public class LibraryDependencyImpl extends LibraryBundle {
@NonNull
private final List<LibraryDependency> dependencies;
- @NonNull
- private final File bundle;
- public LibraryDependencyImpl(@NonNull File explodedBundle,
+ public LibraryDependencyImpl(@NonNull File bundle,
+ @NonNull File explodedBundle,
@NonNull List<LibraryDependency> dependencies,
- @NonNull File bundle,
@Nullable String name) {
- super(explodedBundle, name);
+ super(bundle, explodedBundle, name);
this.dependencies = dependencies;
- this.bundle = bundle;
- }
-
- @NonNull
- public File getBundle() {
- return bundle;
}
@NonNull
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/AndroidLibraryImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/model/AndroidLibraryImpl.java
index e56df5c..0e52551 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/model/AndroidLibraryImpl.java
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/AndroidLibraryImpl.java
@@ -28,6 +28,8 @@ public class AndroidLibraryImpl implements AndroidLibrary, Serializable {
private static final long serialVersionUID = 1L;
@NonNull
+ private final File bundle;
+ @NonNull
private final File folder;
@NonNull
private final File jarFile;
@@ -53,6 +55,7 @@ public class AndroidLibraryImpl implements AndroidLibrary, Serializable {
AndroidLibraryImpl(@NonNull LibraryDependency libraryDependency,
@NonNull List<AndroidLibraryImpl> dependencies) {
this.dependencies = dependencies;
+ bundle = libraryDependency.getBundle();
folder = libraryDependency.getFolder();
jarFile = libraryDependency.getJarFile();
localJars = libraryDependency.getLocalJars();
@@ -65,6 +68,13 @@ public class AndroidLibraryImpl implements AndroidLibrary, Serializable {
lintJar = libraryDependency.getLintJar();
}
+
+ @NonNull
+ @Override
+ public File getBundle() {
+ return bundle;
+ }
+
@NonNull
@Override
public File getFolder() {