diff options
| author | 2019-01-08 13:26:40 +0000 | |
|---|---|---|
| committer | 2019-01-22 14:16:14 +0000 | |
| commit | 025bfab929b80f3e6a501da50298780a8dbb22c6 (patch) | |
| tree | cd1664cb3d0a5a8e6eb9dccd771eef12031d2825 | |
| parent | 3b887bdf4a16a64f9716f603a905b74c1bcc5a70 (diff) | |
Include OrgApacheHttpLegacyUpdater unconditionally
Previously, OrgApacheHttpLegacyUpdater was added to the bootclasspath
(in the framework-oahl-backward-compatibility library) if and only if
the org.apache.http.legacy.jar was not on the bootclasspath. Its
presence caused the runtime to maintain backwards compatibility by
adding org.apache.http.legacy.jar to the app's classpath for apps that
target < P.
The org.apache.http.legacy.jar was permanently removed from the
bootclasspath in P and so the framework-oahl-backward-compatibility
library, and hence OrgApacheHttpLegacyUpdater, are always on the
bootclasspath and so there is no need to treat it as optional. To that
end this change:
1) Includes it in the main framework target, previously it was
explicitly excluded.
2) Removes the code for handling the case when it is not present.
3) Removes tests for when it is not present.
4) Removes documentation describing what happens when it is not
present.
Bug: 18027885
Test: cts/tests/signature/runSignatureTest.sh
Change-Id: I3892ead8cd2a8bf17e57bf08e3bf6ee65afac0a1
4 files changed, 8 insertions, 67 deletions
diff --git a/Android.bp b/Android.bp index a21cd2803267..ad9ba16f554a 100644 --- a/Android.bp +++ b/Android.bp @@ -668,8 +668,6 @@ java_defaults { exclude_srcs: [ // See comment on framework-atb-backward-compatibility module below "core/java/android/content/pm/AndroidTestBaseUpdater.java", - // See comment on framework-oahl-backward-compatibility module below - "core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java", ], no_framework_libs: true, diff --git a/core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java b/core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java index 81e4105febee..7790067b03de 100644 --- a/core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java +++ b/core/java/android/content/pm/OrgApacheHttpLegacyUpdater.java @@ -25,12 +25,6 @@ import com.android.internal.annotations.VisibleForTesting; * Updates a package to ensure that if it targets < P that the org.apache.http.legacy library is * included by default. * - * <p>This is separated out so that it can be conditionally included at build time depending on - * whether org.apache.http.legacy is on the bootclasspath or not. In order to include this at - * build time, and remove org.apache.http.legacy from the bootclasspath pass - * REMOVE_OAHL_FROM_BCP=true on the build command line, otherwise this class will not be included - * and the - * * @hide */ @VisibleForTesting diff --git a/core/java/android/content/pm/PackageBackwardCompatibility.java b/core/java/android/content/pm/PackageBackwardCompatibility.java index 03eefedd2b30..b19196a9b636 100644 --- a/core/java/android/content/pm/PackageBackwardCompatibility.java +++ b/core/java/android/content/pm/PackageBackwardCompatibility.java @@ -45,13 +45,9 @@ public class PackageBackwardCompatibility extends PackageSharedLibraryUpdater { static { final List<PackageSharedLibraryUpdater> packageUpdaters = new ArrayList<>(); - // Attempt to load and add the optional updater that will only be available when - // REMOVE_OAHL_FROM_BCP=true. If that could not be found then add the default updater that - // will remove any references to org.apache.http.library from the package so that it does - // not try and load the library when it is on the bootclasspath. - boolean bootClassPathContainsOAHL = !addOptionalUpdater(packageUpdaters, - "android.content.pm.OrgApacheHttpLegacyUpdater", - RemoveUnnecessaryOrgApacheHttpLegacyLibrary::new); + // Automatically add the org.apache.http.legacy library to the app classpath if the app + // targets < P. + packageUpdaters.add(new OrgApacheHttpLegacyUpdater()); packageUpdaters.add(new AndroidHidlUpdater()); @@ -70,7 +66,7 @@ public class PackageBackwardCompatibility extends PackageSharedLibraryUpdater { PackageSharedLibraryUpdater[] updaterArray = packageUpdaters .toArray(new PackageSharedLibraryUpdater[0]); INSTANCE = new PackageBackwardCompatibility( - bootClassPathContainsOAHL, bootClassPathContainsATB, updaterArray); + bootClassPathContainsATB, updaterArray); } /** @@ -116,15 +112,12 @@ public class PackageBackwardCompatibility extends PackageSharedLibraryUpdater { return INSTANCE; } - private final boolean mBootClassPathContainsOAHL; - private final boolean mBootClassPathContainsATB; private final PackageSharedLibraryUpdater[] mPackageUpdaters; - public PackageBackwardCompatibility(boolean bootClassPathContainsOAHL, + public PackageBackwardCompatibility( boolean bootClassPathContainsATB, PackageSharedLibraryUpdater[] packageUpdaters) { - this.mBootClassPathContainsOAHL = bootClassPathContainsOAHL; this.mBootClassPathContainsATB = bootClassPathContainsATB; this.mPackageUpdaters = packageUpdaters; } @@ -148,14 +141,6 @@ public class PackageBackwardCompatibility extends PackageSharedLibraryUpdater { } /** - * True if the org.apache.http.legacy is on the bootclasspath, false otherwise. - */ - @VisibleForTesting - public static boolean bootClassPathContainsOAHL() { - return INSTANCE.mBootClassPathContainsOAHL; - } - - /** * True if the android.test.base is on the bootclasspath, false otherwise. */ @VisibleForTesting diff --git a/core/tests/coretests/src/android/content/pm/PackageBackwardCompatibilityTest.java b/core/tests/coretests/src/android/content/pm/PackageBackwardCompatibilityTest.java index c64d5202e1fd..f0c903291719 100644 --- a/core/tests/coretests/src/android/content/pm/PackageBackwardCompatibilityTest.java +++ b/core/tests/coretests/src/android/content/pm/PackageBackwardCompatibilityTest.java @@ -47,21 +47,11 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate } /** - * Detect when the org.apache.http.legacy is not on the bootclasspath. - * - * <p>This test will be ignored when org.apache.http.legacy is not on the bootclasspath and - * succeed otherwise. This allows a developer to ensure that the tests are being - */ - @Test - public void detectWhenOAHLisOnBCP() { - Assume.assumeTrue(PackageBackwardCompatibility.bootClassPathContainsOAHL()); - } - - /** * Detect when the android.test.base is not on the bootclasspath. * * <p>This test will be ignored when org.apache.http.legacy is not on the bootclasspath and - * succeed otherwise. This allows a developer to ensure that the tests are being + * succeed otherwise. This allows a developer to ensure that the tests are being run in the + * correct environment. */ @Test public void detectWhenATBisOnBCP() { @@ -84,9 +74,7 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate if (!PackageBackwardCompatibility.bootClassPathContainsATB()) { expected.add(ANDROID_TEST_BASE); } - if (!PackageBackwardCompatibility.bootClassPathContainsOAHL()) { - expected.add(ORG_APACHE_HTTP_LEGACY); - } + expected.add(ORG_APACHE_HTTP_LEGACY); PackageBuilder after = builder() .targetSdkVersion(Build.VERSION_CODES.O) @@ -97,30 +85,6 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate /** * Ensures that the {@link PackageBackwardCompatibility} uses - * {@link RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest} - * when necessary. - * - * <p>More comprehensive tests for that class can be found in - * {@link RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest}. - */ - @Test - public void org_apache_http_legacy_in_usesLibraries() { - Assume.assumeTrue("Test requires that " - + ORG_APACHE_HTTP_LEGACY + " is on the bootclasspath", - PackageBackwardCompatibility.bootClassPathContainsOAHL()); - - PackageBuilder before = builder() - .requiredLibraries(ORG_APACHE_HTTP_LEGACY); - - // org.apache.http.legacy should be removed from the libraries because it is provided - // on the bootclasspath and providing both increases start up cost unnecessarily. - PackageBuilder after = builder(); - - checkBackwardsCompatibility(before, after); - } - - /** - * Ensures that the {@link PackageBackwardCompatibility} uses * {@link RemoveUnnecessaryAndroidTestBaseLibrary} * when necessary. * |