summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Warrington <cmw@google.com>2022-03-18 16:37:09 +0000
committerTreeHugger Robot <treehugger-gerrit@google.com>2022-03-23 18:43:07 +0000
commitabed3e9861c435f16cbfe4a4cfba9aac3f95d800 (patch)
treea8eeb003deb5edd05ea8e7c39c910cbc295e0626
parent564b7be8a1568bacf71113682499c84e73441052 (diff)
downloaddata-binding-abed3e9861c435f16cbfe4a4cfba9aac3f95d800.tar.gz
Don't merge class log info directories
Bug: 218478028 Test: Existing integration tests Change-Id: I44c928468a2c8acf325135da002a06394e2d3320
-rw-r--r--compilerCommon/src/main/java/android/databinding/tool/store/LayoutInfoInput.kt4
-rw-r--r--compilerCommon/src/main/java/android/databinding/tool/store/ResourceBundle.java61
-rw-r--r--compilerCommon/src/test/kotlin/android/databinding/tool/store/LayoutInfoInputTest.kt2
3 files changed, 37 insertions, 30 deletions
diff --git a/compilerCommon/src/main/java/android/databinding/tool/store/LayoutInfoInput.kt b/compilerCommon/src/main/java/android/databinding/tool/store/LayoutInfoInput.kt
index 266ef977..1d3dff69 100644
--- a/compilerCommon/src/main/java/android/databinding/tool/store/LayoutInfoInput.kt
+++ b/compilerCommon/src/main/java/android/databinding/tool/store/LayoutInfoInput.kt
@@ -61,7 +61,7 @@ class LayoutInfoInput(val args: Args) {
}
val deps by lazy(LazyThreadSafetyMode.NONE) {
- val v2 = ResourceBundle.loadClassInfoFromFolder(args.dependencyClassesFolder)
+ val v2 = ResourceBundle.loadClassInfoFromFolders(args.dependencyClassesFolders)
args.v1ArtifactsFolder?.let {
val v1 = V1CompatLayoutInfoLoader().load(it)
v2.addAll(v1)
@@ -157,7 +157,7 @@ class LayoutInfoInput(val args: Args) {
data class Args(val outOfDate: List<File>,
val removed: List<File>,
val infoFolder: File,
- val dependencyClassesFolder: File,
+ val dependencyClassesFolders: List<File>,
val artifactFolder: File,
val logFolder: File,
val packageName : String,
diff --git a/compilerCommon/src/main/java/android/databinding/tool/store/ResourceBundle.java b/compilerCommon/src/main/java/android/databinding/tool/store/ResourceBundle.java
index 5a725005..8dfe83ec 100644
--- a/compilerCommon/src/main/java/android/databinding/tool/store/ResourceBundle.java
+++ b/compilerCommon/src/main/java/android/databinding/tool/store/ResourceBundle.java
@@ -189,37 +189,44 @@ public class ResourceBundle implements Serializable {
* in previous steps.
*/
public static GenClassInfoLog loadClassInfoFromFolder(File folder) throws IOException {
+ return loadClassInfoFromFolders(Collections.singletonList(folder));
+ }
+
+ public static GenClassInfoLog loadClassInfoFromFolders(List<File> folders) throws IOException {
GenClassInfoLog merged = new GenClassInfoLog();
// blaze might pass a zip instead of a folder
- if (folder.isFile()) { //bazel
- // unzip it into a tmp folder and use it.
- try (ZipFile zipFile = new ZipFile(folder)) {
- zipFile.stream().forEach(zipEntry -> {
- if (zipEntry.getName().endsWith(DataBindingBuilder.BINDING_CLASS_LIST_SUFFIX)) {
- try {
- merged.addAll(GenClassInfoLog.fromInputStream(zipFile.getInputStream
- (zipEntry)));
- } catch (IOException e) {
- L.e(
- e,
- "failed to read gen class info log from entry %s",
- zipEntry.getName());
+ for (File folder: folders) {
+ if (folder.isFile()) { //bazel
+ // unzip it into a tmp folder and use it.
+ try (ZipFile zipFile = new ZipFile(folder)) {
+ zipFile.stream().forEach(zipEntry -> {
+ if (zipEntry.getName()
+ .endsWith(DataBindingBuilder.BINDING_CLASS_LIST_SUFFIX)) {
+ try {
+ merged.addAll(GenClassInfoLog.fromInputStream(zipFile.getInputStream
+ (zipEntry)));
+ } catch (IOException e) {
+ L.e(
+ e,
+ "failed to read gen class info log from entry %s",
+ zipEntry.getName());
+ }
}
- }
- });
- }
- } else if (folder.isDirectory()){
- SuffixFileFilter fileFilter = new SuffixFileFilter(
- DataBindingBuilder.BINDING_CLASS_LIST_SUFFIX,
- IOCase.SYSTEM);
- List<File> files = FileUtil.listAndSortFiles(folder, fileFilter,
- TrueFileFilter.INSTANCE);
- for (File file : files) {
- merged.addAll(GenClassInfoLog.fromFile(file));
+ });
+ }
+ } else if (folder.isDirectory()) {
+ SuffixFileFilter fileFilter = new SuffixFileFilter(
+ DataBindingBuilder.BINDING_CLASS_LIST_SUFFIX,
+ IOCase.SYSTEM);
+ List<File> files = FileUtil.listAndSortFiles(folder, fileFilter,
+ TrueFileFilter.INSTANCE);
+ for (File file : files) {
+ merged.addAll(GenClassInfoLog.fromFile(file));
+ }
+ } else {
+ // happens w/ blaze
+ L.w("no info log is passed. There are no resources?");
}
- } else {
- // happens w/ blaze
- L.w("no info log is passed. There are no resources?");
}
return merged;
}
diff --git a/compilerCommon/src/test/kotlin/android/databinding/tool/store/LayoutInfoInputTest.kt b/compilerCommon/src/test/kotlin/android/databinding/tool/store/LayoutInfoInputTest.kt
index b94641db..37e15494 100644
--- a/compilerCommon/src/test/kotlin/android/databinding/tool/store/LayoutInfoInputTest.kt
+++ b/compilerCommon/src/test/kotlin/android/databinding/tool/store/LayoutInfoInputTest.kt
@@ -379,7 +379,7 @@ class LayoutInfoInputTest {
outOfDate = added,
removed = removed,
infoFolder = infoFolder,
- dependencyClassesFolder = dependencyClassFolder,
+ dependencyClassesFolders = listOf(dependencyClassFolder),
incremental = incremental,
logFolder = baseBinderLogFolder,
artifactFolder = artifactFolder,