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-statsd", 78 sdk_version: "module_current", 79 min_sdk_version: "30", 80 srcs: [ 81 ":statslog-adservices-java-gen", 82 ], 83 libs: [ 84 "androidx.annotation_annotation", 85 "framework-statsd.stubs.module_lib", 86 ], 87 visibility: [ 88 "//packages/modules/AdServices:__subpackages__", 89 "//packages/modules/ExtServices:__subpackages__", 90 "//packages/modules/OnDevicePersonalization:__subpackages__", 91 ], 92 apex_available: [ 93 "com.android.adservices", 94 "com.android.extservices", 95 "com.android.ondevicepersonalization", 96 ], 97} 98 99java_library { 100 name: "adservices-shared-error-logging", 101 min_sdk_version: "30", 102 sdk_version: "module_current", 103 srcs: [ 104 "java/com/android/adservices/shared/errorlogging/*.java", 105 ":statslog-adservices-java-gen", 106 ], 107 static_libs: [ 108 "adservices-shared-util", 109 "adservices-shared-proto-lite", 110 "adservices-shared-proto-utils", 111 "adservices-shared-common", 112 ], 113 libs: [ 114 "androidx.annotation_annotation", 115 "framework-annotations-lib", 116 "framework-statsd.stubs.module_lib", 117 "auto_value_annotations", 118 "jsr305", 119 ], 120 plugins: [ 121 "auto_value_plugin", 122 "auto_annotation_plugin", 123 ], 124 visibility: [ 125 "//packages/modules/AdServices:__subpackages__", 126 "//packages/modules/ExtServices:__subpackages__", 127 "//packages/modules/OnDevicePersonalization:__subpackages__", 128 ], 129 apex_available: [ 130 "com.android.adservices", 131 "com.android.extservices", 132 "com.android.ondevicepersonalization", 133 ], 134 lint: { 135 extra_check_modules: ["AdServicesProdLintChecker"], 136 }, 137} 138 139java_library { 140 name: "adservices-shared-spe", 141 min_sdk_version: "30", 142 sdk_version: "module_current", 143 srcs: [ 144 "java/com/android/adservices/shared/spe/**/*.java", 145 ":statslog-adservices-java-gen", 146 ], 147 static_libs: [ 148 "adservices-shared-common", 149 "adservices-shared-error-logging", 150 "adservices-shared-proto-utils", 151 "guava", // MoreExecutors, Executors... 152 ], 153 libs: [ 154 "androidx.annotation_annotation", 155 "framework-annotations-lib", 156 "framework-statsd.stubs.module_lib", 157 "auto_value_annotations", 158 ], 159 plugins: [ 160 "auto_value_plugin", 161 "auto_annotation_plugin", 162 ], 163 visibility: [ 164 "//packages/modules/AdServices:__subpackages__", 165 "//packages/modules/ExtServices:__subpackages__", 166 "//packages/modules/OnDevicePersonalization:__subpackages__", 167 ], 168 apex_available: [ 169 "com.android.adservices", 170 "com.android.extservices", 171 "com.android.ondevicepersonalization", 172 ], 173 lint: { 174 extra_check_modules: ["AdServicesProdLintChecker"], 175 baseline_filename: "lint-baseline-adservices-shared-spe.xml", // TODO(b/356688417): Clean up baseline file. 176 }, 177} 178 179// NOTE: currently there's just one library for everything (which for 180// now is just ApplicationContext), but it might be better to split 181// into multiple libraries in the future (if it gets bigger and/or 182// if new classes adds external dependencies) 183java_library { 184 name: "adservices-shared-common", 185 min_sdk_version: "30", 186 sdk_version: "module_current", 187 srcs: [ 188 "java/com/android/adservices/shared/common/**/*.java", 189 ], 190 exclude_srcs: [ 191 "java/com/android/adservices/shared/common/exception/*.java", 192 "java/com/android/adservices/shared/common/system/*.java", 193 ], 194 static_libs: [ 195 "adservices-shared-util", 196 "modules-utils-preconditions", 197 ], 198 libs: [ 199 "framework-annotations-lib", 200 "jsr305", // for @ThreadSafe", 201 ], 202 apex_available: [ 203 "com.android.adservices", 204 "com.android.extservices", 205 "com.android.ondevicepersonalization", 206 ], 207 lint: { 208 extra_check_modules: ["AdServicesProdLintChecker"], 209 }, 210} 211 212java_library { 213 name: "adservices-shared-exceptions", 214 min_sdk_version: "30", 215 sdk_version: "module_current", 216 srcs: [ 217 "java/com/android/adservices/shared/common/exception/*.java", 218 ], 219 apex_available: [ 220 "com.android.adservices", 221 "com.android.extservices", 222 "com.android.ondevicepersonalization", 223 ], 224 lint: { 225 extra_check_modules: ["AdServicesProdLintChecker"], 226 }, 227} 228 229// Provides helper to be used only by system-server classes 230java_library { 231 name: "adservices-shared-system-common", 232 min_sdk_version: "33", 233 sdk_version: "module_current", 234 srcs: [ 235 "java/com/android/adservices/shared/system/**/*.java", 236 ], 237 libs: [ 238 "error_prone_annotations", // for @FormatMethod 239 "framework-annotations-lib", // for @VisibleForTesting 240 ], 241 apex_available: [ 242 "com.android.adservices", 243 // extservices doesn't have system-server classes 244 "com.android.ondevicepersonalization", 245 ], 246 visibility: [ 247 // Available for its own tests... 248 "//packages/modules/AdServices/shared/tests/device-side:__subpackages__", 249 250 // ... and system-server projects 251 "//packages/modules/AdServices/adservices/service:__subpackages__", 252 "//packages/modules/AdServices/sdksandbox/service:__subpackages__", 253 "//packages/modules/OnDevicePersonalization/systemservice:__subpackages__", 254 ], 255 lint: { 256 extra_check_modules: ["AdServicesProdLintChecker"], 257 }, 258} 259 260filegroup { 261 name: "adservices-shared-flag-annotation-sources", 262 srcs: [ 263 "java/com/android/adservices/shared/common/flags/ConfigFlag.java", 264 "java/com/android/adservices/shared/common/flags/FeatureFlag.java", 265 ], 266 visibility: [ 267 "//packages/modules/AdServices/adservices:__subpackages__", 268 "//packages/modules/OnDevicePersonalization:__subpackages__", 269 ], 270 path: "java", 271} 272 273java_library { 274 name: "adservices-shared-proto-utils", 275 min_sdk_version: "30", 276 sdk_version: "module_current", 277 srcs: [ 278 "java/com/android/adservices/shared/util/ProtoParser.java", 279 "java/com/android/adservices/shared/errorlogging/AdServicesErrorLogger.java", 280 ], 281 static_libs: [ 282 "adservices-shared-proto-lite", 283 "adservices-shared-util", 284 "adservices-statsd", 285 ], 286 libs: [ 287 "framework-annotations-lib", 288 ], 289 apex_available: [ 290 "com.android.adservices", 291 "com.android.extservices", 292 "com.android.ondevicepersonalization", 293 ], 294 lint: { 295 extra_check_modules: ["AdServicesProdLintChecker"], 296 }, 297} 298 299// NOTE: this util library only have one Preconditions class now. If we add more classes, we should 300// consider splitting this into a specific preconditions library. (if it gets bigger and/or if new 301// classes adds external dependencies) 302java_library { 303 name: "adservices-shared-util", 304 min_sdk_version: "30", 305 sdk_version: "module_current", 306 srcs: [ 307 "java/com/android/adservices/shared/util/*.java", 308 ], 309 exclude_srcs: [ 310 "java/com/android/adservices/shared/util/ProtoParser.java", 311 ], 312 libs: [ 313 "framework-annotations-lib", 314 ], 315 static_libs: [ 316 "modules-utils-build", 317 "error_prone_annotations", // For @FormatMethod 318 ], 319 apex_available: [ 320 "com.android.adservices", 321 "com.android.extservices", 322 "com.android.ondevicepersonalization", 323 ], 324 lint: { 325 extra_check_modules: ["AdServicesProdLintChecker"], 326 }, 327} 328 329java_library { 330 name: "adservices-shared-metriclogger", 331 min_sdk_version: "30", 332 sdk_version: "module_current", 333 srcs: [ 334 "java/com/android/adservices/shared/metriclogger/**/*.java", 335 ], 336 plugins: [ 337 "auto_value_plugin", 338 "auto_annotation_plugin", 339 ], 340 libs: [ 341 "framework-annotations-lib", 342 "auto_value_annotations", 343 "guava", 344 ], 345 static_libs: [ 346 "adservices-shared-error-logging", 347 "adservices-shared-util", 348 "modules-utils-build", 349 "modules-utils-preconditions", 350 "adservices-shared-proto-lite", 351 "androidx.annotation_annotation", 352 ], 353 visibility: [ 354 "//packages/modules/AdServices:__subpackages__", 355 "//packages/modules/ExtServices:__subpackages__", 356 "//packages/modules/OnDevicePersonalization:__subpackages__", 357 ], 358 apex_available: [ 359 "com.android.adservices", 360 "com.android.extservices", 361 "com.android.ondevicepersonalization", 362 ], 363 lint: { 364 extra_check_modules: ["AdServicesProdLintChecker"], 365 baseline_filename: "lint-baseline-adservices-shared-storage.xml", // TODO(b/356688417): Clean up baseline file. 366 }, 367} 368