Use Java 17 `toList` method.
Test: atest ArtServiceTests
Change-Id: I33655cd8da459e60f2d119d801560ba61659d179
diff --git a/libartservice/service/java/com/android/server/art/ArtManagerLocal.java b/libartservice/service/java/com/android/server/art/ArtManagerLocal.java
index 1ec07f2..9310008 100644
--- a/libartservice/service/java/com/android/server/art/ArtManagerLocal.java
+++ b/libartservice/service/java/com/android/server/art/ArtManagerLocal.java
@@ -113,7 +113,6 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.function.Consumer;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
@@ -896,7 +895,7 @@
.map(envVar -> Constants.getenv(envVar))
.filter(classpath -> !TextUtils.isEmpty(classpath))
.flatMap(classpath -> Arrays.stream(classpath.split(":")))
- .collect(Collectors.toList());
+ .toList();
var options = new MergeProfileOptions();
options.forceMerge = true;
@@ -1215,7 +1214,7 @@
.refProfiles()
.stream()
.map(AidlUtils::toWritableProfilePath)
- .collect(Collectors.toList());
+ .toList();
try {
// The artd method commits all files somewhat transactionally. Here, we are
// committing files transactionally at the package level just for simplicity. In
@@ -1325,7 +1324,7 @@
List<String> packages = getDefaultPackages(snapshot, ReasonMapping.REASON_INACTIVE)
.stream()
.filter(pkg -> !excludedPackages.contains(pkg))
- .collect(Collectors.toList());
+ .toList();
if (!packages.isEmpty()) {
AsLog.i("Storage is low. Downgrading " + packages.size() + " inactive packages");
DexoptParams params =
@@ -1372,14 +1371,14 @@
.stream()
.filter(packageResult
-> packageResult.getDexContainerFileDexoptResults()
- .stream()
- .anyMatch(fileResult
- -> DexFile.isProfileGuidedCompilerFilter(
- fileResult.getActualCompilerFilter())
- && fileResult.getStatus()
- == DexoptResult.DEXOPT_SKIPPED))
+ .stream()
+ .anyMatch(fileResult
+ -> DexFile.isProfileGuidedCompilerFilter(
+ fileResult.getActualCompilerFilter())
+ && fileResult.getStatus()
+ == DexoptResult.DEXOPT_SKIPPED))
.map(packageResult -> packageResult.getPackageName())
- .collect(Collectors.toList());
+ .toList();
DexoptParams dexoptParams = mainParams.toBuilder()
.setFlags(ArtFlags.FLAG_FORCE_MERGE_PROFILE,
@@ -1428,7 +1427,7 @@
packages, true /* keepRecent */, true /* descending */);
}
- return packages.map(PackageState::getPackageName).collect(Collectors.toList());
+ return packages.map(PackageState::getPackageName).toList();
}
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
diff --git a/libartservice/service/java/com/android/server/art/ArtShellCommand.java b/libartservice/service/java/com/android/server/art/ArtShellCommand.java
index 3d86a40..21b24c7 100644
--- a/libartservice/service/java/com/android/server/art/ArtShellCommand.java
+++ b/libartservice/service/java/com/android/server/art/ArtShellCommand.java
@@ -82,7 +82,6 @@
import java.util.concurrent.Executors;
import java.util.function.Consumer;
import java.util.function.Function;
-import java.util.stream.Collectors;
/**
* This class handles ART shell commands.
diff --git a/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java b/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java
index 106b1c6..251eec2 100644
--- a/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java
+++ b/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java
@@ -31,7 +31,6 @@
import java.util.List;
import java.util.Optional;
-import java.util.stream.Collectors;
/**
* This is a helper class to report the background DexOpt job metrics to StatsD.
@@ -90,7 +89,7 @@
-> (fileResult.getExtendedStatusFlags()
& DexoptResult.EXTENDED_SKIPPED_NO_DEX_CODE)
== 0))
- .collect(Collectors.toList());
+ .toList();
}
private static int getStatusForStats(
diff --git a/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java b/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java
index 51b63ca..fc30e35 100644
--- a/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java
+++ b/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java
@@ -207,7 +207,7 @@
.stream()
.map(loader -> loader.loadingPackageName())
.collect(Collectors.toSet())))
- .collect(Collectors.toList());
+ .toList();
}
/**
@@ -354,7 +354,7 @@
-> !clc.equals(
SecondaryDexInfo.UNSUPPORTED_CLASS_LOADER_CONTEXT))
.distinct()
- .collect(Collectors.toList());
+ .toList();
String clc;
if (distinctClcList.size() == 0) {
clc = SecondaryDexInfo.UNSUPPORTED_CLASS_LOADER_CONTEXT;
diff --git a/libartservice/service/java/com/android/server/art/DexoptHelper.java b/libartservice/service/java/com/android/server/art/DexoptHelper.java
index 828a05c..b5f02ae 100644
--- a/libartservice/service/java/com/android/server/art/DexoptHelper.java
+++ b/libartservice/service/java/com/android/server/art/DexoptHelper.java
@@ -56,7 +56,6 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
import java.util.function.Function;
-import java.util.stream.Collectors;
/**
* A helper class to handle dexopt.
@@ -127,9 +126,7 @@
// create a separate cancellation signal for each of them so that the listeners don't
// overwrite each other.
List<CancellationSignal> childCancellationSignals =
- pkgStates.stream()
- .map(pkgState -> new CancellationSignal())
- .collect(Collectors.toList());
+ pkgStates.stream().map(pkgState -> new CancellationSignal()).toList();
cancellationSignal.setOnCancelListener(() -> {
for (CancellationSignal childCancellationSignal : childCancellationSignals) {
childCancellationSignal.cancel();
@@ -174,8 +171,7 @@
}
}
- List<PackageDexoptResult> results =
- futures.stream().map(Utils::getFuture).collect(Collectors.toList());
+ List<PackageDexoptResult> results = futures.stream().map(Utils::getFuture).toList();
var result =
DexoptResult.create(params.getCompilerFilter(), params.getReason(), results);
@@ -187,7 +183,7 @@
List<PackageDexoptResult> filteredResults =
results.stream()
.filter(PackageDexoptResult::hasUpdatedArtifacts)
- .collect(Collectors.toList());
+ .toList();
if (!filteredResults.isEmpty()) {
var resultForCallback = DexoptResult.create(
params.getCompilerFilter(), params.getReason(), filteredResults);
diff --git a/libartservice/service/java/com/android/server/art/DumpHelper.java b/libartservice/service/java/com/android/server/art/DumpHelper.java
index 419c55f..9578652 100644
--- a/libartservice/service/java/com/android/server/art/DumpHelper.java
+++ b/libartservice/service/java/com/android/server/art/DumpHelper.java
@@ -215,7 +215,7 @@
List<DexLoader> otherApps =
dexLoaders.stream()
.filter(loader -> DexUseManagerLocal.isLoaderOtherApp(loader, packageName))
- .collect(Collectors.toList());
+ .toList();
if (!otherApps.isEmpty()) {
ipw.printf("used by other apps: [%s]\n",
otherApps.stream()
diff --git a/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java b/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java
index c37fdbe..3fb8bda 100644
--- a/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java
+++ b/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java
@@ -60,7 +60,7 @@
.stream()
.map(builder -> builder.build())
.filter(info -> info.hasCode())
- .collect(Collectors.toList());
+ .toList();
}
/**
@@ -74,7 +74,7 @@
.stream()
.map(builder -> builder.buildDetailed())
.filter(info -> info.hasCode())
- .collect(Collectors.toList());
+ .toList();
}
/** Returns the basic information about a dex file specified by {@code splitName}. */
diff --git a/libartservice/service/java/com/android/server/art/Utils.java b/libartservice/service/java/com/android/server/art/Utils.java
index 9de244f..07168aa 100644
--- a/libartservice/service/java/com/android/server/art/Utils.java
+++ b/libartservice/service/java/com/android/server/art/Utils.java
@@ -73,7 +73,6 @@
import java.util.concurrent.Executor;
import java.util.concurrent.Future;
import java.util.function.Supplier;
-import java.util.stream.Collectors;
/** @hide */
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
@@ -143,7 +142,7 @@
-> Abi.create(name, VMRuntime.getInstructionSet(name),
name.equals(pkgPrimaryAbi.name())))
.sorted(Comparator.comparing(Abi::isPrimaryAbi).reversed())
- .collect(Collectors.toList());
+ .toList();
}
@NonNull
diff --git a/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java b/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java
index f6ed721..b0c6725 100644
--- a/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java
+++ b/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java
@@ -73,7 +73,6 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
@SmallTest
@@ -669,7 +668,7 @@
.getPackageDexoptResults()
.stream()
.map(PackageDexoptResult::getPackageName)
- .collect(Collectors.toList()))
+ .toList())
.containsExactly(PKG_NAME_FOO);
}
@@ -693,8 +692,7 @@
progressCallbackExecutor.runAll();
List<DexContainerFileDexoptResult> fileResults =
- Stream.concat(mPrimaryResults.stream(), mSecondaryResults.stream())
- .collect(Collectors.toList());
+ Stream.concat(mPrimaryResults.stream(), mSecondaryResults.stream()).toList();
InOrder inOrder = inOrder(progressCallback);
inOrder.verify(progressCallback)
@@ -843,9 +841,8 @@
assertThat(packageResult.getPackageName()).isEqualTo(packageName);
assertThat(packageResult.getStatus()).isEqualTo(status);
assertThat(packageResult.getDexContainerFileDexoptResults())
- .containsExactlyElementsIn(dexContainerFileDexoptResults.stream()
- .flatMap(r -> r.stream())
- .collect(Collectors.toList()));
+ .containsExactlyElementsIn(
+ dexContainerFileDexoptResults.stream().flatMap(r -> r.stream()).toList());
}
/** An executor that delays execution until `runAll` is called. */
diff --git a/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java b/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java
index 5cc201c..02ae2fe 100644
--- a/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java
+++ b/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java
@@ -62,7 +62,6 @@
import java.util.concurrent.Future;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
import java.util.zip.ZipFile;
@SmallTest
@@ -693,7 +692,7 @@
assertThat(mPrimaryDexopter.dexopt()
.stream()
.map(DexContainerFileDexoptResult::getStatus)
- .collect(Collectors.toList()))
+ .toList())
.containsExactly(DexoptResult.DEXOPT_CANCELLED);
// It shouldn't continue after being cancelled on the first file.
@@ -734,10 +733,7 @@
mCancellationSignal.cancel();
- assertThat(results.get()
- .stream()
- .map(DexContainerFileDexoptResult::getStatus)
- .collect(Collectors.toList()))
+ assertThat(results.get().stream().map(DexContainerFileDexoptResult::getStatus).toList())
.containsExactly(DexoptResult.DEXOPT_CANCELLED);
// It shouldn't continue after being cancelled on the first file.
diff --git a/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java b/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java
index beadb31..1ded5da 100644
--- a/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java
+++ b/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java
@@ -29,7 +29,6 @@
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Arrays;
-import java.util.stream.Collectors;
@SmallTest
@RunWith(AndroidJUnit4.class)
@@ -182,7 +181,7 @@
assertThat(Arrays.stream(DexoptParams.class.getDeclaredFields())
.filter(field -> !Modifier.isStatic(field.getModifiers()))
.map(Field::getName)
- .collect(Collectors.toList()))
+ .toList())
.containsExactly(
"mFlags", "mCompilerFilter", "mPriorityClass", "mReason", "mSplitName");
}