1// Copyright (C) 2023 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package { 16 default_applicable_licenses: ["Android-Apache-2.0"], 17} 18 19// NOTE: currently there's just one library for everything (which in 20// reality is just AtomicFileDataStore), but it might be better to 21// split into multiple libraries in the feature (if it gets bigger 22// and/or if new classes adds external dependencies like proto support) 23java_library { 24 name: "adservices-shared-storage", 25 min_sdk_version: "30", 26 sdk_version: "module_current", 27 srcs: [ 28 "java/com/android/adservices/shared/storage/*.java", 29 ], 30 libs: [ 31 "framework-annotations-lib", 32 ], 33 static_libs: [ 34 "adservices-shared-error-logging", 35 "adservices-statsd", 36 "adservices-shared-util", 37 "modules-utils-build", 38 "modules-utils-preconditions", 39 ], 40 visibility: [ 41 "//packages/modules/AdServices:__subpackages__", 42 "//packages/modules/ExtServices:__subpackages__", 43 "//packages/modules/OnDevicePersonalization:__subpackages__", 44 ], 45 apex_available: [ 46 "com.android.adservices", 47 "com.android.extservices", 48 "com.android.ondevicepersonalization", 49 ], 50 lint: { 51 extra_check_modules: ["AdServicesProdLintChecker"], 52 baseline_filename: "lint-baseline-adservices-shared-storage.xml", // TODO(b/356688417): Clean up baseline file. 53 }, 54} 55 56java_library { 57 name: "adservices-shared-datastore", 58 min_sdk_version: "30", 59 sdk_version: "module_current", 60 srcs: [ 61 "java/com/android/adservices/shared/datastore/**/*.java", 62 "java/com/android/adservices/shared/datastore/**/*.kt", 63 ], 64 static_libs: [ 65 "libprotobuf-java-lite", 66 "androidx.datastore_datastore", 67 "androidx.datastore_datastore-guava", 68 ], 69 apex_available: [ 70 "com.android.adservices", 71 "com.android.extservices", 72 "com.android.ondevicepersonalization", 73 ], 74} 75 76java_library { 77 name: "adservices-shared-flags-backend", 78 min_sdk_version: "30", 79 sdk_version: "module_current", 80 srcs: [ 81 ":adservices-shared-sideless-flags-sources", 82 "java/com/android/adservices/shared/flags/**/*.java", 83 ], 84 libs: [ 85 "framework-configinfrastructure.stubs.module_lib", 86 ], 87 apex_available: [ 88 "com.android.adservices", 89 "com.android.extservices", 90 "com.android.ondevicepersonalization", 91 ], 92} 93 94java_library { 95 name: "adservices-statsd", 96 sdk_version: "module_current", 97 min_sdk_version: "30", 98 srcs: [ 99 ":statslog-adservices-java-gen", 100 ], 101 libs: [ 102 "androidx.annotation_annotation", 103 "framework-statsd.stubs.module_lib", 104 ], 105 visibility: [ 106 "//packages/modules/AdServices:__subpackages__", 107 "//packages/modules/ExtServices:__subpackages__", 108 "//packages/modules/OnDevicePersonalization:__subpackages__", 109 ], 110 apex_available: [ 111 "com.android.adservices", 112 "com.android.extservices", 113 "com.android.ondevicepersonalization", 114 ], 115} 116 117java_library { 118 name: "adservices-shared-error-logging", 119 min_sdk_version: "30", 120 sdk_version: "module_current", 121 srcs: [ 122 "java/com/android/adservices/shared/errorlogging/*.java", 123 ":statslog-adservices-java-gen", 124 ], 125 static_libs: [ 126 "adservices-shared-util", 127 "adservices-shared-proto-lite", 128 "adservices-shared-proto-utils", 129 "adservices-shared-common", 130 ], 131 libs: [ 132 "androidx.annotation_annotation", 133 "framework-annotations-lib", 134 "framework-statsd.stubs.module_lib", 135 "auto_value_annotations", 136 "jsr305", 137 ], 138 plugins: [ 139 "auto_value_plugin", 140 "auto_annotation_plugin", 141 ], 142 visibility: [ 143 "//packages/modules/AdServices:__subpackages__", 144 "//packages/modules/ExtServices:__subpackages__", 145 "//packages/modules/OnDevicePersonalization:__subpackages__", 146 ], 147 apex_available: [ 148 "com.android.adservices", 149 "com.android.extservices", 150 "com.android.ondevicepersonalization", 151 ], 152 lint: { 153 extra_check_modules: ["AdServicesProdLintChecker"], 154 }, 155} 156 157java_library { 158 name: "adservices-shared-spe", 159 min_sdk_version: "30", 160 sdk_version: "module_current", 161 srcs: [ 162 "java/com/android/adservices/shared/spe/**/*.java", 163 ":statslog-adservices-java-gen", 164 ], 165 static_libs: [ 166 "adservices-shared-common", 167 "adservices-shared-error-logging", 168 "adservices-shared-proto-utils", 169 "guava", // MoreExecutors, Executors... 170 ], 171 libs: [ 172 "androidx.annotation_annotation", 173 "framework-annotations-lib", 174 "framework-statsd.stubs.module_lib", 175 "auto_value_annotations", 176 ], 177 plugins: [ 178 "auto_value_plugin", 179 "auto_annotation_plugin", 180 ], 181 visibility: [ 182 "//packages/modules/AdServices:__subpackages__", 183 "//packages/modules/ExtServices:__subpackages__", 184 "//packages/modules/OnDevicePersonalization:__subpackages__", 185 ], 186 apex_available: [ 187 "com.android.adservices", 188 "com.android.extservices", 189 "com.android.ondevicepersonalization", 190 ], 191 lint: { 192 extra_check_modules: ["AdServicesProdLintChecker"], 193 baseline_filename: "lint-baseline-adservices-shared-spe.xml", // TODO(b/356688417): Clean up baseline file. 194 }, 195} 196 197// NOTE: currently there's just one library for everything (which for 198// now is just ApplicationContext), but it might be better to split 199// into multiple libraries in the future (if it gets bigger and/or 200// if new classes adds external dependencies) 201java_library { 202 name: "adservices-shared-common", 203 min_sdk_version: "30", 204 sdk_version: "module_current", 205 srcs: [ 206 "java/com/android/adservices/shared/common/**/*.java", 207 ], 208 exclude_srcs: [ 209 "java/com/android/adservices/shared/common/exception/*.java", 210 "java/com/android/adservices/shared/common/system/*.java", 211 ], 212 static_libs: [ 213 "adservices-shared-util", 214 "modules-utils-preconditions", 215 ], 216 libs: [ 217 "framework-annotations-lib", 218 "jsr305", // for @ThreadSafe", 219 ], 220 apex_available: [ 221 "com.android.adservices", 222 "com.android.extservices", 223 "com.android.ondevicepersonalization", 224 ], 225 lint: { 226 extra_check_modules: ["AdServicesProdLintChecker"], 227 }, 228} 229 230java_library { 231 name: "adservices-shared-exceptions", 232 min_sdk_version: "30", 233 sdk_version: "module_current", 234 srcs: [ 235 "java/com/android/adservices/shared/common/exception/*.java", 236 ], 237 apex_available: [ 238 "com.android.adservices", 239 "com.android.extservices", 240 "com.android.ondevicepersonalization", 241 ], 242 lint: { 243 extra_check_modules: ["AdServicesProdLintChecker"], 244 }, 245} 246 247// Provides helper to be used only by system-server classes 248java_library { 249 name: "adservices-shared-system-common", 250 min_sdk_version: "33", 251 sdk_version: "module_current", 252 srcs: [ 253 "java/com/android/adservices/shared/system/**/*.java", 254 ], 255 libs: [ 256 "error_prone_annotations", // for @FormatMethod 257 "framework-annotations-lib", // for @VisibleForTesting 258 ], 259 apex_available: [ 260 "com.android.adservices", 261 // extservices doesn't have system-server classes 262 "com.android.ondevicepersonalization", 263 ], 264 visibility: [ 265 // Available for its own tests... 266 "//packages/modules/AdServices/shared/tests/device-side:__subpackages__", 267 268 // ... and system-server projects 269 "//packages/modules/AdServices/adservices/service:__subpackages__", 270 "//packages/modules/AdServices/sdksandbox/service:__subpackages__", 271 "//packages/modules/OnDevicePersonalization/systemservice:__subpackages__", 272 ], 273 lint: { 274 extra_check_modules: ["AdServicesProdLintChecker"], 275 }, 276} 277 278filegroup { 279 name: "adservices-shared-flag-annotation-sources", 280 srcs: [ 281 "java/com/android/adservices/shared/common/flags/ConfigFlag.java", 282 "java/com/android/adservices/shared/common/flags/FeatureFlag.java", 283 ], 284 visibility: [ 285 "//packages/modules/AdServices/adservices:__subpackages__", 286 "//packages/modules/OnDevicePersonalization:__subpackages__", 287 ], 288 path: "java", 289} 290 291java_library { 292 name: "adservices-shared-proto-utils", 293 min_sdk_version: "30", 294 sdk_version: "module_current", 295 srcs: [ 296 "java/com/android/adservices/shared/util/ProtoParser.java", 297 "java/com/android/adservices/shared/errorlogging/AdServicesErrorLogger.java", 298 ], 299 static_libs: [ 300 "adservices-shared-proto-lite", 301 "adservices-shared-util", 302 "adservices-statsd", 303 ], 304 libs: [ 305 "framework-annotations-lib", 306 ], 307 apex_available: [ 308 "com.android.adservices", 309 "com.android.extservices", 310 "com.android.ondevicepersonalization", 311 ], 312 lint: { 313 extra_check_modules: ["AdServicesProdLintChecker"], 314 }, 315} 316 317// NOTE: this util library only have one Preconditions class now. If we add more classes, we should 318// consider splitting this into a specific preconditions library. (if it gets bigger and/or if new 319// classes adds external dependencies) 320java_library { 321 name: "adservices-shared-util", 322 min_sdk_version: "30", 323 sdk_version: "module_current", 324 srcs: [ 325 "java/com/android/adservices/shared/util/*.java", 326 ], 327 exclude_srcs: [ 328 "java/com/android/adservices/shared/util/ProtoParser.java", 329 ], 330 libs: [ 331 "framework-annotations-lib", 332 ], 333 static_libs: [ 334 "modules-utils-build", 335 "error_prone_annotations", // For @FormatMethod 336 ], 337 apex_available: [ 338 "com.android.adservices", 339 "com.android.extservices", 340 "com.android.ondevicepersonalization", 341 ], 342 lint: { 343 extra_check_modules: ["AdServicesProdLintChecker"], 344 }, 345} 346 347java_library { 348 name: "adservices-shared-metriclogger", 349 min_sdk_version: "30", 350 sdk_version: "module_current", 351 srcs: [ 352 "java/com/android/adservices/shared/metriclogger/**/*.java", 353 ], 354 plugins: [ 355 "auto_value_plugin", 356 "auto_annotation_plugin", 357 ], 358 libs: [ 359 "framework-annotations-lib", 360 "auto_value_annotations", 361 "guava", 362 ], 363 static_libs: [ 364 "adservices-shared-datastore", 365 "adservices-shared-error-logging", 366 "adservices-shared-util", 367 "modules-utils-build", 368 "modules-utils-preconditions", 369 "adservices-shared-proto-lite", 370 "androidx.annotation_annotation", 371 ], 372 visibility: [ 373 "//packages/modules/AdServices:__subpackages__", 374 "//packages/modules/ExtServices:__subpackages__", 375 "//packages/modules/OnDevicePersonalization:__subpackages__", 376 ], 377 apex_available: [ 378 "com.android.adservices", 379 "com.android.extservices", 380 "com.android.ondevicepersonalization", 381 ], 382 lint: { 383 extra_check_modules: ["AdServicesProdLintChecker"], 384 baseline_filename: "lint-baseline-adservices-shared-storage.xml", // TODO(b/356688417): Clean up baseline file. 385 }, 386} 387