Encapsulate posting to BuckEventBus in ExecutionContext...
Summary:
...where it makes sense. There's still a bunch of direct calls to
`BuckEventBus.post`, but only where `ExecutionContext` is not available.
Perhaps, I can send out a similar diff for `BuildContext`.
Test Plan: ant test
diff --git a/src/com/facebook/buck/android/CompileStringsStep.java b/src/com/facebook/buck/android/CompileStringsStep.java
index 43fd1ae..7b57688 100644
--- a/src/com/facebook/buck/android/CompileStringsStep.java
+++ b/src/com/facebook/buck/android/CompileStringsStep.java
@@ -16,7 +16,6 @@
package com.facebook.buck.android;
-import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.Step;
import com.facebook.buck.util.ProjectFilesystem;
@@ -130,8 +129,7 @@
try {
resourcesByLocale.put(locale, compileStringFiles(filesByLocale.get(locale)));
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "Error parsing string file for locale: %s", locale));
+ context.logError(e, "Error parsing string file for locale: %s", locale);
return 1;
}
}
@@ -161,9 +159,7 @@
File jsonFile = filesystem.getFileForRelativePath(destinationDir.resolve(locale + ".json"));
objectMapper.writeValue(jsonFile, resourcesByLocale.get(locale).asMap());
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "Error creating json string file for locale: %s",
- locale));
+ context.logError(e, "Error creating json string file for locale: %s", locale);
return 1;
}
}
diff --git a/src/com/facebook/buck/android/FilterResourcesStep.java b/src/com/facebook/buck/android/FilterResourcesStep.java
index 8d336b4..966c0c2 100644
--- a/src/com/facebook/buck/android/FilterResourcesStep.java
+++ b/src/com/facebook/buck/android/FilterResourcesStep.java
@@ -16,7 +16,6 @@
package com.facebook.buck.android;
-import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.shell.BashStep;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.Step;
@@ -125,8 +124,7 @@
try {
return doExecute(context);
} catch (Exception e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "There was an error filtering resources."));
+ context.logError(e, "There was an error filtering resources.");
return 1;
}
}
diff --git a/src/com/facebook/buck/android/ProGuardObfuscateStep.java b/src/com/facebook/buck/android/ProGuardObfuscateStep.java
index ec5c682..3f3a0e7 100644
--- a/src/com/facebook/buck/android/ProGuardObfuscateStep.java
+++ b/src/com/facebook/buck/android/ProGuardObfuscateStep.java
@@ -16,7 +16,6 @@
package com.facebook.buck.android;
-import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.shell.ShellStep;
import com.facebook.buck.step.AbstractExecutionStep;
import com.facebook.buck.step.CompositeStep;
@@ -134,9 +133,7 @@
try {
createEmptyZip(outputJarFile);
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "Error creating empty zip file at: %s.",
- outputJarFile));
+ context.logError(e, "Error creating empty zip file at: %s.", outputJarFile);
return 1;
}
}
@@ -227,9 +224,9 @@
proGuardArguments,
Paths.get(pathToProGuardCommandLineArgsFile));
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
+ context.logError(e,
"Error writing ProGuard arguments to file: %s.",
- pathToProGuardCommandLineArgsFile));
+ pathToProGuardCommandLineArgsFile);
return 1;
}
diff --git a/src/com/facebook/buck/java/PrebuiltJarRule.java b/src/com/facebook/buck/java/PrebuiltJarRule.java
index 616ed6a..3deb3a2 100644
--- a/src/com/facebook/buck/java/PrebuiltJarRule.java
+++ b/src/com/facebook/buck/java/PrebuiltJarRule.java
@@ -18,7 +18,6 @@
import static com.facebook.buck.rules.BuildableProperties.Kind.LIBRARY;
-import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.model.BuildTarget;
import com.facebook.buck.model.BuildTargetPattern;
import com.facebook.buck.rules.AbiRule;
@@ -217,9 +216,7 @@
try {
fileSha1 = ByteStreams.hash(inputSupplier, Hashing.sha1());
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "Failed to calculate ABI for %s.",
- binaryJar));
+ context.logError(e, "Failed to calculate ABI for %s.", binaryJar);
return 1;
}
diff --git a/src/com/facebook/buck/shell/SymlinkFilesIntoDirectoryStep.java b/src/com/facebook/buck/shell/SymlinkFilesIntoDirectoryStep.java
index 3f13685..e35fb26 100644
--- a/src/com/facebook/buck/shell/SymlinkFilesIntoDirectoryStep.java
+++ b/src/com/facebook/buck/shell/SymlinkFilesIntoDirectoryStep.java
@@ -16,7 +16,6 @@
package com.facebook.buck.shell;
-import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.step.AbstractExecutionStep;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.Step;
@@ -66,10 +65,7 @@
Files.createDirectories(link.getParent());
Files.createSymbolicLink(link, target);
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "Failed to create symlink from %s to %s.",
- link,
- target));
+ context.logError(e, "Failed to create symlink from %s to %s.", link, target);
return 1;
}
}
diff --git a/src/com/facebook/buck/step/DefaultStepRunner.java b/src/com/facebook/buck/step/DefaultStepRunner.java
index 5413b2b..a1826bd 100644
--- a/src/com/facebook/buck/step/DefaultStepRunner.java
+++ b/src/com/facebook/buck/step/DefaultStepRunner.java
@@ -16,7 +16,6 @@
package com.facebook.buck.step;
-import com.facebook.buck.event.BuckEventBus;
import com.facebook.buck.model.BuildTarget;
import com.facebook.buck.util.concurrent.MoreFutures;
import com.google.common.base.Function;
@@ -74,11 +73,9 @@
context.getStdErr().println(step.getDescription(context));
}
- BuckEventBus buckEventBus = context.getBuckEventBus();
-
- buckEventBus.post(StepEvent.started(step, step.getDescription(context)));
+ context.postEvent(StepEvent.started(step, step.getDescription(context)));
int exitCode = step.execute(context);
- buckEventBus.post(StepEvent.finished(step, step.getDescription(context), exitCode));
+ context.postEvent(StepEvent.finished(step, step.getDescription(context), exitCode));
if (exitCode != 0) {
throw StepFailedException.createForFailingStep(step, context, exitCode, buildTarget);
}
diff --git a/src/com/facebook/buck/step/ExecutionContext.java b/src/com/facebook/buck/step/ExecutionContext.java
index a9f4f8d..57eb2da 100644
--- a/src/com/facebook/buck/step/ExecutionContext.java
+++ b/src/com/facebook/buck/step/ExecutionContext.java
@@ -17,7 +17,9 @@
package com.facebook.buck.step;
import com.facebook.buck.android.NoAndroidSdkException;
+import com.facebook.buck.event.BuckEvent;
import com.facebook.buck.event.BuckEventBus;
+import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.util.AndroidPlatformTarget;
import com.facebook.buck.util.Ansi;
import com.facebook.buck.util.Console;
@@ -89,6 +91,14 @@
platform);
}
+ public void logError(Throwable error, String msg, Object... formatArgs) {
+ eventBus.post(ThrowableLogEvent.create(error, msg, formatArgs));
+ }
+
+ public void postEvent(BuckEvent event) {
+ eventBus.post(event);
+ }
+
public Verbosity getVerbosity() {
return verbosity;
}
diff --git a/src/com/facebook/buck/step/fs/MkdirStep.java b/src/com/facebook/buck/step/fs/MkdirStep.java
index 0a439c4..25149d1 100644
--- a/src/com/facebook/buck/step/fs/MkdirStep.java
+++ b/src/com/facebook/buck/step/fs/MkdirStep.java
@@ -16,7 +16,6 @@
package com.facebook.buck.step.fs;
-import com.facebook.buck.event.ThrowableLogEvent;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.Step;
import com.facebook.buck.util.Escaper;
@@ -46,9 +45,7 @@
try {
context.getProjectFilesystem().mkdirs(pathRelativeToProjectRoot);
} catch (IOException e) {
- context.getBuckEventBus().post(ThrowableLogEvent.create(e,
- "Cannot make directories: %s",
- pathRelativeToProjectRoot));
+ context.logError(e, "Cannot make directories: %s", pathRelativeToProjectRoot);
return 1;
}
return 0;
diff --git a/src/com/facebook/buck/zip/RepackZipEntriesStep.java b/src/com/facebook/buck/zip/RepackZipEntriesStep.java
index 06e9bc6..a138d57 100644
--- a/src/com/facebook/buck/zip/RepackZipEntriesStep.java
+++ b/src/com/facebook/buck/zip/RepackZipEntriesStep.java
@@ -16,10 +16,8 @@
package com.facebook.buck.zip;
-import com.facebook.buck.event.LogEvent;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.Step;
-import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableSet;
import com.google.common.hash.Hashing;
import com.google.common.io.ByteStreams;
@@ -33,7 +31,6 @@
import java.io.InputStream;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.logging.Level;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -116,8 +113,7 @@
return 0;
} catch (IOException e) {
- context.getBuckEventBus().post(LogEvent.create(
- Level.SEVERE, "Unable to repack zip: %s", Throwables.getStackTraceAsString(e)));
+ context.logError(e, "Unable to repack zip");
return 1;
}
}