From 32f63a7e82a3aadddbb8cd5e97b1f95ca450c108 Mon Sep 17 00:00:00 2001 From: Richard Uhler Date: Wed, 9 Jan 2019 10:43:52 +0000 Subject: Rename PackageRollbackData RollbackData. In preparation for supporting multi-package rollbacks, where RollbackData will represent information for all packages in the atomic set, rather than a particular package from the set. Test: atest RollbackTest Bug: 112431924 Change-Id: I9c94d2f5a6ea0ec9f0082cf9502e0ae517e83f99 --- .../server/rollback/PackageRollbackData.java | 47 ---------------------- .../com/android/server/rollback/RollbackData.java | 47 ++++++++++++++++++++++ .../rollback/RollbackManagerServiceImpl.java | 30 +++++++------- 3 files changed, 62 insertions(+), 62 deletions(-) delete mode 100644 services/core/java/com/android/server/rollback/PackageRollbackData.java create mode 100644 services/core/java/com/android/server/rollback/RollbackData.java diff --git a/services/core/java/com/android/server/rollback/PackageRollbackData.java b/services/core/java/com/android/server/rollback/PackageRollbackData.java deleted file mode 100644 index 14b10e2c5031..000000000000 --- a/services/core/java/com/android/server/rollback/PackageRollbackData.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.server.rollback; - -import android.content.rollback.PackageRollbackInfo; - -import java.io.File; -import java.time.Instant; - -/** - * Information about a rollback available for a particular package. - * This is similar to {@link PackageRollbackInfo}, but extended with - * additional information for internal bookkeeping. - */ -class PackageRollbackData { - public final PackageRollbackInfo info; - - /** - * The directory where the apk backup is stored. - */ - public final File backupDir; - - /** - * The time when the upgrade occurred, for purposes of expiring - * rollback data. - */ - public Instant timestamp; - - PackageRollbackData(PackageRollbackInfo info, File backupDir) { - this.info = info; - this.backupDir = backupDir; - } -} diff --git a/services/core/java/com/android/server/rollback/RollbackData.java b/services/core/java/com/android/server/rollback/RollbackData.java new file mode 100644 index 000000000000..ab5e2c81cf23 --- /dev/null +++ b/services/core/java/com/android/server/rollback/RollbackData.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.rollback; + +import android.content.rollback.PackageRollbackInfo; + +import java.io.File; +import java.time.Instant; + +/** + * Information about a rollback available for a particular package. + * This is similar to {@link PackageRollbackInfo}, but extended with + * additional information for internal bookkeeping. + */ +class RollbackData { + public final PackageRollbackInfo info; + + /** + * The directory where the apk backup is stored. + */ + public final File backupDir; + + /** + * The time when the upgrade occurred, for purposes of expiring + * rollback data. + */ + public Instant timestamp; + + RollbackData(PackageRollbackInfo info, File backupDir) { + this.info = info; + this.backupDir = backupDir; + } +} diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java index ce12eb7feb50..8630cf674fc8 100644 --- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java @@ -91,12 +91,12 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // Package rollback data for rollback-enabled installs that have not yet // been committed. Maps from sessionId to rollback data. @GuardedBy("mLock") - private final Map mPendingRollbacks = new HashMap<>(); + private final Map mPendingRollbacks = new HashMap<>(); // Package rollback data available to be used for rolling back a package. // This list is null until the rollback data has been loaded. @GuardedBy("mLock") - private List mAvailableRollbacks; + private List mAvailableRollbacks; // The list of recently executed rollbacks. // This list is null until the rollback data has been loaded. @@ -227,7 +227,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // available rollbacks, to hopefully avoid forgetting to call it? ensureRollbackDataLoadedLocked(); for (int i = 0; i < mAvailableRollbacks.size(); ++i) { - PackageRollbackData data = mAvailableRollbacks.get(i); + RollbackData data = mAvailableRollbacks.get(i); if (data.info.packageName.equals(packageName)) { // TODO: Once the RollbackInfo API supports info about // dependant packages, add that info here. @@ -249,7 +249,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { synchronized (mLock) { ensureRollbackDataLoadedLocked(); for (int i = 0; i < mAvailableRollbacks.size(); ++i) { - PackageRollbackData data = mAvailableRollbacks.get(i); + RollbackData data = mAvailableRollbacks.get(i); packageNames.add(data.info.packageName); } } @@ -314,11 +314,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // rollback racing with a roll-forward fix of a buggy package. // Figure out how to ensure we don't commit the rollback if // roll forward happens at the same time. - PackageRollbackData data = null; + RollbackData data = null; synchronized (mLock) { ensureRollbackDataLoadedLocked(); for (int i = 0; i < mAvailableRollbacks.size(); ++i) { - PackageRollbackData available = mAvailableRollbacks.get(i); + RollbackData available = mAvailableRollbacks.get(i); // TODO: Check if available.info.lowerVersion matches // rollback.targetPackage.lowerVersion? if (available.info.packageName.equals(packageName) @@ -420,9 +420,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // testing anyway. synchronized (mLock) { ensureRollbackDataLoadedLocked(); - Iterator iter = mAvailableRollbacks.iterator(); + Iterator iter = mAvailableRollbacks.iterator(); while (iter.hasNext()) { - PackageRollbackData data = iter.next(); + RollbackData data = iter.next(); if (data.info.packageName.equals(packageName)) { iter.remove(); removeFile(data.backupDir); @@ -478,7 +478,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { String packageName = jsonObject.getString("packageName"); long higherVersionCode = jsonObject.getLong("higherVersionCode"); long lowerVersionCode = jsonObject.getLong("lowerVersionCode"); - PackageRollbackData data = new PackageRollbackData( + RollbackData data = new RollbackData( new PackageRollbackInfo(packageName, new PackageRollbackInfo.PackageVersion(higherVersionCode), new PackageRollbackInfo.PackageVersion(lowerVersionCode)), @@ -537,9 +537,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { synchronized (mLock) { ensureRollbackDataLoadedLocked(); - Iterator iter = mAvailableRollbacks.iterator(); + Iterator iter = mAvailableRollbacks.iterator(); while (iter.hasNext()) { - PackageRollbackData data = iter.next(); + RollbackData data = iter.next(); if (data.info.packageName.equals(packageName) && !data.info.higherVersion.equals(installedVersion)) { iter.remove(); @@ -659,9 +659,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { synchronized (mLock) { ensureRollbackDataLoadedLocked(); - Iterator iter = mAvailableRollbacks.iterator(); + Iterator iter = mAvailableRollbacks.iterator(); while (iter.hasNext()) { - PackageRollbackData data = iter.next(); + RollbackData data = iter.next(); if (!now.isBefore(data.timestamp.plusMillis(ROLLBACK_LIFETIME_DURATION_MILLIS))) { iter.remove(); removeFile(data.backupDir); @@ -801,7 +801,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { return false; } - PackageRollbackData data = new PackageRollbackData( + RollbackData data = new RollbackData( new PackageRollbackInfo(packageName, newVersion, installedVersion), backupDir); @@ -889,7 +889,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { @Override public void onFinished(int sessionId, boolean success) { - PackageRollbackData data = null; + RollbackData data = null; synchronized (mLock) { data = mPendingRollbacks.remove(sessionId); } -- cgit v1.2.3-59-g8ed1b