Skip to content

Commit c0d65cf

Browse files
api: hide symbols from public api (#1278)
1 parent 7172300 commit c0d65cf

7 files changed

Lines changed: 46 additions & 50 deletions

File tree

android-agent/api/android-agent.api

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -87,27 +87,3 @@ public final class io/opentelemetry/android/agent/session/SessionConfig$Companio
8787
public final fun withDefaults ()Lio/opentelemetry/android/agent/session/SessionConfig;
8888
}
8989

90-
public abstract interface class io/opentelemetry/android/agent/session/SessionIdGenerator {
91-
public abstract fun generateSessionId ()Ljava/lang/String;
92-
}
93-
94-
public final class io/opentelemetry/android/agent/session/SessionIdGenerator$DEFAULT : io/opentelemetry/android/agent/session/SessionIdGenerator {
95-
public static final field INSTANCE Lio/opentelemetry/android/agent/session/SessionIdGenerator$DEFAULT;
96-
public fun generateSessionId ()Ljava/lang/String;
97-
}
98-
99-
public abstract interface class io/opentelemetry/android/agent/session/SessionStorage {
100-
public abstract fun get ()Lio/opentelemetry/android/session/Session;
101-
public abstract fun save (Lio/opentelemetry/android/session/Session;)V
102-
}
103-
104-
public final class io/opentelemetry/android/agent/session/SessionStorage$InMemory : io/opentelemetry/android/agent/session/SessionStorage {
105-
public fun <init> ()V
106-
public fun <init> (Lio/opentelemetry/android/session/Session;)V
107-
public synthetic fun <init> (Lio/opentelemetry/android/session/Session;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
108-
public fun get ()Lio/opentelemetry/android/session/Session;
109-
public final fun getSession ()Lio/opentelemetry/android/session/Session;
110-
public fun save (Lio/opentelemetry/android/session/Session;)V
111-
public final fun setSession (Lio/opentelemetry/android/session/Session;)V
112-
}
113-
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.android.agent.session
7+
8+
import io.opentelemetry.api.trace.TraceId
9+
import kotlin.random.Random
10+
11+
internal class DefaultSessionIdGenerator(
12+
private val random: Random,
13+
) : SessionIdGenerator {
14+
override fun generateSessionId(): String {
15+
// The OTel TraceId has exactly the same format as a RUM SessionId, so let's re-use it here,
16+
// rather than re-inventing the wheel.
17+
return TraceId.fromLongs(random.nextLong(), random.nextLong())
18+
}
19+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.android.agent.session
7+
8+
import io.opentelemetry.android.session.Session
9+
10+
internal class InMemorySessionStorage(
11+
@Volatile var session: Session = Session.NONE,
12+
) : SessionStorage {
13+
override fun get(): Session = session
14+
15+
override fun save(newSession: Session) {
16+
this.session = newSession
17+
}
18+
}

android-agent/src/main/kotlin/io/opentelemetry/android/agent/session/SessionIdGenerator.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,6 @@
55

66
package io.opentelemetry.android.agent.session
77

8-
import io.opentelemetry.api.trace.TraceId
9-
import java.util.Random
10-
11-
interface SessionIdGenerator {
8+
internal fun interface SessionIdGenerator {
129
fun generateSessionId(): String
13-
14-
object DEFAULT : SessionIdGenerator {
15-
override fun generateSessionId(): String {
16-
val random = Random()
17-
// The OTel TraceId has exactly the same format as a RUM SessionId, so let's re-use it here,
18-
// rather than re-inventing the wheel.
19-
return TraceId.fromLongs(random.nextLong(), random.nextLong())
20-
}
21-
}
2210
}

android-agent/src/main/kotlin/io/opentelemetry/android/agent/session/SessionIdTimeoutHandler.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package io.opentelemetry.android.agent.session
77

8+
import io.opentelemetry.android.Incubating
89
import io.opentelemetry.android.internal.services.applifecycle.ApplicationStateListener
910
import io.opentelemetry.sdk.common.Clock
1011
import kotlin.time.Duration
@@ -34,6 +35,7 @@ internal class SessionIdTimeoutHandler(
3435
private var state = State.FOREGROUND
3536

3637
// for testing
38+
@OptIn(Incubating::class)
3739
internal constructor(sessionConfig: SessionConfig) : this(
3840
Clock.getDefault(),
3941
sessionConfig.backgroundInactivityTimeout,

android-agent/src/main/kotlin/io/opentelemetry/android/agent/session/SessionManager.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,21 @@
55

66
package io.opentelemetry.android.agent.session
77

8+
import io.opentelemetry.android.Incubating
89
import io.opentelemetry.android.session.Session
910
import io.opentelemetry.android.session.SessionObserver
1011
import io.opentelemetry.android.session.SessionProvider
1112
import io.opentelemetry.android.session.SessionPublisher
1213
import io.opentelemetry.sdk.common.Clock
1314
import java.util.Collections.synchronizedList
15+
import kotlin.random.Random
1416
import kotlin.time.Duration
1517

1618
internal class SessionManager(
1719
private val clock: Clock = Clock.getDefault(),
18-
private val sessionStorage: SessionStorage = SessionStorage.InMemory(),
20+
private val sessionStorage: SessionStorage = InMemorySessionStorage(),
1921
private val timeoutHandler: SessionIdTimeoutHandler,
20-
private val idGenerator: SessionIdGenerator = SessionIdGenerator.DEFAULT,
22+
private val idGenerator: SessionIdGenerator = DefaultSessionIdGenerator(Random.Default),
2123
private val maxSessionLifetime: Duration,
2224
) : SessionProvider,
2325
SessionPublisher {
@@ -70,6 +72,7 @@ internal class SessionManager(
7072
}
7173

7274
companion object {
75+
@OptIn(Incubating::class)
7376
@JvmStatic
7477
fun create(
7578
timeoutHandler: SessionIdTimeoutHandler,

android-agent/src/main/kotlin/io/opentelemetry/android/agent/session/SessionStorage.kt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,8 @@ package io.opentelemetry.android.agent.session
77

88
import io.opentelemetry.android.session.Session
99

10-
interface SessionStorage {
10+
internal interface SessionStorage {
1111
fun get(): Session
1212

1313
fun save(newSession: Session)
14-
15-
class InMemory(
16-
@Volatile var session: Session = Session.NONE,
17-
) : SessionStorage {
18-
override fun get(): Session = session
19-
20-
override fun save(newSession: Session) {
21-
this.session = newSession
22-
}
23-
}
2414
}

0 commit comments

Comments
 (0)