aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-06-15 17:16:49 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-06-15 17:16:49 -0700
commit602722a9d282e80cd0ab3112415c65f479ef2366 (patch)
tree242200fafbc962403410150e454e1112f1a6de85 /sdkmanager
parent70a2564660313a798b461a50b07dc029a6117ac0 (diff)
parentaaeb6a3d58ce5dccc91360bb429b5e37af650619 (diff)
downloadsdk-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')
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/build/ApkBuilder.java8
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/IPropertySource.java1
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java72
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java7
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);
+ }
}