Remove normalizePathSeparators from com.facebook.buck.android.
Summary:
Removed all instances of normalizePathSeparators from classes in
com.facebook.buck.android src and test packages.
Test Plan:
Ran JUnit tests for AndroidResourceRuleTest, FilterResourcesStepTest,
and PrebuiltNativeLibraryRuleTest. Ran ant clean test.
diff --git a/src/com/facebook/buck/android/AndroidBinaryRule.java b/src/com/facebook/buck/android/AndroidBinaryRule.java
index 052eafa..9291d75 100644
--- a/src/com/facebook/buck/android/AndroidBinaryRule.java
+++ b/src/com/facebook/buck/android/AndroidBinaryRule.java
@@ -60,7 +60,6 @@
import com.facebook.buck.util.DirectoryTraverser;
import com.facebook.buck.util.HumanReadableException;
import com.facebook.buck.util.MorePaths;
-import com.facebook.buck.util.Paths;
import com.facebook.buck.zip.RepackZipEntriesStep;
import com.facebook.buck.zip.ZipDirectoryWithMaxDeflateStep;
import com.google.common.annotations.VisibleForTesting;
@@ -718,11 +717,12 @@
* @return path to directory (will not include trailing slash)
*/
@VisibleForTesting
- String getPathForProGuardDirectory() {
- return String.format("%s/%s.proguard/%s",
+ Path getPathForProGuardDirectory() {
+ return MorePaths.newPathInstance(
+ String.format("%s/%s.proguard/%s",
BuckConstant.GEN_DIR,
getBuildTarget().getBasePathWithSlash(),
- getBuildTarget().getShortName());
+ getBuildTarget().getShortName()));
}
@VisibleForTesting
@@ -790,15 +790,14 @@
}
@VisibleForTesting
- String getProguardOutputFromInputClasspath(String classpathEntry) {
+ Path getProguardOutputFromInputClasspath(String classpathEntry) {
// Hehe, this is so ridiculously fragile.
Preconditions.checkArgument(classpathEntry.charAt(0) != '/',
"Classpath entries should be relative rather than absolute paths: %s",
classpathEntry);
String obfuscatedName = Files.getNameWithoutExtension(classpathEntry) + "-obfuscated.jar";
- String dirName = Paths.normalizePathSeparator(new File(classpathEntry).getParent());
- String outputJar = getPathForProGuardDirectory() + "/" + dirName + "/" +
- obfuscatedName;
+ Path dirName = MorePaths.newPathInstance(new File(classpathEntry).getParent());
+ Path outputJar = getPathForProGuardDirectory().resolve(dirName).resolve(obfuscatedName);
return outputJar;
}
@@ -824,7 +823,7 @@
}
// Clean out the directory for generated ProGuard files.
- String proguardDirectory = getPathForProGuardDirectory();
+ Path proguardDirectory = getPathForProGuardDirectory();
commands.add(new MakeCleanDirectoryStep(proguardDirectory));
// Generate a file of ProGuard config options using aapt.
@@ -850,18 +849,19 @@
.toMap(new Function<String, String>() {
@Override
public String apply(String classpathEntry) {
- return getProguardOutputFromInputClasspath(classpathEntry);
+ return getProguardOutputFromInputClasspath(classpathEntry).toString();
}
});
// Run ProGuard on the classpath entries.
+ // TODO: ProGuardObfuscateStep's final argument should be a Path
ProGuardObfuscateStep obfuscateCommand = new ProGuardObfuscateStep(
generatedProGuardConfig,
proguardConfigsBuilder.build(),
useAndroidProguardConfigWithOptimizations,
inputOutputEntries,
additionalLibraryJarsForProguardBuilder.build(),
- proguardDirectory);
+ proguardDirectory.toString());
commands.add(obfuscateCommand);
// Apply the transformed inputs to the classpath (this will modify deps.classpathEntriesToDex
diff --git a/src/com/facebook/buck/android/FilterResourcesStep.java b/src/com/facebook/buck/android/FilterResourcesStep.java
index 181cde0..3568a85 100644
--- a/src/com/facebook/buck/android/FilterResourcesStep.java
+++ b/src/com/facebook/buck/android/FilterResourcesStep.java
@@ -24,7 +24,7 @@
import com.facebook.buck.util.FilteredDirectoryCopier;
import com.facebook.buck.util.Filters;
import com.facebook.buck.util.HumanReadableException;
-import com.facebook.buck.util.Paths;
+import com.facebook.buck.util.MorePaths;
import com.facebook.buck.util.ProjectFilesystem;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
@@ -234,7 +234,7 @@
public void visit(File file, String relativePath) {
if (DRAWABLE_PATH_PATTERN.matcher(relativePath).matches()) {
// The path is normalized so that the value can be matched against patterns.
- drawableBuilder.add(Paths.normalizePathSeparator(file.getPath()));
+ drawableBuilder.add(MorePaths.newPathInstance(file).toString());
}
}
}.traverse();
diff --git a/test/com/facebook/buck/android/AndroidBinaryRuleTest.java b/test/com/facebook/buck/android/AndroidBinaryRuleTest.java
index 131c330..70ccdb7 100644
--- a/test/com/facebook/buck/android/AndroidBinaryRuleTest.java
+++ b/test/com/facebook/buck/android/AndroidBinaryRuleTest.java
@@ -485,11 +485,11 @@
.setKeystore(addKeystoreRule(ruleResolver))
.setTarget("Google Inc.:Google APIs:16"));
- String proguardDir = rule.getProguardOutputFromInputClasspath(
+ Path proguardDir = rule.getProguardOutputFromInputClasspath(
BIN_DIR + "/first-party/orca/lib-base/lib__lib-base__classes");
assertEquals(GEN_DIR + "/.proguard/fbandroid_with_dash_debug_fbsign/" +
BIN_DIR + "/first-party/orca/lib-base/lib__lib-base__classes-obfuscated.jar",
- proguardDir);
+ proguardDir.toString());
}
private void assertCommandsInOrder(List<Step> steps, List<Class<?>> expectedCommands) {
diff --git a/test/com/facebook/buck/android/AndroidResourceRuleTest.java b/test/com/facebook/buck/android/AndroidResourceRuleTest.java
index b351e8f..7f4204e 100644
--- a/test/com/facebook/buck/android/AndroidResourceRuleTest.java
+++ b/test/com/facebook/buck/android/AndroidResourceRuleTest.java
@@ -32,7 +32,7 @@
import com.facebook.buck.testutil.RuleMap;
import com.facebook.buck.util.DirectoryTraversal;
import com.facebook.buck.util.DirectoryTraverser;
-import com.facebook.buck.util.Paths;
+import com.facebook.buck.util.MorePaths;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSortedSet;
@@ -51,7 +51,7 @@
DirectoryTraverser traverser = new DirectoryTraverser() {
@Override
public void traverse(DirectoryTraversal traversal) throws IOException {
- String rootPath = Paths.normalizePathSeparator(traversal.getRoot().getPath());
+ String rootPath = MorePaths.newPathInstance(traversal.getRoot()).toString();
if ("java/src/com/facebook/base/res".equals(rootPath)) {
traversal.visit(null, "drawable/E.xml");
traversal.visit(null, "drawable/A.xml");
diff --git a/test/com/facebook/buck/android/FilterResourcesStepTest.java b/test/com/facebook/buck/android/FilterResourcesStepTest.java
index 737fee2..a9448a2 100644
--- a/test/com/facebook/buck/android/FilterResourcesStepTest.java
+++ b/test/com/facebook/buck/android/FilterResourcesStepTest.java
@@ -22,7 +22,7 @@
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.util.FilteredDirectoryCopier;
import com.facebook.buck.util.Filters;
-import com.facebook.buck.util.Paths;
+import com.facebook.buck.util.MorePaths;
import com.facebook.buck.util.ProcessExecutor;
import com.facebook.buck.util.ProjectFilesystem;
import com.facebook.buck.util.Verbosity;
@@ -56,8 +56,8 @@
private final String scaleDest = getFile(first, "mdpi", "other.png");
private String getFile(String dir, String qualifier, String filename) {
- return Paths.normalizePathSeparator(
- new File(dir, String.format("drawable-%s/%s", qualifier, filename)).getPath());
+ return MorePaths.newPathInstance(
+ new File(dir, String.format("drawable-%s/%s", qualifier, filename))).toString();
}
@Test
diff --git a/test/com/facebook/buck/android/PrebuiltNativeLibraryRuleTest.java b/test/com/facebook/buck/android/PrebuiltNativeLibraryRuleTest.java
index bdf0bfd..541b2cf 100644
--- a/test/com/facebook/buck/android/PrebuiltNativeLibraryRuleTest.java
+++ b/test/com/facebook/buck/android/PrebuiltNativeLibraryRuleTest.java
@@ -22,7 +22,7 @@
import com.facebook.buck.testutil.MoreAsserts;
import com.facebook.buck.util.DirectoryTraversal;
import com.facebook.buck.util.DirectoryTraverser;
-import com.facebook.buck.util.Paths;
+import com.facebook.buck.util.MorePaths;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
@@ -40,7 +40,7 @@
DirectoryTraverser traverser = new DirectoryTraverser() {
@Override
public void traverse(DirectoryTraversal traversal) throws IOException {
- String rootPath = Paths.normalizePathSeparator(traversal.getRoot().getPath());
+ String rootPath = MorePaths.newPathInstance(traversal.getRoot()).toString();
if ("java/src/com/facebook/base/libs".equals(rootPath)) {
traversal.visit(null, "armeabi/foo.so");
traversal.visit(null, "armeabi/libilbc-codec.so");