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 BooleanFileDataStore), 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-util", 35 "modules-utils-build", 36 "modules-utils-preconditions", 37 ], 38 visibility: [ 39 "//packages/modules/AdServices:__subpackages__", 40 "//packages/modules/ExtServices:__subpackages__", 41 "//packages/modules/OnDevicePersonalization:__subpackages__", 42 ], 43 apex_available: [ 44 "com.android.adservices", 45 "com.android.extservices", 46 "com.android.ondevicepersonalization", 47 ], 48} 49 50java_library { 51 name: "adservices-shared-error-logging", 52 min_sdk_version: "30", 53 sdk_version: "module_current", 54 srcs: [ 55 "java/com/android/adservices/shared/errorlogging/*.java", 56 ":statslog-adservices-java-gen", 57 ], 58 static_libs: [ 59 "adservices-shared-util", 60 "adservices-shared-proto-lite", 61 "adservices-shared-proto-utils", 62 "adservices-shared-common", 63 ], 64 libs: [ 65 "androidx.annotation_annotation", 66 "framework-annotations-lib", 67 "framework-statsd.stubs.module_lib", 68 "auto_value_annotations", 69 "jsr305", 70 ], 71 plugins: [ 72 "auto_value_plugin", 73 "auto_annotation_plugin", 74 ], 75 visibility: [ 76 "//packages/modules/AdServices:__subpackages__", 77 "//packages/modules/ExtServices:__subpackages__", 78 "//packages/modules/OnDevicePersonalization:__subpackages__", 79 ], 80 apex_available: [ 81 "com.android.adservices", 82 "com.android.extservices", 83 "com.android.ondevicepersonalization", 84 ], 85} 86 87java_library { 88 name: "adservices-shared-spe", 89 min_sdk_version: "30", 90 sdk_version: "module_current", 91 srcs: [ 92 "java/com/android/adservices/shared/spe/**/*.java", 93 ":statslog-adservices-java-gen", 94 ], 95 static_libs: [ 96 "adservices-shared-common", 97 "adservices-shared-error-logging", 98 "adservices-shared-proto-utils", 99 "guava", // MoreExecutors, Executors... 100 ], 101 libs: [ 102 "androidx.annotation_annotation", 103 "framework-annotations-lib", 104 "framework-statsd.stubs.module_lib", 105 "auto_value_annotations", 106 ], 107 plugins: [ 108 "auto_value_plugin", 109 "auto_annotation_plugin", 110 ], 111 visibility: [ 112 "//packages/modules/AdServices:__subpackages__", 113 "//packages/modules/ExtServices:__subpackages__", 114 "//packages/modules/OnDevicePersonalization:__subpackages__", 115 ], 116 apex_available: [ 117 "com.android.adservices", 118 "com.android.extservices", 119 "com.android.ondevicepersonalization", 120 ], 121} 122 123// NOTE: currently there's just one library for everything (which for 124// now is just ApplicationContext), but it might be better to split 125// into multiple libraries in the future (if it gets bigger and/or 126// if new classes adds external dependencies) 127java_library { 128 name: "adservices-shared-common", 129 min_sdk_version: "30", 130 sdk_version: "module_current", 131 srcs: [ 132 "java/com/android/adservices/shared/common/**/*.java", 133 ], 134 exclude_srcs: [ 135 "java/com/android/adservices/shared/common/exception/*.java", 136 ], 137 static_libs: [ 138 "adservices-shared-util", 139 "modules-utils-preconditions", 140 ], 141 libs: [ 142 "framework-annotations-lib", 143 "jsr305", // for @ThreadSafe", 144 ], 145 apex_available: [ 146 "com.android.adservices", 147 "com.android.extservices", 148 "com.android.ondevicepersonalization", 149 ], 150} 151 152java_library { 153 name: "adservices-shared-exceptions", 154 min_sdk_version: "30", 155 sdk_version: "module_current", 156 srcs: [ 157 "java/com/android/adservices/shared/common/exception/*.java", 158 ], 159 apex_available: [ 160 "com.android.adservices", 161 "com.android.extservices", 162 "com.android.ondevicepersonalization", 163 ], 164} 165 166filegroup { 167 name: "adservices-shared-flag-annotation-sources", 168 srcs: [ 169 "java/com/android/adservices/shared/common/flags/ConfigFlag.java", 170 "java/com/android/adservices/shared/common/flags/FeatureFlag.java", 171 ], 172 visibility: [ 173 "//packages/modules/AdServices/adservices:__subpackages__", 174 "//packages/modules/OnDevicePersonalization:__subpackages__", 175 ], 176 path: "java", 177} 178 179java_library { 180 name: "adservices-shared-proto-utils", 181 min_sdk_version: "30", 182 sdk_version: "module_current", 183 srcs: [ 184 "java/com/android/adservices/shared/proto/**/*.java", 185 ], 186 static_libs: [ 187 "adservices-shared-proto-lite", 188 "adservices-shared-util", 189 ], 190 libs: [ 191 "framework-annotations-lib", 192 ], 193 apex_available: [ 194 "com.android.adservices", 195 "com.android.extservices", 196 "com.android.ondevicepersonalization", 197 ], 198} 199 200java_library { 201 name: "adservices-shared-testing", 202 min_sdk_version: "30", 203 sdk_version: "module_current", 204 srcs: [ 205 "java/com/android/adservices/shared/testing/**/*.java", 206 ":adservices-shared-sideless-testing-sources", 207 ], 208 static_libs: [ 209 // TODO(b/345219434): use defaults instead? 210 "mockito-target-extended-minus-junit4", 211 "adservices-shared-common", 212 "adservices-shared-util", 213 "androidx.test.core", 214 "framework-annotations-lib", // @VisibleForTesting 215 "junit", 216 "truth", 217 ], 218 visibility: [ 219 "//packages/modules/AdServices:__subpackages__", 220 "//packages/modules/ExtServices:__subpackages__", 221 "//packages/modules/OnDevicePersonalization:__subpackages__", 222 ], 223 apex_available: [ 224 "com.android.adservices", 225 "com.android.extservices", 226 "com.android.ondevicepersonalization", 227 ], 228} 229 230java_library { 231 name: "adservices-shared-static-class-checker", 232 min_sdk_version: "30", 233 sdk_version: "module_current", 234 srcs: [ 235 "java/com/android/adservices/mockito/StaticClassChecker.java", 236 ":adservices-shared-sideless-testing-TestNamer-sources", 237 ], 238 static_libs: [ 239 "guava", // for ImmutableSet 240 ], 241 visibility: [ 242 "//packages/modules/AdServices:__subpackages__", 243 "//packages/modules/ExtServices:__subpackages__", 244 "//packages/modules/OnDevicePersonalization:__subpackages__", 245 ], 246} 247 248java_library { 249 name: "adservices-shared-mockito-expectations", 250 min_sdk_version: "30", 251 sdk_version: "module_current", 252 srcs: [ 253 // TODO(b/338132355): might be better to split into separate mockers: 254 255 // Base classes 256 "java/com/android/adservices/mockito/AbstractMocker.java", 257 "java/com/android/adservices/mockito/AbstractStaticMocker.java", 258 "java/com/android/adservices/mockito/StaticClassChecker.java", 259 260 // AndroidStaticMocker 261 "java/com/android/adservices/mockito/AndroidStaticMocker.java", 262 "java/com/android/adservices/mockito/AndroidExtendedMockitoMocker.java", 263 "java/com/android/adservices/mockito/LogInterceptor.java", 264 265 // SharedMocker 266 "java/com/android/adservices/mockito/SharedMocker.java", 267 "java/com/android/adservices/mockito/SharedMockitoMocker.java", 268 ], 269 libs: [ 270 "framework-annotations-lib", // for @Nullable 271 ], 272 static_libs: [ 273 "adservices-shared-static-class-checker", 274 "error_prone_annotations", // for @FormatMethod 275 "modules-utils-build", // for SdkLevel 276 "mockito-target-extended-minus-junit4", 277 "modules-utils-preconditions", 278 279 // TODO(b/338132355): might be better to split into separate mockers 280 281 // Need by SharedMocker.java 282 "adservices-shared-common", 283 "adservices-shared-spe", 284 "adservices-shared-testing", 285 286 // Need by AndroidStaticMocker.java 287 // "adservices-shared-testing", 288 ], 289 visibility: [ 290 "//packages/modules/AdServices:__subpackages__", 291 "//packages/modules/ExtServices:__subpackages__", 292 "//packages/modules/OnDevicePersonalization:__subpackages__", 293 ], 294 apex_available: [ 295 "com.android.adservices", 296 "com.android.extservices", 297 "com.android.ondevicepersonalization", 298 ], 299} 300 301filegroup { 302 name: "adservices-shared-extended-mockito-rule-sources", 303 srcs: [ 304 "java/com/android/adservices/mockito/AdServicesExtendedMockitoRule.java", 305 "java/com/android/adservices/mockito/ExtendedMockitoInlineCleanerRule.java", 306 ], 307 path: "java", 308 visibility: [ 309 "//packages/modules/AdServices:__subpackages__", 310 "//packages/modules/ExtServices:__subpackages__", 311 "//packages/modules/OnDevicePersonalization:__subpackages__", 312 ], 313} 314 315// NOTE: it does not include TestableDeviceConfig 316java_defaults { 317 name: "adservices-shared-extended-mockito-defaults", 318 srcs: [ 319 ":adservices-shared-extended-mockito-rule-sources", 320 ], 321 static_libs: [ 322 "adservices-shared-static-class-checker", 323 ], 324 // TODO(b/345219434): change it back to 325 // modules-utils-extended-mockito-rule-defaults once it have 326 // compile_multilib: "both", 327 defaults: ["modules-utils-testable-device-config-defaults"], 328 visibility: [ 329 "//packages/modules/AdServices:__subpackages__", 330 "//packages/modules/ExtServices:__subpackages__", 331 "//packages/modules/OnDevicePersonalization:__subpackages__", 332 ], 333} 334 335// NOTE: this util library only have one Preconditions class now. If we add more classes, we should 336// consider splitting this into a specific preconditions library. (if it gets bigger and/or if new 337// classes adds external dependencies) 338java_library { 339 name: "adservices-shared-util", 340 min_sdk_version: "30", 341 sdk_version: "module_current", 342 srcs: [ 343 "java/com/android/adservices/shared/util/*.java", 344 ], 345 libs: [ 346 "framework-annotations-lib", 347 ], 348 static_libs: [ 349 "modules-utils-build", 350 "error_prone_annotations", // For @FormatMethod 351 ], 352 apex_available: [ 353 "com.android.adservices", 354 "com.android.extservices", 355 "com.android.ondevicepersonalization", 356 ], 357} 358