diff options
author | asteinb <asteinb@google.com> | 2018-03-07 10:04:44 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-07 10:07:05 -0800 |
commit | 629fcd54f7b125c8ce51c13341f7642087f23f10 (patch) | |
tree | 7261be2e7a151b652c7b77db009169422e0c4287 /src | |
parent | 3b59e02e0baec754f2dc076d644bb4f37322c739 (diff) |
Don't check contents of conflicting compiled resources
Until we properly support checking the contents of these files, don't try to do
so.
RELNOTES: none
PiperOrigin-RevId: 188192286
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java | 23 | ||||
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/AndroidResourceMerger.java | 15 |
2 files changed, 32 insertions, 6 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java index 962de7eae3..20a63bf120 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java @@ -53,6 +53,23 @@ class AndroidDataMerger { boolean checkEquality(DataSource one, DataSource two) throws IOException; } + /** + * Compares two paths for equality. Does not check the contents of the files. + * + * <p>TODO(b/74333698): Always check the contents of conflicting resources + */ + static class PathComparingChecker implements SourceChecker { + + static SourceChecker create() { + return new PathComparingChecker(); + } + + @Override + public boolean checkEquality(DataSource one, DataSource two) throws IOException { + return one.getPath().equals(two.getPath()); + } + } + /** Compares two paths by the contents of the files. */ static class ContentComparingChecker implements SourceChecker { @@ -125,8 +142,10 @@ class AndroidDataMerger { /** Creates a merger with a file contents hashing deduplicator. */ static AndroidDataMerger createWithPathDeduplictor( - ListeningExecutorService executorService, AndroidDataDeserializer deserializer) { - return new AndroidDataMerger(ContentComparingChecker.create(), executorService, deserializer); + ListeningExecutorService executorService, + AndroidDataDeserializer deserializer, + SourceChecker checker) { + return new AndroidDataMerger(checker, executorService, deserializer); } private AndroidDataMerger( 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 a6e97b9161..a5126c6c28 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 @@ -18,6 +18,9 @@ import com.android.builder.core.VariantType; import com.android.ide.common.internal.PngCruncher; import com.google.common.base.Stopwatch; import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.devtools.build.android.AndroidDataMerger.ContentComparingChecker; +import com.google.devtools.build.android.AndroidDataMerger.PathComparingChecker; +import com.google.devtools.build.android.AndroidDataMerger.SourceChecker; import java.io.IOException; import java.nio.file.Path; import java.util.List; @@ -75,7 +78,8 @@ public class AndroidResourceMerger { primaryManifest, type != VariantType.LIBRARY, deserializer, - throwOnResourceConflict); + throwOnResourceConflict, + ContentComparingChecker.create()); timer.reset().start(); if (symbolsOut != null) { AndroidDataSerializer serializer = AndroidDataSerializer.create(); @@ -112,11 +116,13 @@ public class AndroidResourceMerger { Path primaryManifest, boolean allowPrimaryOverrideAll, AndroidDataDeserializer deserializer, - boolean throwOnResourceConflict) { + boolean throwOnResourceConflict, + SourceChecker checker) { Stopwatch timer = Stopwatch.createStarted(); + // TODO(b/74333698): Always check the contents of conflicting resources try { AndroidDataMerger merger = - AndroidDataMerger.createWithPathDeduplictor(executorService, deserializer); + AndroidDataMerger.createWithPathDeduplictor(executorService, deserializer, checker); return merger.loadAndMerge( transitive, direct, @@ -229,7 +235,8 @@ public class AndroidResourceMerger { primaryManifest, false, deserializer, - throwOnResourceConflict); + throwOnResourceConflict, + PathComparingChecker.create()); timer.reset().start(); merged.writeResourceClass(rclassWriter); logger.fine( |