mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-09 22:43:10 +08:00
Breaking - remove unused registration of JS modules
Summary: It's now unnecessary to declare which JS modules you want to expose on your package. To upgrade, remove all overrides of `createJSModules` and keeping calling your JS modules as before. Reviewed By: AaaChiuuu Differential Revision: D5229259 fbshipit-source-id: 1160826c951433722f1fe0421c1200883ba1a348
This commit is contained in:
committed by
Facebook Github Bot
parent
71ea94b51e
commit
ce6fb337a1
@@ -84,20 +84,6 @@ public class CompositeReactPackage extends ReactInstancePackage {
|
||||
return new ArrayList(moduleMap.values());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
||||
final Set<Class<? extends JavaScriptModule>> moduleSet = new HashSet<>();
|
||||
for (ReactPackage reactPackage: mChildReactPackages) {
|
||||
for (Class<? extends JavaScriptModule> jsModule: reactPackage.createJSModules()) {
|
||||
moduleSet.add(jsModule);
|
||||
}
|
||||
}
|
||||
return new ArrayList(moduleSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
||||
@@ -12,27 +12,21 @@ package com.facebook.react;
|
||||
import javax.inject.Provider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.facebook.react.bridge.JavaScriptModule;
|
||||
import com.facebook.react.bridge.ModuleSpec;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactMarker;
|
||||
import com.facebook.react.common.build.ReactBuildConfig;
|
||||
import com.facebook.react.devsupport.HMRClient;
|
||||
import com.facebook.react.devsupport.JSCHeapCapture;
|
||||
import com.facebook.react.devsupport.JSCSamplingProfiler;
|
||||
import com.facebook.react.module.annotations.ReactModuleList;
|
||||
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
||||
import com.facebook.react.modules.appregistry.AppRegistry;
|
||||
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
|
||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||
import com.facebook.react.modules.core.ExceptionsManagerModule;
|
||||
import com.facebook.react.modules.core.HeadlessJsTaskSupportModule;
|
||||
import com.facebook.react.modules.core.JSTimersExecution;
|
||||
import com.facebook.react.modules.core.RCTNativeAppEventEmitter;
|
||||
import com.facebook.react.modules.core.Timing;
|
||||
import com.facebook.react.modules.debug.AnimationsDebugModule;
|
||||
import com.facebook.react.modules.debug.SourceCodeModule;
|
||||
@@ -42,7 +36,6 @@ import com.facebook.react.uimanager.UIImplementationProvider;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
import com.facebook.react.uimanager.debug.DebugComponentOwnershipModule;
|
||||
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
||||
import com.facebook.systrace.Systrace;
|
||||
|
||||
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_UI_MANAGER_MODULE_END;
|
||||
@@ -187,26 +180,6 @@ import static com.facebook.react.bridge.ReactMarkerConstants.PROCESS_CORE_REACT_
|
||||
return moduleSpecList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
||||
List<Class<? extends JavaScriptModule>> jsModules = new ArrayList<>(Arrays.asList(
|
||||
DeviceEventManagerModule.RCTDeviceEventEmitter.class,
|
||||
JSTimersExecution.class,
|
||||
RCTEventEmitter.class,
|
||||
RCTNativeAppEventEmitter.class,
|
||||
AppRegistry.class,
|
||||
com.facebook.react.bridge.Systrace.class,
|
||||
HMRClient.class));
|
||||
|
||||
if (ReactBuildConfig.DEBUG) {
|
||||
jsModules.add(DebugComponentOwnershipModule.RCTDebugComponentOwnership.class);
|
||||
jsModules.add(JSCHeapCapture.HeapCapture.class);
|
||||
jsModules.add(JSCSamplingProfiler.SamplingProfiler.class);
|
||||
}
|
||||
|
||||
return jsModules;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReactModuleInfoProvider getReactModuleInfoProvider() {
|
||||
// This has to be done via reflection or we break open source.
|
||||
|
||||
@@ -926,7 +926,6 @@ public class ReactInstanceManager {
|
||||
reactContext,
|
||||
this,
|
||||
mLazyNativeModulesEnabled);
|
||||
JavaScriptModuleRegistry.Builder jsModulesBuilder = new JavaScriptModuleRegistry.Builder();
|
||||
if (mUseDeveloperSupport) {
|
||||
reactContext.setNativeModuleCallExceptionHandler(mDevSupportManager);
|
||||
}
|
||||
@@ -942,7 +941,7 @@ public class ReactInstanceManager {
|
||||
mBackBtnHandler,
|
||||
mUIImplementationProvider,
|
||||
mLazyViewManagersEnabled);
|
||||
processPackage(coreModulesPackage, nativeModuleRegistryBuilder, jsModulesBuilder);
|
||||
processPackage(coreModulesPackage, nativeModuleRegistryBuilder);
|
||||
} finally {
|
||||
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
|
||||
}
|
||||
@@ -953,7 +952,7 @@ public class ReactInstanceManager {
|
||||
TRACE_TAG_REACT_JAVA_BRIDGE,
|
||||
"createAndProcessCustomReactPackage");
|
||||
try {
|
||||
processPackage(reactPackage, nativeModuleRegistryBuilder, jsModulesBuilder);
|
||||
processPackage(reactPackage, nativeModuleRegistryBuilder);
|
||||
} finally {
|
||||
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
|
||||
}
|
||||
@@ -979,7 +978,6 @@ public class ReactInstanceManager {
|
||||
ReactQueueConfigurationSpec.createDefault())
|
||||
.setJSExecutor(jsExecutor)
|
||||
.setRegistry(nativeModuleRegistry)
|
||||
.setJSModuleRegistry(jsModulesBuilder.build())
|
||||
.setJSBundleLoader(jsBundleLoader)
|
||||
.setNativeModuleCallExceptionHandler(exceptionHandler);
|
||||
|
||||
@@ -1010,8 +1008,7 @@ public class ReactInstanceManager {
|
||||
|
||||
private void processPackage(
|
||||
ReactPackage reactPackage,
|
||||
NativeModuleRegistryBuilder nativeModuleRegistryBuilder,
|
||||
JavaScriptModuleRegistry.Builder jsModulesBuilder) {
|
||||
NativeModuleRegistryBuilder nativeModuleRegistryBuilder) {
|
||||
SystraceMessage.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "processPackage")
|
||||
.arg("className", reactPackage.getClass().getSimpleName())
|
||||
.flush();
|
||||
@@ -1020,9 +1017,6 @@ public class ReactInstanceManager {
|
||||
}
|
||||
nativeModuleRegistryBuilder.processPackage(reactPackage);
|
||||
|
||||
for (Class<? extends JavaScriptModule> jsModuleClass : reactPackage.createJSModules()) {
|
||||
jsModulesBuilder.add(jsModuleClass);
|
||||
}
|
||||
if (reactPackage instanceof ReactPackageLogger) {
|
||||
((ReactPackageLogger) reactPackage).endProcessPackage();
|
||||
}
|
||||
|
||||
@@ -38,15 +38,6 @@ public interface ReactPackage {
|
||||
*/
|
||||
List<NativeModule> createNativeModules(ReactApplicationContext reactContext);
|
||||
|
||||
/**
|
||||
* @return list of JS modules to register with the newly created catalyst instance.
|
||||
*
|
||||
* IMPORTANT: Note that only modules that needs to be accessible from the native code should be
|
||||
* listed here. Also listing a native module here doesn't imply that the JS implementation of it
|
||||
* will be automatically included in the JS bundle.
|
||||
*/
|
||||
List<Class<? extends JavaScriptModule>> createJSModules();
|
||||
|
||||
/**
|
||||
* @return a list of view managers that should be registered with {@link UIManagerModule}
|
||||
*/
|
||||
|
||||
@@ -541,10 +541,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setJSModuleRegistry(JavaScriptModuleRegistry jsModuleRegistry) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setJSBundleLoader(JSBundleLoader jsBundleLoader) {
|
||||
mJSBundleLoader = jsBundleLoader;
|
||||
return this;
|
||||
|
||||
@@ -48,16 +48,6 @@ public final class JavaScriptModuleRegistry {
|
||||
return (T) interfaceProxy;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
public Builder add(Class<? extends JavaScriptModule> moduleInterfaceClass) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public JavaScriptModuleRegistry build() {
|
||||
return new JavaScriptModuleRegistry();
|
||||
}
|
||||
}
|
||||
|
||||
private static class JavaScriptModuleInvocationHandler implements InvocationHandler {
|
||||
private final CatalystInstance mCatalystInstance;
|
||||
private final Class<? extends JavaScriptModule> mModuleInterface;
|
||||
|
||||
@@ -247,11 +247,6 @@ public class MainReactPackage extends LazyReactPackage {
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
||||
List<ViewManager> viewManagers = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user