From a4fe9b2b6da84ebfa5b90883dc4787e95e98405f Mon Sep 17 00:00:00 2001 From: Phillip Pan Date: Wed, 29 Mar 2023 12:06:52 -0700 Subject: [PATCH] deprecate ReactModuleWithSpec (#36673) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36673 Changelog: [Android][Deprecated] in this change, we deprecate ReactModuleWithSpec because it can be replaced with the TurboModule interface which better describes our generated modules. Reviewed By: cortinico Differential Revision: D44450959 fbshipit-source-id: adab192593843926f35bdbeb346ef374dd80e615 --- .../modules/GenerateModuleJavaSpec.js | 3 +-- .../GenerateModuleJavaSpec-test.js.snap | 27 +++++++------------ .../react/bridge/ReactModuleWithSpec.java | 6 ++--- .../android/NativeSampleTurboModuleSpec.java | 3 +-- 4 files changed, 13 insertions(+), 26 deletions(-) diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js index 8497bb68a84..052a6d7b192 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js @@ -52,7 +52,7 @@ package ${packageName}; ${imports} -public abstract class ${className} extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class ${className} extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = "${jsName}"; public ${className}(ReactApplicationContext reactContext) { @@ -463,7 +463,6 @@ module.exports = { 'com.facebook.react.bridge.ReactApplicationContext', 'com.facebook.react.bridge.ReactContextBaseJavaModule', 'com.facebook.react.bridge.ReactMethod', - 'com.facebook.react.bridge.ReactModuleWithSpec', 'com.facebook.react.turbomodule.core.interfaces.TurboModule', 'com.facebook.proguard.annotations.DoNotStrip', 'javax.annotation.Nonnull', diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap index cc0c13d0f56..875476d45ac 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap @@ -20,11 +20,10 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"SampleTurboModule\\"; public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) { @@ -63,7 +62,6 @@ import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableArray; @@ -72,7 +70,7 @@ import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; import javax.annotation.Nullable; -public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"SampleTurboModule\\"; public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) { @@ -138,11 +136,10 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"SampleTurboModule\\"; public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) { @@ -180,12 +177,11 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"AliasTurboModule\\"; public AliasTurboModuleSpec(ReactApplicationContext reactContext) { @@ -226,13 +222,12 @@ import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"CameraRollManager\\"; public NativeCameraRollManagerSpec(ReactApplicationContext reactContext) { @@ -275,13 +270,12 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"ExceptionsManager\\"; public NativeExceptionsManagerSpec(ReactApplicationContext reactContext) { @@ -339,7 +333,6 @@ import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableArray; @@ -353,7 +346,7 @@ import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; -public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"SampleTurboModule\\"; public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) { @@ -469,11 +462,10 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"SampleTurboModule\\"; public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) { @@ -508,11 +500,10 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; -public abstract class NativeSampleTurboModule2Spec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { +public abstract class NativeSampleTurboModule2Spec extends ReactContextBaseJavaModule implements TurboModule { public static final String NAME = \\"SampleTurboModule2\\"; public NativeSampleTurboModule2Spec(ReactApplicationContext reactContext) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactModuleWithSpec.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactModuleWithSpec.java index 523c36a9213..ba5fd82f69b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactModuleWithSpec.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactModuleWithSpec.java @@ -9,9 +9,7 @@ package com.facebook.react.bridge; import com.facebook.proguard.annotations.DoNotStrip; -/** - * An interface to be implemented by react modules that extends from the generated spec class. This - * is experimental. - */ +/** @deprecated Use {@link TurboModule} to identify generated specs */ @DoNotStrip +@Deprecated public interface ReactModuleWithSpec {} diff --git a/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java b/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java index d3e50a5a3d6..b8acc74a796 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +++ b/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java @@ -14,7 +14,6 @@ import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableArray; @@ -28,7 +27,7 @@ import java.util.Set; import javax.annotation.Nullable; public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule - implements ReactModuleWithSpec, TurboModule { + implements TurboModule { public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) { super(reactContext); }