aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2013-07-01 13:57:56 -0700
committerXavier Ducrohet <xav@android.com>2013-07-01 14:18:41 -0700
commit4fae04bf8b99ace66b8970f6fa344e884e9ae4fe (patch)
tree2276e8dc719a04d722137c7e66d0b8f0a10fa409
parentdaca5425d02fe1706f060d76865e84ffcae80c42 (diff)
downloadbuild-4fae04bf8b99ace66b8970f6fa344e884e9ae4fe.tar.gz
Add the original bundle to the library model.
This gives access both to the aar file and the exploded folder (which may not be exploded yet when the model is queried). Change-Id: Ieeba1ab19a8746448b047c73bcd1dcb23b47ab11
-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() {