OSDN Git Service

Merge change 24650 into eclair
authorAndroid (Google) Code Review <android-gerrit@google.com>
Mon, 14 Sep 2009 22:48:55 +0000 (18:48 -0400)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Mon, 14 Sep 2009 22:48:55 +0000 (18:48 -0400)
* changes:
  Add <jarfile> tag to ApkBuilder ant task

tools/anttasks/src/com/android/ant/ApkBuilderTask.java
tools/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java

index 18a0191..a7ee02b 100644 (file)
@@ -68,7 +68,8 @@ public class ApkBuilderTask extends Task {
     private final ArrayList<Value> mZipList = new ArrayList<Value>();
     private final ArrayList<Value> mFileList = new ArrayList<Value>();
     private final ArrayList<Value> mSourceList = new ArrayList<Value>();
-    private final ArrayList<Value> mJarList = new ArrayList<Value>();
+    private final ArrayList<Value> mJarfolderList = new ArrayList<Value>();
+    private final ArrayList<Value> mJarfileList = new ArrayList<Value>();
     private final ArrayList<Value> mNativeList = new ArrayList<Value>();
 
     private final ArrayList<FileInputStream> mZipArchives = new ArrayList<FileInputStream>();
@@ -141,7 +142,16 @@ public class ApkBuilderTask extends Task {
      */
     public Object createJarfolder() {
         Value file = new Value();
-        mJarList.add(file);
+        mJarfolderList.add(file);
+        return file;
+    }
+
+    /**
+     * Returns an object representing a nested <var>jarfile</var> element.
+     */
+    public Object createJarfile() {
+        Value file = new Value();
+        mJarfileList.add(file);
         return file;
     }
 
@@ -183,10 +193,15 @@ public class ApkBuilderTask extends Task {
             }
 
             // now go through the list of jar folders.
-            for (Value v : mJarList) {
+            for (Value v : mJarfolderList) {
                 ApkBuilderImpl.processJarFolder(v.mPath, mResourcesJars);
             }
 
+            // now go through the list of jar files.
+            for (Value v : mJarfileList) {
+                ApkBuilderImpl.processJarFile(v.mPath, mResourcesJars);
+            }
+
             // now the native lib folder.
             for (Value v : mNativeList) {
                 String parameter = v.mPath;
index 780af75..6a8213e 100644 (file)
@@ -249,15 +249,18 @@ public final class ApkBuilderImpl {
 
             for (String file : files) {
                 String path = f.getAbsolutePath() + File.separator + file;
-                FileInputStream input = new FileInputStream(path);
-                resourcesJars.add(input);
+                processJarFile(parameter, resourcesJars);
             }
         } else {
-            FileInputStream input = new FileInputStream(parameter);
-            resourcesJars.add(input);
+            processJarFile(parameter, resourcesJars);
         }
     }
 
+    public static void processJarFile(String jarfilePath, Collection<FileInputStream> resourcesJars)
+            throws FileNotFoundException {
+        FileInputStream input = new FileInputStream(jarfilePath);
+        resourcesJars.add(input);
+    }
 
     /**
      * Processes a {@link File} that could be a {@link ApkFile}, or a folder containing