diff options
author | Xavier Ducrohet <xav@android.com> | 2012-06-15 17:16:49 -0700 |
---|---|---|
committer | android code review <noreply-gerritcodereview@google.com> | 2012-06-15 17:16:49 -0700 |
commit | 602722a9d282e80cd0ab3112415c65f479ef2366 (patch) | |
tree | 242200fafbc962403410150e454e1112f1a6de85 /sdkmanager | |
parent | 70a2564660313a798b461a50b07dc029a6117ac0 (diff) | |
parent | aaeb6a3d58ce5dccc91360bb429b5e37af650619 (diff) | |
download | sdk-602722a9d282e80cd0ab3112415c65f479ef2366.zip sdk-602722a9d282e80cd0ab3112415c65f479ef2366.tar.gz sdk-602722a9d282e80cd0ab3112415c65f479ef2366.tar.bz2 |
Merge changes Ife59a297,Id8db82e2
* changes:
Fix issue where libraries were not getting instrumented.
Fix emma for split projects.
Diffstat (limited to 'sdkmanager')
4 files changed, 80 insertions, 8 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/build/ApkBuilder.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/build/ApkBuilder.java index 765ec3c..a9b2968 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/build/ApkBuilder.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/build/ApkBuilder.java @@ -456,10 +456,14 @@ public final class ApkBuilder implements IArchiveBuilder { } } catch (ApkCreationException e) { - mBuilder.cleanUp(); + if (mBuilder != null) { + mBuilder.cleanUp(); + } throw e; } catch (Exception e) { - mBuilder.cleanUp(); + if (mBuilder != null) { + mBuilder.cleanUp(); + } throw new ApkCreationException(e); } } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/IPropertySource.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/IPropertySource.java index 360c755..92bd6b9 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/IPropertySource.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/IPropertySource.java @@ -22,4 +22,5 @@ package com.android.sdklib.internal.project; */ public interface IPropertySource { String getProperty(String name); + void debugPrint(); } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java index 9d578c4..e35a9e6 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java @@ -21,6 +21,7 @@ import static com.android.sdklib.SdkConstants.FD_TOOLS; import static com.android.sdklib.SdkConstants.FN_ANDROID_PROGUARD_FILE; import static com.android.sdklib.SdkConstants.FN_PROJECT_PROGUARD_FILE; +import com.android.annotations.NonNull; import com.android.io.FolderWrapper; import com.android.io.IAbstractFile; import com.android.io.IAbstractFolder; @@ -37,6 +38,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -111,6 +113,15 @@ public class ProjectProperties implements IPropertySource { private final Set<String> mKnownProps; private final Set<String> mRemovedProps; + /** + * Returns the PropertyTypes ordered the same way Ant order them. + */ + public static PropertyType[] getOrderedTypes() { + return new PropertyType[] { + PropertyType.LOCAL, PropertyType.ANT, PropertyType.PROJECT + }; + } + PropertyType(String filename, String header, String[] validProps, String[] removedProps) { mFilename = filename; mHeader = header; @@ -284,9 +295,11 @@ public class ProjectProperties implements IPropertySource { * <p/>The file is not created until {@link ProjectPropertiesWorkingCopy#save()} is called. * @param projectFolderOsPath the project folder. * @param type the type of property file to create + * + * @see #createEmpty(String, PropertyType) */ - public static ProjectPropertiesWorkingCopy create(String projectFolderOsPath, - PropertyType type) { + public static ProjectPropertiesWorkingCopy create(@NonNull String projectFolderOsPath, + @NonNull PropertyType type) { // create and return a ProjectProperties with an empty map. IAbstractFolder folder = new FolderWrapper(projectFolderOsPath); return create(folder, type); @@ -297,14 +310,47 @@ public class ProjectProperties implements IPropertySource { * <p/>The file is not created until {@link ProjectPropertiesWorkingCopy#save()} is called. * @param projectFolder the project folder. * @param type the type of property file to create + * + * @see #createEmpty(IAbstractFolder, PropertyType) */ - public static ProjectPropertiesWorkingCopy create(IAbstractFolder projectFolder, - PropertyType type) { + public static ProjectPropertiesWorkingCopy create(@NonNull IAbstractFolder projectFolder, + @NonNull PropertyType type) { // create and return a ProjectProperties with an empty map. return new ProjectPropertiesWorkingCopy(projectFolder, new HashMap<String, String>(), type); } /** + * Creates a new project properties object, with no properties. + * <p/>Nothing can be added to it, unless a {@link ProjectPropertiesWorkingCopy} is created + * first with {@link #makeWorkingCopy()}. + * @param projectFolderOsPath the project folder. + * @param type the type of property file to create + * + * @see #create(String, PropertyType) + */ + public static ProjectProperties createEmpty(@NonNull String projectFolderOsPath, + @NonNull PropertyType type) { + // create and return a ProjectProperties with an empty map. + IAbstractFolder folder = new FolderWrapper(projectFolderOsPath); + return createEmpty(folder, type); + } + + /** + * Creates a new project properties object, with no properties. + * <p/>Nothing can be added to it, unless a {@link ProjectPropertiesWorkingCopy} is created + * first with {@link #makeWorkingCopy()}. + * @param projectFolder the project folder. + * @param type the type of property file to create + * + * @see #create(IAbstractFolder, PropertyType) + */ + public static ProjectProperties createEmpty(@NonNull IAbstractFolder projectFolder, + @NonNull PropertyType type) { + // create and return a ProjectProperties with an empty map. + return new ProjectProperties(projectFolder, new HashMap<String, String>(), type); + } + + /** * Creates and returns a copy of the current properties as a * {@link ProjectPropertiesWorkingCopy} that can be modified and saved. * @return a new instance of {@link ProjectPropertiesWorkingCopy} @@ -436,8 +482,10 @@ public class ProjectProperties implements IPropertySource { * Use {@link #load(String, PropertyType)} or {@link #create(String, PropertyType)} * to instantiate. */ - protected ProjectProperties(IAbstractFolder projectFolder, Map<String, String> map, - PropertyType type) { + protected ProjectProperties( + @NonNull IAbstractFolder projectFolder, + @NonNull Map<String, String> map, + @NonNull PropertyType type) { mProjectFolder = projectFolder; mProperties = map; mType = type; @@ -450,4 +498,16 @@ public class ProjectProperties implements IPropertySource { protected static String escape(String value) { return value.replaceAll("\\\\", "\\\\\\\\"); } + + @Override + public void debugPrint() { + System.out.println("DEBUG PROJECTPROPERTIES: " + mProjectFolder); + System.out.println("type: " + mType); + for (Entry<String, String> entry : mProperties.entrySet()) { + System.out.println(entry.getKey() + " -> " + entry.getValue()); + } + System.out.println("<<< DEBUG PROJECTPROPERTIES"); + + } + } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java index 2d3f9b7..be23dbd 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java @@ -240,4 +240,11 @@ public class ProjectPropertiesWorkingCopy extends ProjectProperties { super(projectFolder, map, type); } + public ProjectProperties makeReadOnlyCopy() { + // copy the current properties in a new map + HashMap<String, String> propList = new HashMap<String, String>(); + propList.putAll(mProperties); + + return new ProjectProperties(mProjectFolder, propList, mType); + } } |