Skip to content

Commit 3e5cd47

Browse files
authored
Remove common dependency in AppCheck Interop (#4782)
* Remove common dependency in appcheck interop * Formatting * Actually fix codestyle * Update build gradles and versions * Bump play integrity and safetynet as well * Documentation nit * Resolve storage test failure * Update database, rename to InteropAppCheckTokenProvider * Style fixes * Fully qualify doc link and remove import * Revert safetynet update
1 parent 7e49209 commit 3e5cd47

File tree

42 files changed

+127
-131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+127
-131
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=16.1.3
1+
version=17.0.0
22
latestReleasedVersion=16.1.2
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=16.1.3
1+
version=17.0.0
22
latestReleasedVersion=16.1.2

appcheck/firebase-appcheck-interop/api.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.google.firebase.appcheck {
33

44
public abstract class AppCheckTokenResult {
55
ctor public AppCheckTokenResult();
6-
method @Nullable public abstract com.google.firebase.FirebaseException getError();
6+
method @Nullable public abstract Exception getError();
77
method @NonNull public abstract String getToken();
88
}
99

appcheck/firebase-appcheck-interop/firebase-appcheck-interop.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ android {
4242
}
4343

4444
dependencies {
45-
implementation 'com.google.firebase:firebase-common:20.3.1'
46-
implementation 'com.google.firebase:firebase-components:17.1.0'
4745
implementation 'com.google.android.gms:play-services-base:18.0.1'
4846
implementation 'com.google.android.gms:play-services-tasks:18.0.1'
4947

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=16.1.2
1+
version=17.0.0
22
latestReleasedVersion=16.1.1

appcheck/firebase-appcheck-interop/src/main/java/com/google/firebase/appcheck/AppCheckTokenResult.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@
1616

1717
import androidx.annotation.NonNull;
1818
import androidx.annotation.Nullable;
19-
import com.google.firebase.FirebaseException;
2019

2120
/**
2221
* Class to hold the result emitted by a Firebase App Check service application verification
2322
* attempt. The result will always contain a token, which will either be a valid raw JWT attesting
24-
* application identity, or a dummy value. The result may optionally contain a {@link
25-
* FirebaseException} if application verification does not succeed.
23+
* application identity, or a dummy value. The result may optionally contain an {@link Exception} if
24+
* application verification does not succeed.
2625
*/
2726
public abstract class AppCheckTokenResult {
2827

@@ -34,9 +33,9 @@ public abstract class AppCheckTokenResult {
3433
public abstract String getToken();
3534

3635
/**
37-
* Returns the {@link FirebaseException} if the {@link
38-
* com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider} failed to obtain a token.
36+
* Returns the {@link Exception} if the {@link
37+
* com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider} failed to obtain a token.
3938
*/
4039
@Nullable
41-
public abstract FirebaseException getError();
40+
public abstract Exception getError();
4241
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.google.firebase.appcheck.AppCheckTokenResult;
2020

2121
/** @hide */
22-
public interface InternalAppCheckTokenProvider {
22+
public interface InteropAppCheckTokenProvider {
2323

2424
/**
2525
* Requests an {@link AppCheckTokenResult} from the installed {@code AppCheckFactory}. This will
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=16.1.3
1+
version=17.0.0
22
latestReleasedVersion=16.1.2

appcheck/firebase-appcheck/api.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ package com.google.firebase.appcheck {
1515
method @NonNull public abstract String getToken();
1616
}
1717

18-
public abstract class FirebaseAppCheck implements com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider {
18+
public abstract class FirebaseAppCheck implements com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider {
1919
ctor public FirebaseAppCheck();
2020
method public abstract void addAppCheckListener(@NonNull com.google.firebase.appcheck.FirebaseAppCheck.AppCheckListener);
2121
method @NonNull public abstract com.google.android.gms.tasks.Task<com.google.firebase.appcheck.AppCheckToken> getAppCheckToken(boolean);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=16.1.3
1+
version=17.0.0
22
latestReleasedVersion=16.1.2

appcheck/firebase-appcheck/src/androidTest/java/com/google/firebase/appcheck/StrictModeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import androidx.test.ext.junit.runners.AndroidJUnit4;
1919
import com.google.firebase.FirebaseApp;
2020
import com.google.firebase.FirebaseOptions;
21-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
21+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2222
import com.google.firebase.testing.integ.StrictModeRule;
2323
import org.junit.Rule;
2424
import org.junit.Test;
@@ -43,7 +43,7 @@ public void initializingFirebaseAppcheck_shouldNotViolateStrictMode() {
4343
.build(),
4444
"hello");
4545
app.get(FirebaseAppCheck.class);
46-
app.get(InternalAppCheckTokenProvider.class);
46+
app.get(InteropAppCheckTokenProvider.class);
4747
});
4848
}
4949
}

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/FirebaseAppCheck.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import com.google.android.gms.tasks.Task;
2020
import com.google.firebase.FirebaseApp;
2121
import com.google.firebase.appcheck.interop.AppCheckTokenListener;
22-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
22+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2323

24-
public abstract class FirebaseAppCheck implements InternalAppCheckTokenProvider {
24+
public abstract class FirebaseAppCheck implements InteropAppCheckTokenProvider {
2525

2626
/** Gets the default instance of {@code FirebaseAppCheck}. */
2727
@NonNull

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/FirebaseAppCheckRegistrar.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.google.firebase.annotations.concurrent.Lightweight;
2222
import com.google.firebase.annotations.concurrent.UiThread;
2323
import com.google.firebase.appcheck.internal.DefaultFirebaseAppCheck;
24-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
24+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2525
import com.google.firebase.components.Component;
2626
import com.google.firebase.components.ComponentRegistrar;
2727
import com.google.firebase.components.Dependency;
@@ -53,7 +53,7 @@ public List<Component<?>> getComponents() {
5353
Qualified.qualified(Blocking.class, ScheduledExecutorService.class);
5454

5555
return Arrays.asList(
56-
Component.builder(FirebaseAppCheck.class, (InternalAppCheckTokenProvider.class))
56+
Component.builder(FirebaseAppCheck.class, (InteropAppCheckTokenProvider.class))
5757
.name(LIBRARY_NAME)
5858
.add(Dependency.required(FirebaseApp.class))
5959
.add(Dependency.required(uiExecutor))

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/DefaultAppCheckTokenResult.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public String getToken() {
5858

5959
@Nullable
6060
@Override
61-
public FirebaseException getError() {
61+
public Exception getError() {
6262
return error;
6363
}
6464
}

firebase-database/firebase-database.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ dependencies {
5454
implementation("com.google.firebase:firebase-common:20.3.2")
5555
implementation("com.google.firebase:firebase-components:17.1.0")
5656
implementation("com.google.firebase:firebase-auth-interop:20.0.0")
57-
implementation("com.google.firebase:firebase-appcheck-interop:16.1.1")
57+
implementation(project(":appcheck:firebase-appcheck-interop"))
5858
implementation("com.google.firebase:firebase-database-collection:18.0.1")
5959

6060
implementation(libs.androidx.annotation)

firebase-database/src/main/java/com/google/firebase/database/DatabaseRegistrar.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import androidx.annotation.Keep;
1818
import androidx.annotation.RestrictTo;
1919
import com.google.firebase.FirebaseApp;
20-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
20+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2121
import com.google.firebase.auth.internal.InternalAuthProvider;
2222
import com.google.firebase.components.Component;
2323
import com.google.firebase.components.ComponentRegistrar;
@@ -39,13 +39,13 @@ public List<Component<?>> getComponents() {
3939
.name(LIBRARY_NAME)
4040
.add(Dependency.required(FirebaseApp.class))
4141
.add(Dependency.deferred(InternalAuthProvider.class))
42-
.add(Dependency.deferred(InternalAppCheckTokenProvider.class))
42+
.add(Dependency.deferred(InteropAppCheckTokenProvider.class))
4343
.factory(
4444
c ->
4545
new FirebaseDatabaseComponent(
4646
c.get(FirebaseApp.class),
4747
c.getDeferred(InternalAuthProvider.class),
48-
c.getDeferred(InternalAppCheckTokenProvider.class)))
48+
c.getDeferred(InteropAppCheckTokenProvider.class)))
4949
.build(),
5050
LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME));
5151
}

firebase-database/src/main/java/com/google/firebase/database/FirebaseDatabaseComponent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import androidx.annotation.NonNull;
1818
import com.google.firebase.FirebaseApp;
19-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
19+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2020
import com.google.firebase.auth.internal.InternalAuthProvider;
2121
import com.google.firebase.database.android.AndroidAppCheckTokenProvider;
2222
import com.google.firebase.database.android.AndroidAuthTokenProvider;
@@ -44,7 +44,7 @@ class FirebaseDatabaseComponent {
4444
FirebaseDatabaseComponent(
4545
@NonNull FirebaseApp app,
4646
Deferred<InternalAuthProvider> authProvider,
47-
Deferred<InternalAppCheckTokenProvider> appCheckProvider) {
47+
Deferred<InteropAppCheckTokenProvider> appCheckProvider) {
4848
this.app = app;
4949
this.authProvider = new AndroidAuthTokenProvider(authProvider);
5050
this.appCheckProvider = new AndroidAppCheckTokenProvider(appCheckProvider);

firebase-database/src/main/java/com/google/firebase/database/android/AndroidAppCheckTokenProvider.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@
1818
import androidx.annotation.NonNull;
1919
import com.google.android.gms.tasks.Task;
2020
import com.google.firebase.appcheck.AppCheckTokenResult;
21-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
21+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2222
import com.google.firebase.database.core.TokenProvider;
2323
import com.google.firebase.inject.Deferred;
2424
import java.util.concurrent.ExecutorService;
2525
import java.util.concurrent.atomic.AtomicReference;
2626

2727
public class AndroidAppCheckTokenProvider implements TokenProvider {
28-
private final Deferred<InternalAppCheckTokenProvider> deferredAppCheckProvider;
29-
private final AtomicReference<InternalAppCheckTokenProvider> internalAppCheck;
28+
private final Deferred<InteropAppCheckTokenProvider> deferredAppCheckProvider;
29+
private final AtomicReference<InteropAppCheckTokenProvider> internalAppCheck;
3030

3131
public AndroidAppCheckTokenProvider(
32-
Deferred<InternalAppCheckTokenProvider> deferredAppCheckProvider) {
32+
Deferred<InteropAppCheckTokenProvider> deferredAppCheckProvider) {
3333
this.deferredAppCheckProvider = deferredAppCheckProvider;
3434
this.internalAppCheck = new AtomicReference<>();
3535

@@ -41,7 +41,7 @@ public AndroidAppCheckTokenProvider(
4141
@SuppressLint("TaskMainThread")
4242
@Override
4343
public void getToken(boolean forceRefresh, @NonNull final GetTokenCompletionListener listener) {
44-
InternalAppCheckTokenProvider appCheckProvider = internalAppCheck.get();
44+
InteropAppCheckTokenProvider appCheckProvider = internalAppCheck.get();
4545

4646
if (appCheckProvider != null) {
4747
Task<AppCheckTokenResult> getTokenResult = appCheckProvider.getToken(forceRefresh);

firebase-firestore/firebase-firestore.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ dependencies {
126126
implementation project(':protolite-well-known-types')
127127
implementation 'com.google.firebase:firebase-database-collection:18.0.1'
128128
implementation 'com.google.firebase:firebase-components:17.1.0'
129-
implementation 'com.google.firebase:firebase-appcheck-interop:16.1.1'
129+
implementation project(':appcheck:firebase-appcheck-interop')
130130

131131
//To provide @Generated annotations
132132
compileOnly 'javax.annotation:jsr250-api:1.0'

firebase-firestore/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=24.4.6
1+
version=24.5.0
22
latestReleasedVersion=24.4.5

firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import com.google.android.gms.tasks.Tasks;
3030
import com.google.firebase.FirebaseApp;
3131
import com.google.firebase.annotations.PreviewApi;
32-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
32+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
3333
import com.google.firebase.auth.internal.InternalAuthProvider;
3434
import com.google.firebase.emulators.EmulatedServiceSettings;
3535
import com.google.firebase.firestore.FirebaseFirestoreException.Code;
@@ -132,7 +132,7 @@ static FirebaseFirestore newInstance(
132132
@NonNull Context context,
133133
@NonNull FirebaseApp app,
134134
@NonNull Deferred<InternalAuthProvider> deferredAuthProvider,
135-
@NonNull Deferred<InternalAppCheckTokenProvider> deferredAppCheckTokenProvider,
135+
@NonNull Deferred<InteropAppCheckTokenProvider> deferredAppCheckTokenProvider,
136136
@NonNull String database,
137137
@NonNull InstanceRegistry instanceRegistry,
138138
@Nullable GrpcMetadataProvider metadataProvider) {

firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreMultiDbComponent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.google.firebase.FirebaseApp;
2323
import com.google.firebase.FirebaseAppLifecycleListener;
2424
import com.google.firebase.FirebaseOptions;
25-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
25+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2626
import com.google.firebase.auth.internal.InternalAuthProvider;
2727
import com.google.firebase.firestore.remote.GrpcMetadataProvider;
2828
import com.google.firebase.inject.Deferred;
@@ -43,14 +43,14 @@ class FirestoreMultiDbComponent
4343
private final FirebaseApp app;
4444
private final Context context;
4545
private final Deferred<InternalAuthProvider> authProvider;
46-
private final Deferred<InternalAppCheckTokenProvider> appCheckProvider;
46+
private final Deferred<InteropAppCheckTokenProvider> appCheckProvider;
4747
private final GrpcMetadataProvider metadataProvider;
4848

4949
FirestoreMultiDbComponent(
5050
@NonNull Context context,
5151
@NonNull FirebaseApp app,
5252
@NonNull Deferred<InternalAuthProvider> authProvider,
53-
@NonNull Deferred<InternalAppCheckTokenProvider> appCheckProvider,
53+
@NonNull Deferred<InteropAppCheckTokenProvider> appCheckProvider,
5454
@Nullable GrpcMetadataProvider metadataProvider) {
5555
this.context = context;
5656
this.app = app;

firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import androidx.annotation.RestrictTo;
2020
import com.google.firebase.FirebaseApp;
2121
import com.google.firebase.FirebaseOptions;
22-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
22+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2323
import com.google.firebase.auth.internal.InternalAuthProvider;
2424
import com.google.firebase.components.Component;
2525
import com.google.firebase.components.ComponentRegistrar;
@@ -52,15 +52,15 @@ public List<Component<?>> getComponents() {
5252
.add(Dependency.optionalProvider(HeartBeatInfo.class))
5353
.add(Dependency.optionalProvider(UserAgentPublisher.class))
5454
.add(Dependency.deferred(InternalAuthProvider.class))
55-
.add(Dependency.deferred(InternalAppCheckTokenProvider.class))
55+
.add(Dependency.deferred(InteropAppCheckTokenProvider.class))
5656
.add(Dependency.optional(FirebaseOptions.class))
5757
.factory(
5858
c ->
5959
new FirestoreMultiDbComponent(
6060
c.get(Context.class),
6161
c.get(FirebaseApp.class),
6262
c.getDeferred(InternalAuthProvider.class),
63-
c.getDeferred(InternalAppCheckTokenProvider.class),
63+
c.getDeferred(InteropAppCheckTokenProvider.class),
6464
new FirebaseClientGrpcMetadataProvider(
6565
c.getProvider(UserAgentPublisher.class),
6666
c.getProvider(HeartBeatInfo.class),

firebase-firestore/src/main/java/com/google/firebase/firestore/auth/FirebaseAppCheckTokenProvider.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import com.google.firebase.FirebaseApiNotAvailableException;
2424
import com.google.firebase.appcheck.AppCheckTokenResult;
2525
import com.google.firebase.appcheck.interop.AppCheckTokenListener;
26-
import com.google.firebase.appcheck.interop.InternalAppCheckTokenProvider;
26+
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider;
2727
import com.google.firebase.firestore.util.Executors;
2828
import com.google.firebase.firestore.util.Listener;
2929
import com.google.firebase.firestore.util.Logger;
@@ -41,11 +41,11 @@ public final class FirebaseAppCheckTokenProvider extends CredentialsProvider<Str
4141
private Listener<String> changeListener;
4242

4343
/**
44-
* The {@link Provider} that gives access to the {@link InternalAppCheckTokenProvider} instance.
44+
* The {@link Provider} that gives access to the {@link InteropAppCheckTokenProvider} instance.
4545
*/
4646
@Nullable
4747
@GuardedBy("this")
48-
private InternalAppCheckTokenProvider internalAppCheckTokenProvider;
48+
private InteropAppCheckTokenProvider interopAppCheckTokenProvider;
4949

5050
@GuardedBy("this")
5151
private boolean forceRefresh;
@@ -58,14 +58,14 @@ public final class FirebaseAppCheckTokenProvider extends CredentialsProvider<Str
5858
/** Creates a new FirebaseAppCheckTokenProvider. */
5959
@SuppressLint("ProviderAssignment") // TODO: Remove this @SuppressLint once b/181014061 is fixed.
6060
public FirebaseAppCheckTokenProvider(
61-
Deferred<InternalAppCheckTokenProvider> deferredAppCheckTokenProvider) {
61+
Deferred<InteropAppCheckTokenProvider> deferredAppCheckTokenProvider) {
6262
deferredAppCheckTokenProvider.whenAvailable(
6363
provider -> {
6464
synchronized (this) {
65-
internalAppCheckTokenProvider = provider.get();
65+
interopAppCheckTokenProvider = provider.get();
6666
// Get notified when AppCheck token changes to a new value in the future.
67-
if (internalAppCheckTokenProvider != null) {
68-
internalAppCheckTokenProvider.addAppCheckTokenListener(tokenListener);
67+
if (interopAppCheckTokenProvider != null) {
68+
interopAppCheckTokenProvider.addAppCheckTokenListener(tokenListener);
6969
}
7070
}
7171
});
@@ -89,11 +89,11 @@ private synchronized void onTokenChanged(@NonNull AppCheckTokenResult result) {
8989
*/
9090
@Override
9191
public synchronized Task<String> getToken() {
92-
if (internalAppCheckTokenProvider == null) {
92+
if (interopAppCheckTokenProvider == null) {
9393
return Tasks.forException(new FirebaseApiNotAvailableException("AppCheck is not available"));
9494
}
9595

96-
Task<AppCheckTokenResult> res = internalAppCheckTokenProvider.getToken(forceRefresh);
96+
Task<AppCheckTokenResult> res = interopAppCheckTokenProvider.getToken(forceRefresh);
9797
forceRefresh = false;
9898

9999
return res.continueWithTask(
@@ -121,8 +121,8 @@ public synchronized void invalidateToken() {
121121
public synchronized void removeChangeListener() {
122122
changeListener = null;
123123

124-
if (internalAppCheckTokenProvider != null) {
125-
internalAppCheckTokenProvider.removeAppCheckTokenListener(tokenListener);
124+
if (interopAppCheckTokenProvider != null) {
125+
interopAppCheckTokenProvider.removeAppCheckTokenListener(tokenListener);
126126
}
127127
}
128128

0 commit comments

Comments
 (0)