diff --git a/apex/appsearch/framework/Android.bp b/apex/appsearch/framework/Android.bp index b8fce4f10cd0b..cd9be9bb8be72 100644 --- a/apex/appsearch/framework/Android.bp +++ b/apex/appsearch/framework/Android.bp @@ -65,5 +65,8 @@ java_sdk_library { }, jarjar_rules: "jarjar-rules.txt", apex_available: ["com.android.appsearch"], + impl_library_visibility: [ + "//frameworks/base/apex/appsearch/service", + ], unsafe_ignore_missing_latest_api: true, // TODO(b/146218515) should be removed } diff --git a/apex/appsearch/service/Android.bp b/apex/appsearch/service/Android.bp index 8d606c5e61cd2..e5675f688fd73 100644 --- a/apex/appsearch/service/Android.bp +++ b/apex/appsearch/service/Android.bp @@ -28,31 +28,41 @@ genrule { } java_library { - name: "service-appsearch", - srcs: [ - "java/**/*.java", - ":statslog-appsearch-java-gen", + name: "statslog-appsearch-lib", + srcs: [":statslog-appsearch-java-gen"], + libs: [ + "framework-statsd.stubs.module_lib", ], + sdk_version: "system_server_current", + apex_available: ["com.android.appsearch"], +} + +java_library { + name: "service-appsearch", + srcs: ["java/**/*.java"], + sdk_version: "system_server_current", static_libs: [ "icing-java-proto-lite", "libicing-java", - // This list must be kept in sync with jarjar.txt + "statslog-appsearch-lib", + // Entries below this line are outside of the appsearch package tree and must be kept in + // sync with jarjar.txt "modules-utils-preconditions", ], libs: [ - "framework", - "framework-appsearch", - "framework-statsd.stubs.module_lib", - "services.core", - "services.usage", + "framework-appsearch.impl", "unsupportedappusage", // TODO(b/181887768) should be removed ], required: [ "libicing", ], + defaults: ["framework-system-server-module-defaults"], + permitted_packages: [ + "com.android.server.appsearch", + "com.google.android.icing", + ], jarjar_rules: "jarjar-rules.txt", visibility: [ - "//frameworks/base/apex/appsearch:__subpackages__", // These are required until appsearch is properly unbundled. "//frameworks/base/services/tests/mockingservicestests", "//frameworks/base/services/tests/servicestests", diff --git a/apex/appsearch/service/jarjar-rules.txt b/apex/appsearch/service/jarjar-rules.txt index 569d7c5584714..c79ea22ca541c 100644 --- a/apex/appsearch/service/jarjar-rules.txt +++ b/apex/appsearch/service/jarjar-rules.txt @@ -1,5 +1,8 @@ +# Rename all icing classes to match our module name. OEMs could start using icing lib for some other +# purpose in system service, which would cause class collisions when loading our apex into the +# system service. rule com.google.protobuf.** com.android.server.appsearch.protobuf.@1 -rule com.google.android.icing.proto.** com.android.server.appsearch.proto.@1 +rule com.google.android.icing.proto.** com.android.server.appsearch.icing.proto.@1 # Rename all com.android.internal.util classes to prevent class name collisions # between this module and the other versions of the utility classes linked into diff --git a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java index 481d51eaf099e..ec37c3f68aaa8 100644 --- a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java +++ b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java @@ -82,7 +82,10 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -/** TODO(b/142567528): add comments when implement this class */ +/** + * The main service implementation which contains AppSearch's platform functionality. + * @hide + */ public class AppSearchManagerService extends SystemService { private static final String TAG = "AppSearchManagerService"; private final Context mContext; diff --git a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchImplTest.java b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchImplTest.java index 02bb168dbde61..330b1a74d879b 100644 --- a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchImplTest.java +++ b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchImplTest.java @@ -43,19 +43,19 @@ import androidx.test.core.app.ApplicationProvider; import com.android.server.appsearch.external.localstorage.converter.GenericDocumentToProtoConverter; import com.android.server.appsearch.external.localstorage.stats.InitializeStats; import com.android.server.appsearch.external.localstorage.util.PrefixUtil; -import com.android.server.appsearch.proto.DocumentProto; -import com.android.server.appsearch.proto.GetOptimizeInfoResultProto; -import com.android.server.appsearch.proto.PersistType; -import com.android.server.appsearch.proto.PropertyConfigProto; -import com.android.server.appsearch.proto.PropertyProto; -import com.android.server.appsearch.proto.PutResultProto; -import com.android.server.appsearch.proto.SchemaProto; -import com.android.server.appsearch.proto.SchemaTypeConfigProto; -import com.android.server.appsearch.proto.SearchResultProto; -import com.android.server.appsearch.proto.SearchSpecProto; -import com.android.server.appsearch.proto.StatusProto; -import com.android.server.appsearch.proto.StringIndexingConfig; -import com.android.server.appsearch.proto.TermMatchType; +import com.android.server.appsearch.icing.proto.DocumentProto; +import com.android.server.appsearch.icing.proto.GetOptimizeInfoResultProto; +import com.android.server.appsearch.icing.proto.PersistType; +import com.android.server.appsearch.icing.proto.PropertyConfigProto; +import com.android.server.appsearch.icing.proto.PropertyProto; +import com.android.server.appsearch.icing.proto.PutResultProto; +import com.android.server.appsearch.icing.proto.SchemaProto; +import com.android.server.appsearch.icing.proto.SchemaTypeConfigProto; +import com.android.server.appsearch.icing.proto.SearchResultProto; +import com.android.server.appsearch.icing.proto.SearchSpecProto; +import com.android.server.appsearch.icing.proto.StatusProto; +import com.android.server.appsearch.icing.proto.StringIndexingConfig; +import com.android.server.appsearch.icing.proto.TermMatchType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchLoggerTest.java b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchLoggerTest.java index 9b75561fd2ec1..080c375ac7c6c 100644 --- a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchLoggerTest.java +++ b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/AppSearchLoggerTest.java @@ -32,15 +32,15 @@ import com.android.server.appsearch.external.localstorage.stats.InitializeStats; import com.android.server.appsearch.external.localstorage.stats.PutDocumentStats; import com.android.server.appsearch.external.localstorage.stats.RemoveStats; import com.android.server.appsearch.external.localstorage.stats.SearchStats; -import com.android.server.appsearch.proto.DeleteStatsProto; -import com.android.server.appsearch.proto.DocumentProto; -import com.android.server.appsearch.proto.InitializeStatsProto; -import com.android.server.appsearch.proto.PutDocumentStatsProto; -import com.android.server.appsearch.proto.PutResultProto; -import com.android.server.appsearch.proto.QueryStatsProto; -import com.android.server.appsearch.proto.ScoringSpecProto; -import com.android.server.appsearch.proto.StatusProto; -import com.android.server.appsearch.proto.TermMatchType; +import com.android.server.appsearch.icing.proto.DeleteStatsProto; +import com.android.server.appsearch.icing.proto.DocumentProto; +import com.android.server.appsearch.icing.proto.InitializeStatsProto; +import com.android.server.appsearch.icing.proto.PutDocumentStatsProto; +import com.android.server.appsearch.icing.proto.PutResultProto; +import com.android.server.appsearch.icing.proto.QueryStatsProto; +import com.android.server.appsearch.icing.proto.ScoringSpecProto; +import com.android.server.appsearch.icing.proto.StatusProto; +import com.android.server.appsearch.icing.proto.TermMatchType; import com.google.common.collect.ImmutableList; diff --git a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/FrameworkOptimizeStrategyTest.java b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/FrameworkOptimizeStrategyTest.java index f30cbb8c51583..de71d21e6eb19 100644 --- a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/FrameworkOptimizeStrategyTest.java +++ b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/FrameworkOptimizeStrategyTest.java @@ -22,8 +22,8 @@ import static com.android.server.appsearch.external.localstorage.FrameworkOptimi import static com.google.common.truth.Truth.assertThat; -import com.android.server.appsearch.proto.GetOptimizeInfoResultProto; -import com.android.server.appsearch.proto.StatusProto; +import com.android.server.appsearch.icing.proto.GetOptimizeInfoResultProto; +import com.android.server.appsearch.icing.proto.StatusProto; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/GenericDocumentToProtoConverterTest.java b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/GenericDocumentToProtoConverterTest.java index ada49ff4b97aa..204fc54fab5b0 100644 --- a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/GenericDocumentToProtoConverterTest.java +++ b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/GenericDocumentToProtoConverterTest.java @@ -20,10 +20,10 @@ import static com.google.common.truth.Truth.assertThat; import android.app.appsearch.GenericDocument; -import com.android.server.appsearch.proto.DocumentProto; -import com.android.server.appsearch.proto.PropertyConfigProto; -import com.android.server.appsearch.proto.PropertyProto; -import com.android.server.appsearch.proto.SchemaTypeConfigProto; +import com.android.server.appsearch.icing.proto.DocumentProto; +import com.android.server.appsearch.icing.proto.PropertyConfigProto; +import com.android.server.appsearch.icing.proto.PropertyProto; +import com.android.server.appsearch.icing.proto.SchemaTypeConfigProto; import com.android.server.appsearch.protobuf.ByteString; import com.google.common.collect.ImmutableMap; diff --git a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SchemaToProtoConverterTest.java b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SchemaToProtoConverterTest.java index 77e01350cc4db..ebceba4ffa71a 100644 --- a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SchemaToProtoConverterTest.java +++ b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SchemaToProtoConverterTest.java @@ -20,10 +20,10 @@ import static com.google.common.truth.Truth.assertThat; import android.app.appsearch.AppSearchSchema; -import com.android.server.appsearch.proto.PropertyConfigProto; -import com.android.server.appsearch.proto.SchemaTypeConfigProto; -import com.android.server.appsearch.proto.StringIndexingConfig; -import com.android.server.appsearch.proto.TermMatchType; +import com.android.server.appsearch.icing.proto.PropertyConfigProto; +import com.android.server.appsearch.icing.proto.SchemaTypeConfigProto; +import com.android.server.appsearch.icing.proto.StringIndexingConfig; +import com.android.server.appsearch.icing.proto.TermMatchType; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SnippetTest.java b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SnippetTest.java index 64a670dcdb385..992961c0c23a2 100644 --- a/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SnippetTest.java +++ b/services/tests/servicestests/src/com/android/server/appsearch/external/localstorage/converter/SnippetTest.java @@ -22,12 +22,12 @@ import android.app.appsearch.SearchResult; import android.app.appsearch.SearchResultPage; import com.android.server.appsearch.external.localstorage.util.PrefixUtil; -import com.android.server.appsearch.proto.DocumentProto; -import com.android.server.appsearch.proto.PropertyProto; -import com.android.server.appsearch.proto.SchemaTypeConfigProto; -import com.android.server.appsearch.proto.SearchResultProto; -import com.android.server.appsearch.proto.SnippetMatchProto; -import com.android.server.appsearch.proto.SnippetProto; +import com.android.server.appsearch.icing.proto.DocumentProto; +import com.android.server.appsearch.icing.proto.PropertyProto; +import com.android.server.appsearch.icing.proto.SchemaTypeConfigProto; +import com.android.server.appsearch.icing.proto.SearchResultProto; +import com.android.server.appsearch.icing.proto.SnippetMatchProto; +import com.android.server.appsearch.icing.proto.SnippetProto; import org.junit.Test;