aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java
diff options
context:
space:
mode:
authorGravatar Tobias Werth <twerth@google.com>2017-03-20 09:00:09 +0000
committerGravatar Yue Gan <yueg@google.com>2017-03-20 11:45:40 +0000
commitbd40871283a54268945dcb0c47c0326645ffda18 (patch)
tree7e9a88258f3f3936e47dd230769300e793eedf74 /src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java
parentc6a6a7791b1464bea79bf9af01f00360b0147450 (diff)
*** Reason for rollback *** broke over 100k targets, in the depot, see [] *** Original change description *** Move library R generation to a separate action, ensuring the merging happens off the java critical path. -- PiperOrigin-RevId: 150602545 MOS_MIGRATED_REVID=150602545
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java34
1 files changed, 6 insertions, 28 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java
index e0a40362f7..0ab4c32275 100644
--- a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java
+++ b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java
@@ -28,13 +28,12 @@ import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
-/** Collects all the functionality for an action to merge resources. */
-// TODO(bazel-team): Turn into an instance object, in order to use an external ExecutorService.
+/** Collects all the functionationality for an action to merge resources. */
public class AndroidResourceMerger {
static final Logger logger = Logger.getLogger(AndroidResourceProcessor.class.getName());
/** Merges all secondary resources with the primary resources. */
- public static MergedAndroidData mergeData(
+ static MergedAndroidData mergeData(
final ParsedAndroidData primary,
final Path primaryManifest,
final List<? extends SerializedAndroidData> direct,
@@ -50,14 +49,11 @@ public class AndroidResourceMerger {
final ListeningExecutorService executorService =
MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(15));
try (Closeable closeable = ExecutorServiceCloser.createWith(executorService)) {
+ AndroidDataMerger merger = AndroidDataMerger.createWithPathDeduplictor(executorService);
UnwrittenMergedAndroidData merged =
- mergeData(
- executorService,
- transitive,
- direct,
- primary,
- primaryManifest,
- type != VariantType.LIBRARY);
+ merger.loadAndMerge(
+ transitive, direct, primary, primaryManifest, type != VariantType.LIBRARY);
+ logger.fine(String.format("merge finished in %sms", timer.elapsed(TimeUnit.MILLISECONDS)));
timer.reset().start();
if (symbolsOut != null) {
AndroidDataSerializer serializer = AndroidDataSerializer.create();
@@ -86,24 +82,6 @@ public class AndroidResourceMerger {
}
}
- public static UnwrittenMergedAndroidData mergeData(
- ListeningExecutorService executorService,
- List<? extends SerializedAndroidData> transitive,
- List<? extends SerializedAndroidData> direct,
- ParsedAndroidData primary,
- Path primaryManifest,
- boolean allowPrimaryOverrideAll)
- throws MergingException {
- Stopwatch timer = Stopwatch.createStarted();
- try {
- AndroidDataMerger merger = AndroidDataMerger.createWithPathDeduplictor(executorService);
- return merger.loadAndMerge(
- transitive, direct, primary, primaryManifest, allowPrimaryOverrideAll);
- } finally {
- logger.fine(String.format("merge finished in %sms", timer.elapsed(TimeUnit.MILLISECONDS)));
- }
- }
-
/**
* Merges all secondary resources with the primary resources, given that the primary resources
* have not yet been parsed and serialized.