From dfade847eae9c67d43c51648158fba63f1e8e259 Mon Sep 17 00:00:00 2001 From: Makoto Onuki <omakoto@google.com> Date: Thu, 2 May 2024 15:42:08 -0700 Subject: [PATCH] [Ravenwood] Tweak build files ... to allow other modules to refer to the text files. Bug: 292141694 Test: ./scripts/run-all-tests.sh Change-Id: I46f0c0e238a6d7f8dc1a30cf111296a529c83664 --- Ravenwood.bp | 24 +++++++------- ravenwood/Android.bp | 32 +++++++++++++++++++ ...s.txt => ravenwood-framework-policies.txt} | 0 ...es.txt => ravenwood-services-policies.txt} | 0 .../filters/InMemoryOutputFilter.kt | 26 +++++++-------- 5 files changed, 57 insertions(+), 25 deletions(-) rename ravenwood/texts/{framework-minus-apex-ravenwood-policies.txt => ravenwood-framework-policies.txt} (100%) rename ravenwood/texts/{services.core-ravenwood-policies.txt => ravenwood-services-policies.txt} (100%) diff --git a/Ravenwood.bp b/Ravenwood.bp index 74382a6e8d44..aa1f73bc83c6 100644 --- a/Ravenwood.bp +++ b/Ravenwood.bp @@ -30,7 +30,7 @@ java_genrule { name: "framework-minus-apex.ravenwood-base", tools: ["hoststubgen"], cmd: "$(location hoststubgen) " + - "@$(location ravenwood/texts/ravenwood-standard-options.txt) " + + "@$(location :ravenwood-standard-options) " + "--debug-log $(location hoststubgen_framework-minus-apex.log) " + "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " + @@ -42,13 +42,13 @@ java_genrule { "--gen-input-dump-file $(location hoststubgen_dump.txt) " + "--in-jar $(location :framework-minus-apex-for-hoststubgen) " + - "--policy-override-file $(location ravenwood/texts/framework-minus-apex-ravenwood-policies.txt) " + - "--annotation-allowed-classes-file $(location ravenwood/texts/ravenwood-annotation-allowed-classes.txt) ", + "--policy-override-file $(location :ravenwood-framework-policies) " + + "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ", srcs: [ ":framework-minus-apex-for-hoststubgen", - "ravenwood/texts/framework-minus-apex-ravenwood-policies.txt", - "ravenwood/texts/ravenwood-standard-options.txt", - "ravenwood/texts/ravenwood-annotation-allowed-classes.txt", + ":ravenwood-framework-policies", + ":ravenwood-standard-options", + ":ravenwood-annotation-allowed-classes", ], out: [ "ravenwood.jar", @@ -118,7 +118,7 @@ java_genrule { name: "services.core.ravenwood-base", tools: ["hoststubgen"], cmd: "$(location hoststubgen) " + - "@$(location ravenwood/texts/ravenwood-standard-options.txt) " + + "@$(location :ravenwood-standard-options) " + "--debug-log $(location hoststubgen_services.core.log) " + "--stats-file $(location hoststubgen_services.core_stats.csv) " + @@ -130,13 +130,13 @@ java_genrule { "--gen-input-dump-file $(location hoststubgen_dump.txt) " + "--in-jar $(location :services.core-for-hoststubgen) " + - "--policy-override-file $(location ravenwood/texts/services.core-ravenwood-policies.txt) " + - "--annotation-allowed-classes-file $(location ravenwood/texts/ravenwood-annotation-allowed-classes.txt) ", + "--policy-override-file $(location :ravenwood-services-policies) " + + "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ", srcs: [ ":services.core-for-hoststubgen", - "ravenwood/texts/services.core-ravenwood-policies.txt", - "ravenwood/texts/ravenwood-standard-options.txt", - "ravenwood/texts/ravenwood-annotation-allowed-classes.txt", + ":ravenwood-services-policies", + ":ravenwood-standard-options", + ":ravenwood-annotation-allowed-classes", ], out: [ "ravenwood.jar", diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp index 33374195e674..b2d8cff23cd5 100644 --- a/ravenwood/Android.bp +++ b/ravenwood/Android.bp @@ -16,6 +16,38 @@ filegroup { visibility: ["//visibility:public"], } +filegroup { + name: "ravenwood-services-policies", + srcs: [ + "texts/ravenwood-services-policies.txt", + ], + visibility: ["//visibility:public"], +} + +filegroup { + name: "ravenwood-framework-policies", + srcs: [ + "texts/ravenwood-framework-policies.txt", + ], + visibility: ["//visibility:public"], +} + +filegroup { + name: "ravenwood-standard-options", + srcs: [ + "texts/ravenwood-standard-options.txt", + ], + visibility: ["//visibility:public"], +} + +filegroup { + name: "ravenwood-annotation-allowed-classes", + srcs: [ + "texts/ravenwood-annotation-allowed-classes.txt", + ], + visibility: ["//visibility:public"], +} + java_library { name: "ravenwood-annotations-lib", srcs: [":ravenwood-annotations"], diff --git a/ravenwood/texts/framework-minus-apex-ravenwood-policies.txt b/ravenwood/texts/ravenwood-framework-policies.txt similarity index 100% rename from ravenwood/texts/framework-minus-apex-ravenwood-policies.txt rename to ravenwood/texts/ravenwood-framework-policies.txt diff --git a/ravenwood/texts/services.core-ravenwood-policies.txt b/ravenwood/texts/ravenwood-services-policies.txt similarity index 100% rename from ravenwood/texts/services.core-ravenwood-policies.txt rename to ravenwood/texts/ravenwood-services-policies.txt diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/InMemoryOutputFilter.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/InMemoryOutputFilter.kt index 5659a35170c1..2e144f5513bc 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/InMemoryOutputFilter.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/InMemoryOutputFilter.kt @@ -15,11 +15,11 @@ */ package com.android.hoststubgen.filters -import com.android.hoststubgen.UnknownApiException import com.android.hoststubgen.addNonNullElement import com.android.hoststubgen.asm.ClassNodes import com.android.hoststubgen.asm.toHumanReadableClassName import com.android.hoststubgen.asm.toHumanReadableMethodName +import com.android.hoststubgen.log // TODO: Validate all input names. @@ -48,30 +48,30 @@ class InMemoryOutputFilter( return mPolicies[getClassKey(className)] ?: super.getPolicyForClass(className) } - private fun ensureClassExists(className: String) { + private fun checkClass(className: String) { if (classes.findClass(className) == null) { - throw UnknownApiException("Unknown class $className") + log.w("Unknown class $className") } } - private fun ensureFieldExists(className: String, fieldName: String) { + private fun checkField(className: String, fieldName: String) { if (classes.findField(className, fieldName) == null) { - throw UnknownApiException("Unknown field $className.$fieldName") + log.w("Unknown field $className.$fieldName") } } - private fun ensureMethodExists( + private fun checkMethod( className: String, methodName: String, descriptor: String ) { if (classes.findMethod(className, methodName, descriptor) == null) { - throw UnknownApiException("Unknown method $className.$methodName$descriptor") + log.w("Unknown method $className.$methodName$descriptor") } } fun setPolicyForClass(className: String, policy: FilterPolicyWithReason) { - ensureClassExists(className) + checkClass(className) mPolicies[getClassKey(className)] = policy } @@ -81,7 +81,7 @@ class InMemoryOutputFilter( } fun setPolicyForField(className: String, fieldName: String, policy: FilterPolicyWithReason) { - ensureFieldExists(className, fieldName) + checkField(className, fieldName) mPolicies[getFieldKey(className, fieldName)] = policy } @@ -100,7 +100,7 @@ class InMemoryOutputFilter( descriptor: String, policy: FilterPolicyWithReason, ) { - ensureMethodExists(className, methodName, descriptor) + checkMethod(className, methodName, descriptor) mPolicies[getMethodKey(className, methodName, descriptor)] = policy } @@ -110,8 +110,8 @@ class InMemoryOutputFilter( } fun setRenameTo(className: String, methodName: String, descriptor: String, toName: String) { - ensureMethodExists(className, methodName, descriptor) - ensureMethodExists(className, toName, descriptor) + checkMethod(className, methodName, descriptor) + checkMethod(className, toName, descriptor) mRenames[getMethodKey(className, methodName, descriptor)] = toName } @@ -121,7 +121,7 @@ class InMemoryOutputFilter( } fun setNativeSubstitutionClass(from: String, to: String) { - ensureClassExists(from) + checkClass(from) // Native substitute classes may be provided from other jars, so we can't do this check. // ensureClassExists(to) -- GitLab