Skip to content

Commit 0889f7d

Browse files
mdvaccameta-codesync[bot]
authored andcommitted
Delete deprecated CatalystInstanceImpl and C++ counterparts (#55789)
Summary: Pull Request resolved: #55789 Removes the deprecated `CatalystInstanceImpl` class (Java) and its C++ JNI counterparts (`CatalystInstanceImpl.h` and `CatalystInstanceImpl.cpp`) as part of the Legacy Architecture cleanup. `CatalystInstanceImpl` was the bridge implementation for the old architecture. Its sole consumer, `ReactInstanceManager`, is itself deprecated — its constructor already throws `UnsupportedOperationException`. The `createReactContext` method that instantiated `CatalystInstanceImpl` has been stubbed to throw `UnsupportedOperationException` as well. Changes: - Deleted `CatalystInstanceImpl.java` (621 lines) - Deleted `CatalystInstanceImpl.h` and `CatalystInstanceImpl.cpp` (523 lines) - Stubbed `ReactInstanceManager.createReactContext` to throw - Removed from BUCK and CMakeLists.txt build files - Removed from ReactAndroid.api public API surface - Removed from ReactNoNewJavaDetector Java allowlist - Removed from legacy architecture tracking script - Added direct `#include <cxxreact/MessageQueueThread.h>` to `JavaModuleWrapper.cpp` to replace transitive dependency Changelog: [Android][Removed] - Remove deprecated CatalystInstanceImpl Reviewed By: javache Differential Revision: D94548637 fbshipit-source-id: 5c447b85c80605cff17c1555d62ede5e9e2f18a7
1 parent 45de710 commit 0889f7d

8 files changed

Lines changed: 5 additions & 1296 deletions

File tree

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -600,59 +600,6 @@ public abstract interface class com/facebook/react/bridge/CatalystInstance : com
600600
public abstract fun setTurboModuleRegistry (Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModuleRegistry;)V
601601
}
602602

603-
public class com/facebook/react/bridge/CatalystInstanceImpl : com/facebook/react/bridge/CatalystInstance {
604-
public fun callFunction (Lcom/facebook/react/bridge/CatalystInstanceImpl$PendingJSCall;)V
605-
public fun callFunction (Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/NativeArray;)V
606-
public fun destroy ()V
607-
public fun extendNativeModules (Lcom/facebook/react/bridge/NativeModuleRegistry;)V
608-
public fun getFabricUIManager ()Lcom/facebook/react/bridge/UIManager;
609-
public fun getJSCallInvokerHolder ()Lcom/facebook/react/turbomodule/core/CallInvokerHolderImpl;
610-
public synthetic fun getJSCallInvokerHolder ()Lcom/facebook/react/turbomodule/core/interfaces/CallInvokerHolder;
611-
public fun getJSModule (Ljava/lang/Class;)Lcom/facebook/react/bridge/JavaScriptModule;
612-
public fun getJavaScriptContextHolder ()Lcom/facebook/react/bridge/JavaScriptContextHolder;
613-
public fun getNativeMethodCallInvokerHolder ()Lcom/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl;
614-
public synthetic fun getNativeMethodCallInvokerHolder ()Lcom/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder;
615-
public fun getNativeModule (Ljava/lang/Class;)Lcom/facebook/react/bridge/NativeModule;
616-
public fun getNativeModule (Ljava/lang/String;)Lcom/facebook/react/bridge/NativeModule;
617-
public fun getNativeModules ()Ljava/util/Collection;
618-
public fun getReactQueueConfiguration ()Lcom/facebook/react/bridge/queue/ReactQueueConfiguration;
619-
public fun getRuntimeExecutor ()Lcom/facebook/react/bridge/RuntimeExecutor;
620-
public fun getRuntimeScheduler ()Lcom/facebook/react/bridge/RuntimeScheduler;
621-
public fun getSourceURL ()Ljava/lang/String;
622-
public fun handleMemoryPressure (I)V
623-
public fun hasNativeModule (Ljava/lang/Class;)Z
624-
public fun hasRunJSBundle ()Z
625-
public fun invokeCallback (ILcom/facebook/react/bridge/NativeArrayInterface;)V
626-
public fun isDestroyed ()Z
627-
public fun loadScriptFromAssets (Landroid/content/res/AssetManager;Ljava/lang/String;Z)V
628-
public fun loadScriptFromFile (Ljava/lang/String;Ljava/lang/String;Z)V
629-
public fun loadSplitBundleFromFile (Ljava/lang/String;Ljava/lang/String;)V
630-
public fun registerSegment (ILjava/lang/String;)V
631-
public fun runJSBundle ()V
632-
public fun setFabricUIManager (Lcom/facebook/react/bridge/UIManager;)V
633-
public fun setGlobalVariable (Ljava/lang/String;Ljava/lang/String;)V
634-
public fun setSourceURLs (Ljava/lang/String;Ljava/lang/String;)V
635-
public fun setTurboModuleRegistry (Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModuleRegistry;)V
636-
}
637-
638-
public class com/facebook/react/bridge/CatalystInstanceImpl$Builder {
639-
public fun <init> ()V
640-
public fun build ()Lcom/facebook/react/bridge/CatalystInstanceImpl;
641-
public fun setJSBundleLoader (Lcom/facebook/react/bridge/JSBundleLoader;)Lcom/facebook/react/bridge/CatalystInstanceImpl$Builder;
642-
public fun setJSExceptionHandler (Lcom/facebook/react/bridge/JSExceptionHandler;)Lcom/facebook/react/bridge/CatalystInstanceImpl$Builder;
643-
public fun setJSExecutor (Lcom/facebook/react/bridge/JavaScriptExecutor;)Lcom/facebook/react/bridge/CatalystInstanceImpl$Builder;
644-
public fun setReactQueueConfigurationSpec (Lcom/facebook/react/bridge/queue/ReactQueueConfigurationSpec;)Lcom/facebook/react/bridge/CatalystInstanceImpl$Builder;
645-
public fun setRegistry (Lcom/facebook/react/bridge/NativeModuleRegistry;)Lcom/facebook/react/bridge/CatalystInstanceImpl$Builder;
646-
}
647-
648-
public class com/facebook/react/bridge/CatalystInstanceImpl$PendingJSCall {
649-
public field mArguments Lcom/facebook/react/bridge/NativeArray;
650-
public field mMethod Ljava/lang/String;
651-
public field mModule Ljava/lang/String;
652-
public fun <init> (Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/NativeArray;)V
653-
public fun toString ()Ljava/lang/String;
654-
}
655-
656603
public final class com/facebook/react/bridge/ColorPropConverter {
657604
public static final field INSTANCE Lcom/facebook/react/bridge/ColorPropConverter;
658605
public static final fun getColor (Ljava/lang/Object;Landroid/content/Context;)Ljava/lang/Integer;

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java

Lines changed: 4 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
import static com.facebook.react.bridge.ReactMarkerConstants.BUILD_NATIVE_MODULE_REGISTRY_END;
1414
import static com.facebook.react.bridge.ReactMarkerConstants.BUILD_NATIVE_MODULE_REGISTRY_START;
1515
import static com.facebook.react.bridge.ReactMarkerConstants.CHANGE_THREAD_PRIORITY;
16-
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_CATALYST_INSTANCE_END;
17-
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_CATALYST_INSTANCE_START;
18-
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_REACT_CONTEXT_START;
1916
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_VIEW_MANAGERS_END;
2017
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_VIEW_MANAGERS_START;
2118
import static com.facebook.react.bridge.ReactMarkerConstants.PRE_SETUP_REACT_CONTEXT_END;
@@ -49,9 +46,7 @@
4946
import com.facebook.infer.annotation.ThreadConfined;
5047
import com.facebook.infer.annotation.ThreadSafe;
5148
import com.facebook.react.bridge.Arguments;
52-
import com.facebook.react.bridge.BridgeReactContext;
5349
import com.facebook.react.bridge.CatalystInstance;
54-
import com.facebook.react.bridge.CatalystInstanceImpl;
5550
import com.facebook.react.bridge.JSBundleLoader;
5651
import com.facebook.react.bridge.JSExceptionHandler;
5752
import com.facebook.react.bridge.JavaScriptExecutor;
@@ -67,7 +62,6 @@
6762
import com.facebook.react.bridge.UIManagerProvider;
6863
import com.facebook.react.bridge.UiThreadUtil;
6964
import com.facebook.react.bridge.WritableNativeMap;
70-
import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec;
7165
import com.facebook.react.common.LifecycleState;
7266
import com.facebook.react.common.ReactConstants;
7367
import com.facebook.react.common.SurfaceDelegateFactory;
@@ -86,8 +80,6 @@
8680
import com.facebook.react.internal.AndroidChoreographerProvider;
8781
import com.facebook.react.internal.ChoreographerProvider;
8882
import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags;
89-
import com.facebook.react.internal.turbomodule.core.TurboModuleManager;
90-
import com.facebook.react.internal.turbomodule.core.TurboModuleManagerDelegate;
9183
import com.facebook.react.modules.appearance.AppearanceModule;
9284
import com.facebook.react.modules.appregistry.AppRegistry;
9385
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
@@ -1395,88 +1387,10 @@ private void tearDownReactContext(ReactContext reactContext) {
13951387
*/
13961388
private ReactApplicationContext createReactContext(
13971389
JavaScriptExecutor jsExecutor, JSBundleLoader jsBundleLoader) {
1398-
1399-
FLog.d(ReactConstants.TAG, "ReactInstanceManager.createReactContext()");
1400-
ReactMarker.logMarker(CREATE_REACT_CONTEXT_START, jsExecutor.getName());
1401-
1402-
final BridgeReactContext reactContext = new BridgeReactContext(mApplicationContext);
1403-
1404-
JSExceptionHandler exceptionHandler =
1405-
mJSExceptionHandler != null ? mJSExceptionHandler : mDevSupportManager;
1406-
reactContext.setJSExceptionHandler(exceptionHandler);
1407-
1408-
NativeModuleRegistry nativeModuleRegistry = processPackages(reactContext, mPackages);
1409-
1410-
CatalystInstanceImpl.Builder catalystInstanceBuilder =
1411-
new CatalystInstanceImpl.Builder()
1412-
.setReactQueueConfigurationSpec(ReactQueueConfigurationSpec.createDefault())
1413-
.setJSExecutor(jsExecutor)
1414-
.setRegistry(nativeModuleRegistry)
1415-
.setJSBundleLoader(jsBundleLoader)
1416-
.setJSExceptionHandler(exceptionHandler);
1417-
1418-
ReactMarker.logMarker(CREATE_CATALYST_INSTANCE_START);
1419-
// CREATE_CATALYST_INSTANCE_END is in JSCExecutor.cpp
1420-
Systrace.beginSection(TRACE_TAG_REACT, "createCatalystInstance");
1421-
final CatalystInstance catalystInstance;
1422-
try {
1423-
catalystInstance = catalystInstanceBuilder.build();
1424-
} finally {
1425-
Systrace.endSection(TRACE_TAG_REACT);
1426-
ReactMarker.logMarker(CREATE_CATALYST_INSTANCE_END);
1427-
}
1428-
1429-
reactContext.initializeWithInstance(catalystInstance);
1430-
1431-
// On Old Architecture, we need to initialize the Native Runtime Scheduler so that
1432-
// the `nativeRuntimeScheduler` object is registered on JS.
1433-
// On New Architecture, this is normally triggered by instantiate a TurboModuleManager.
1434-
// Here we invoke getRuntimeScheduler() to trigger the creation of it regardless of the
1435-
// architecture so it will always be there.
1436-
catalystInstance.getRuntimeScheduler();
1437-
1438-
if (ReactNativeNewArchitectureFeatureFlags.useTurboModules() && mTMMDelegateBuilder != null) {
1439-
TurboModuleManagerDelegate tmmDelegate =
1440-
mTMMDelegateBuilder
1441-
.setPackages(mPackages)
1442-
.setReactApplicationContext(reactContext)
1443-
.build();
1444-
1445-
TurboModuleManager turboModuleManager =
1446-
new TurboModuleManager(
1447-
catalystInstance.getRuntimeExecutor(),
1448-
tmmDelegate,
1449-
catalystInstance.getJSCallInvokerHolder(),
1450-
catalystInstance.getNativeMethodCallInvokerHolder());
1451-
1452-
catalystInstance.setTurboModuleRegistry(turboModuleManager);
1453-
1454-
// Eagerly initialize TurboModules
1455-
for (String moduleName : turboModuleManager.getEagerInitModuleNames()) {
1456-
turboModuleManager.getModule(moduleName);
1457-
}
1458-
}
1459-
1460-
if (mUIManagerProvider != null) {
1461-
UIManager uiManager = mUIManagerProvider.createUIManager(reactContext);
1462-
if (uiManager != null) {
1463-
catalystInstance.setFabricUIManager(uiManager);
1464-
1465-
// Initialize the UIManager
1466-
uiManager.initialize();
1467-
catalystInstance.setFabricUIManager(uiManager);
1468-
}
1469-
}
1470-
if (BuildConfig.ENABLE_PERFETTO || Systrace.isTracing(TRACE_TAG_REACT)) {
1471-
catalystInstance.setGlobalVariable("__RCTProfileIsProfiling", "true");
1472-
}
1473-
1474-
ReactMarker.logMarker(ReactMarkerConstants.PRE_RUN_JS_BUNDLE_START);
1475-
Systrace.beginSection(TRACE_TAG_REACT, "runJSBundle");
1476-
catalystInstance.runJSBundle();
1477-
Systrace.endSection(TRACE_TAG_REACT);
1478-
1479-
return reactContext;
1390+
// CatalystInstanceImpl has been removed as part of the Legacy Architecture cleanup.
1391+
throw new UnsupportedOperationException(
1392+
"ReactInstanceManager.createReactContext is unsupported. CatalystInstanceImpl has been"
1393+
+ " removed.");
14801394
}
14811395

14821396
private NativeModuleRegistry processPackages(

0 commit comments

Comments
 (0)