Add guava as a dependency to AndroidBuilder.
Xavier Ducrohet [Thu, 30 Aug 2012 22:41:10 +0000 (15:41 -0700)]
Change-Id: I4b2029c52099eb449a74f048b5aae6122774e40b

build.gradle
builder/build.gradle
builder/src/main/java/com/android/builder/TemplateProcessor.java
builder/src/main/java/com/android/builder/VariantConfiguration.java

index cdd921f..5851637 100644 (file)
@@ -1,5 +1,9 @@
 allprojects {
     apply plugin: 'idea'
 
+    repositories {
+        mavenCentral()
+    }
+
     version = '0.1-SNAPSHOT'
 }
index 057f381..2731804 100644 (file)
@@ -3,14 +3,12 @@ apply plugin: 'eclipse'
 apply plugin: 'idea'
 apply plugin: 'maven'
 
-repositories {
-    mavenCentral()
-}
-
 dependencies {
     // this is temporary
     compile fileTree(dir: 'prebuilts', include: '*.jar')
 
+    compile 'com.google.guava:guava:11.0.2'
+
     testCompile 'junit:junit:3.8.1'
 }
 
index 11ec932..85a6068 100644 (file)
 
 package com.android.builder;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
+import com.google.common.base.Charsets;
+import com.google.common.io.CharStreams;
+import com.google.common.io.Files;
+
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -63,38 +64,17 @@ class TemplateProcessor {
      * @throws java.io.IOException
      */
     private String readEmbeddedTextFile(InputStream templateStream) throws IOException {
-        BufferedReader reader = new BufferedReader(new InputStreamReader(templateStream));
+        InputStreamReader reader = new InputStreamReader(templateStream, Charsets.UTF_8);
 
         try {
-            String line;
-            StringBuilder total = new StringBuilder(reader.readLine());
-            while ((line = reader.readLine()) != null) {
-                total.append('\n');
-                total.append(line);
-            }
-
-            return total.toString();
+            return CharStreams.toString(reader);
         } finally {
             reader.close();
         }
     }
 
     private void writeFile(File file, String content) throws IOException {
-        FileOutputStream fos = null;
-        try {
-            fos = new FileOutputStream(file);
-            InputStream source = new ByteArrayInputStream(content.getBytes("UTF-8"));
-
-            byte[] buffer = new byte[1024];
-            int count = 0;
-            while ((count = source.read(buffer)) != -1) {
-                fos.write(buffer, 0, count);
-            }
-        } finally {
-            if (fos != null) {
-                fos.close();
-            }
-        }
+        Files.write(content, file, Charsets.UTF_8);
     }
 
     /**
index 010b019..159bd18 100644 (file)
@@ -43,12 +43,14 @@ public class VariantConfiguration {
     private final List<SourceSet> mFlavorSourceSets = new ArrayList<SourceSet>();
 
     private final Type mType;
+    /** Optional tested config in case type is Type#TEST */
     private final VariantConfiguration mTestedConfig;
+    /** An optional output that is only valid if the type is Type#LIBRARY so that the test
+     * for the library can use the library as if it was a normal dependency. */
+    private AndroidDependency mOutput;
 
     private ProductFlavor mMergedFlavor;
 
-    private AndroidDependency mOutput;
-
     private List<JarDependency> mJars;
 
     /** List of direct library project dependencies. Each object defines its own dependencies. */