From 1fee9f3dd0e2ec4b6142bd6cd03d35e5de9d1eb2 Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Thu, 4 Oct 2018 11:45:49 +0100 Subject: [PATCH] Include all core libs in default boot classpath To migrate the default compilation over to using "core platform api" stubs we need to make the "before" state as close to the "after" state as possible. The stubs will include all "core libraries" so it makes sense to include those that contribute to the "core platform api": okhttp, bouncycastle and conscrypt. (apache-xml is not included because it doesn't contribute to the core platform API). After this change all explicit dependencies to okhttp, bouncycastle and conscrypt in situations where the default boot classpath is used can be removed. A knock-on of this change is that the conscrypt, bouncycastle and okhttp targets need to be adjusted to explicitly depend on core-oj / core-libart with no_standard_libs: true to avoid a cycle. Bug: 113148576 Test: treehugger Change-Id: I1677af8d9d48fd026874ebce4c864f39ec1a5a3d --- android/neverallow.go | 2 +- java/config/config.go | 4 ++-- java/java_test.go | 18 +++++++----------- java/sdk_library.go | 2 +- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/android/neverallow.go b/android/neverallow.go index a7f4f82ef..217a8d44f 100644 --- a/android/neverallow.go +++ b/android/neverallow.go @@ -56,7 +56,7 @@ var neverallows = []*rule{ without("vendor", "true"). without("owner", ""). because("a VNDK module can never have an owner."), - neverallow().notIn("libcore", "development", "external/conscrypt").with("no_standard_libs", "true"), + neverallow().notIn("libcore", "development", "external/bouncycastle", "external/conscrypt", "external/okhttp").with("no_standard_libs", "true"), // TODO(b/67974785): always enforce the manifest neverallow(). diff --git a/java/config/config.go b/java/config/config.go index 3d27b70f3..85cb588fd 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -27,9 +27,9 @@ import ( var ( pctx = android.NewPackageContext("android/soong/java/config") - DefaultBootclasspathLibraries = []string{"core-oj", "core-libart", "core-simple"} + DefaultBootclasspathLibraries = []string{"core-oj", "core-libart", "core-simple", "bouncycastle", "conscrypt", "okhttp"} DefaultSystemModules = "core-system-modules" - DefaultLibraries = []string{"ext", "framework", "okhttp"} + DefaultLibraries = []string{"ext", "framework"} DefaultLambdaStubsLibrary = "core-lambda-stubs" SdkLambdaStubsPath = "prebuilts/sdk/tools/core-lambda-stubs.jar" diff --git a/java/java_test.go b/java/java_test.go index 1bfd24bbc..76244f04b 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -115,9 +115,11 @@ func testContext(config android.Config, bp string, "core-libart", "core-lambda-stubs", "core-simple", + "bouncycastle", + "conscrypt", + "okhttp", "framework", "ext", - "okhttp", "android_stubs_current", "android_system_stubs_current", "android_test_stubs_current", @@ -365,16 +367,16 @@ var classpathTestcases = []struct { }{ { name: "default", - bootclasspath: []string{"core-oj", "core-libart", "core-simple"}, + bootclasspath: []string{"core-oj", "core-libart", "core-simple", "bouncycastle", "conscrypt", "okhttp"}, system: "core-system-modules", - classpath: []string{"ext", "framework", "okhttp"}, + classpath: []string{"ext", "framework"}, }, { name: "blank sdk version", properties: `sdk_version: "",`, - bootclasspath: []string{"core-oj", "core-libart", "core-simple"}, + bootclasspath: []string{"core-oj", "core-libart", "core-simple", "bouncycastle", "conscrypt", "okhttp"}, system: "core-system-modules", - classpath: []string{"ext", "framework", "okhttp"}, + classpath: []string{"ext", "framework"}, }, { @@ -1062,12 +1064,6 @@ func TestJavaSdkLibrary(t *testing.T) { name: "droiddoc-templates-sdk", path: ".", } - java_library { - name: "conscrypt", - } - java_library { - name: "bouncycastle", - } java_sdk_library { name: "foo", srcs: ["a.java", "b.java"], diff --git a/java/sdk_library.go b/java/sdk_library.go index a8c3b118a..c1b888091 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -519,7 +519,7 @@ func (module *sdkLibrary) createDocs(mctx android.TopDownMutatorContext, apiScop // Src_lib and Src_lib_whitelist_* properties just above. // If we don't add them to the classpath, errors messages are generated by doclava, // though they don't break the build. - props.Libs = append(props.Libs, "conscrypt", "bouncycastle", "okhttp", "framework") + props.Libs = append(props.Libs, "framework") mctx.CreateModule(android.ModuleFactoryAdaptor(DroiddocFactory), &props) }