Skip to content

Commit baeb6e7

Browse files
authored
Merge pull request #2999 from DataDog/tvaleev/feature/RUM-12638-module-for-cronet
[RUM-12638][Cronet]: Cronet integration module and sample app support
2 parents ac6a9f5 + 600a0a4 commit baeb6e7

File tree

18 files changed

+356
-4
lines changed

18 files changed

+356
-4
lines changed

LICENSE-3rdparty.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import,com.benasher44,MIT,"Copyright (c) 2019 Ben Asher"
5050
import,com.github.bumptech.glide,"BSD 3-Clause","Copyright 2014 Google, Inc. All rights reserved, Copyright (c) 2013. Bump Technologies Inc. All Rights Reserved."
5151
import,com.facebook.fresco,MIT,"Copyright (c) Facebook, Inc. and its affiliates"
5252
import,com.github.spotbugs,"GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1","Copyright (C) 1991, 1999 Free Software Foundation, Inc."
53+
import,com.google.android.gms,Apache-2.0,Copyright 2018 The Android Open Source Project
5354
import,com.google.android.material,Apache-2.0,Copyright 2018 The Android Open Source Project
5455
import,com.google.code.gson,Apache-2.0,Copyright 2008 Google Inc
5556
import,com.google.guava,Apache-2.0,Copyright 2009 The Guava Authors
@@ -70,6 +71,7 @@ import,io.reactivex.rxjava3.android,Apache-2.0,Copyright 2015 The RxAndroid auth
7071
import,org.jetbrains,Apache-2.0,Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors
7172
import,org.jetbrains.kotlin,Apache-2.0,Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors
7273
import,org.jetbrains.kotlinx,Apache-2.0,Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors
74+
import,org.chromium.net,Apache-2.0,"Copyright 2015 The Chromium Authors"
7375
import,org.reactivestreams,CC0,Copyright 2014 Reactive Streams
7476
import(test),androidx.autofill,Apache-2.0,Copyright 2018 The Android Open Source Project
7577
import(test),androidx.concurrent,Apache-2.0,Copyright 2018 The Android Open Source Project

ci/pipelines/default-pipeline.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ analysis:detekt-custom:
114114
- ./gradlew :features:dd-sdk-android-webview:customDetektRules
115115
- ./gradlew :integrations:dd-sdk-android-coil:customDetektRules
116116
- ./gradlew :integrations:dd-sdk-android-compose:customDetektRules
117+
- ./gradlew :integrations:dd-sdk-android-cronet:customDetektRules
117118
- ./gradlew :integrations:dd-sdk-android-fresco:customDetektRules
118119
- ./gradlew :integrations:dd-sdk-android-glide:customDetektRules
119120
- ./gradlew :integrations:dd-sdk-android-okhttp:customDetektRules
@@ -787,6 +788,23 @@ publish:release-compose:
787788
paths:
788789
- integrations/dd-sdk-android-compose/verification-metadata.xml
789790

791+
publish:release-cronet:
792+
tags: [ "arch:amd64" ]
793+
only:
794+
- tags
795+
- develop
796+
image: $CI_IMAGE_DOCKER
797+
stage: publish
798+
timeout: 30m
799+
script:
800+
- !reference [.snippets, set-publishing-credentials]
801+
- ./gradlew :integrations:dd-sdk-android-cronet:publishToSonatype closeSonatypeStagingRepository --stacktrace --no-daemon
802+
artifacts:
803+
when: on_success
804+
expire_in: 7 days
805+
paths:
806+
- integrations/dd-sdk-android-cronet/verification-metadata.xml
807+
790808
publish:release-fresco:
791809
tags: [ "arch:amd64" ]
792810
only:
@@ -1088,6 +1106,7 @@ notify:merge-verification-metadata:
10881106
- publish:release-webview
10891107
- publish:release-coil
10901108
- publish:release-compose
1109+
- publish:release-cronet
10911110
- publish:release-fresco
10921111
- publish:release-glide
10931112
- publish:release-trace-coroutines

gradle/libs.versions.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
[versions]
22
# Commons
3-
kotlin = "2.0.21"
4-
kotlinSP = "2.0.21-1.0.28"
53
apollo = "4.3.3"
4+
cronetApi = "141.7340.3"
5+
cronetPlayServices = "18.1.1"
66
gson = "2.10.1"
7-
okHttp = "4.12.0"
7+
kotlin = "2.0.21"
8+
kotlinSP = "2.0.21-1.0.28"
89
kronosNTP = "0.0.1-alpha11"
910
kotlinxSerialization = "1.6.3"
11+
okHttp = "4.12.0"
1012

1113
# Android
1214
adapterDelegates = "4.3.2"
@@ -132,6 +134,8 @@ kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin"
132134
kotlinxSerializationJson = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
133135

134136
okHttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okHttp" }
137+
cronetApi = { module = "org.chromium.net:cronet-api", version.ref = "cronetApi" }
138+
cronetPlayServices = { module = "com.google.android.gms:play-services-cronet", version.ref = "cronetPlayServices" }
135139
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
136140
kronosNTP = { module = "com.lyft.kronos:kronos-android", version.ref = "kronosNTP" }
137141
assertJ = { module = "org.assertj:assertj-core", version.ref = "assertJ" }
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/build
2+
*.iml
3+
.gradle
4+
local.properties
5+
/.idea
6+
.DS_Store
7+
/captures
8+
.externalNativeBuild

integrations/dd-sdk-android-cronet/api/apiSurface

Whitespace-only changes.

integrations/dd-sdk-android-cronet/api/dd-sdk-android-cronet.api

Whitespace-only changes.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/*
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2016-Present Datadog, Inc.
5+
*/
6+
7+
import com.datadog.gradle.config.androidLibraryConfig
8+
import com.datadog.gradle.config.dependencyUpdateConfig
9+
import com.datadog.gradle.config.detektCustomConfig
10+
import com.datadog.gradle.config.javadocConfig
11+
import com.datadog.gradle.config.junitConfig
12+
import com.datadog.gradle.config.kotlinConfig
13+
import com.datadog.gradle.config.publishingConfig
14+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
15+
16+
plugins {
17+
// Build
18+
id("com.android.library")
19+
kotlin("android")
20+
21+
// Publish
22+
`maven-publish`
23+
signing
24+
id("org.jetbrains.dokka-javadoc")
25+
26+
// Analysis tools
27+
id("com.github.ben-manes.versions")
28+
29+
// Tests
30+
id("de.mobilej.unmock")
31+
id("org.jetbrains.kotlinx.kover")
32+
33+
// Internal Generation
34+
id("com.datadoghq.dependency-license")
35+
id("apiSurface")
36+
id("transitiveDependencies")
37+
id("verificationXml")
38+
id("binary-compatibility-validator")
39+
}
40+
41+
android {
42+
namespace = "com.datadog.android.cronet"
43+
}
44+
45+
dependencies {
46+
api(libs.cronetApi)
47+
// implementation(libs.cronetPlayServices)
48+
49+
implementation(libs.kotlin)
50+
implementation(libs.androidXAnnotation)
51+
52+
implementation(project(":dd-sdk-android-internal"))
53+
implementation(project(":features:dd-sdk-android-rum"))
54+
implementation(project(":features:dd-sdk-android-trace"))
55+
56+
testImplementation(project(":tools:unit")) {
57+
attributes {
58+
attribute(
59+
com.android.build.api.attributes.ProductFlavorAttr.of("platform"),
60+
objects.named("jvm")
61+
)
62+
}
63+
}
64+
testImplementation(testFixtures(project(":dd-sdk-android-core")))
65+
testImplementation(testFixtures(project(":dd-sdk-android-internal")))
66+
testImplementation(testFixtures(project(":features:dd-sdk-android-trace")))
67+
testImplementation(libs.bundles.jUnit5)
68+
testImplementation(libs.bundles.testTools)
69+
unmock(libs.robolectric)
70+
}
71+
72+
unMock {
73+
keepStartingWith("org.json")
74+
}
75+
76+
kotlinConfig(jvmBytecodeTarget = JvmTarget.JVM_11)
77+
androidLibraryConfig()
78+
junitConfig()
79+
javadocConfig()
80+
dependencyUpdateConfig()
81+
publishingConfig(
82+
"A Cronet monitoring integration to use with the Datadog monitoring library for Android applications."
83+
)
84+
detektCustomConfig()
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Dependencies List
2+
3+
androidx.annotation:annotation-jvm:1.9.1 : 59 Kb
4+
org.chromium.net:cronet-api:141.7340.3 : 77 Kb
5+
org.chromium.net:cronet-shared:141.7340.3 : 92 Kb
6+
org.jetbrains.kotlin:kotlin-stdlib:2.0.21 : 1706 Kb
7+
org.jetbrains:annotations:13.0 : 17 Kb
8+
9+
Total transitive dependencies size : 1952 Kb
10+

local_ci.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,13 @@ if [[ $CLEANUP == 1 ]]; then
105105
rm -rf features/dd-sdk-android-session-replay-compose/build/
106106
rm -rf features/dd-sdk-android-session-replay-material/build/
107107
rm -rf features/dd-sdk-android-trace/build/
108+
rm -rf features/dd-sdk-android-trace-api/build/
109+
rm -rf features/dd-sdk-android-trace-internal/build/
108110
rm -rf features/dd-sdk-android-trace-otel/build/
109111
rm -rf features/dd-sdk-android-webview/build/
110112
rm -rf integrations/dd-sdk-android-coil/build/
111113
rm -rf integrations/dd-sdk-android-compose/build/
114+
rm -rf integrations/dd-sdk-android-cronet/build/
112115
rm -rf integrations/dd-sdk-android-fresco/build/
113116
rm -rf integrations/dd-sdk-android-glide/build/
114117
rm -rf integrations/dd-sdk-android-rum-coroutines/build/

sample/kotlin/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ dependencies {
168168
implementation(project(":integrations:dd-sdk-android-fresco"))
169169
implementation(project(":integrations:dd-sdk-android-sqldelight"))
170170
implementation(project(":integrations:dd-sdk-android-compose"))
171+
implementation(project(":integrations:dd-sdk-android-cronet"))
171172
implementation(project(":integrations:dd-sdk-android-okhttp"))
172173
implementation(project(":integrations:dd-sdk-android-okhttp-otel"))
173174
implementation(project(":tools:benchmark"))
@@ -182,6 +183,7 @@ dependencies {
182183

183184
// Android dependencies
184185
implementation(libs.androidXMultidex)
186+
implementation(libs.cronetPlayServices)
185187
implementation(libs.bundles.androidXNavigation)
186188
implementation(libs.androidXAppCompat)
187189
implementation(libs.bundles.androidXCompose)

0 commit comments

Comments
 (0)