Delete ModuleRegistryHolder

Reviewed By: mhorowitz

Differential Revision: D4411478

fbshipit-source-id: 03f48f92f0d97bd5e3318f60c8357242fe9792cf
This commit is contained in:
Pieter De Baets
2017-01-30 09:33:09 -08:00
committed by Facebook Github Bot
parent bf930e473a
commit 0e7d0ebd9a
13 changed files with 300 additions and 355 deletions

View File

@@ -128,7 +128,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
jsExecutor,
mReactQueueConfiguration.getJSQueueThread(),
mReactQueueConfiguration.getNativeModulesQueueThread(),
mJavaRegistry.getModuleRegistryHolder(this));
mJavaRegistry.getJavaModules(this),
mJavaRegistry.getCxxModules());
mMainExecutorToken = getMainExecutorToken();
}
@@ -179,7 +180,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
JavaScriptExecutor jsExecutor,
MessageQueueThread jsQueue,
MessageQueueThread moduleQueue,
ModuleRegistryHolder registryHolder);
Collection<JavaModuleWrapper> javaModules,
Collection<CxxModuleWrapper> cxxModules);
/**
* This API is used in situations where the JS bundle is being executed not on

View File

@@ -1,28 +0,0 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.cxxbridge;
import java.util.Collection;
import com.facebook.jni.HybridData;
public class ModuleRegistryHolder {
private final HybridData mHybridData;
private static native HybridData initHybrid(
CatalystInstanceImpl catalystInstanceImpl,
Collection<JavaModuleWrapper> javaModules,
Collection<CxxModuleWrapper> cxxModules);
public ModuleRegistryHolder(CatalystInstanceImpl catalystInstanceImpl,
Collection<JavaModuleWrapper> javaModules,
Collection<CxxModuleWrapper> cxxModules) {
mHybridData = initHybrid(catalystInstanceImpl, javaModules, cxxModules);
}
}

View File

@@ -10,6 +10,7 @@
package com.facebook.react.cxxbridge;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -36,22 +37,27 @@ public class NativeModuleRegistry {
mBatchCompleteListenerModules = batchCompleteListenerModules;
}
/* package */ ModuleRegistryHolder getModuleRegistryHolder(
CatalystInstanceImpl catalystInstanceImpl) {
/* package */ Collection<JavaModuleWrapper> getJavaModules(
CatalystInstanceImpl catalystInstanceImpl) {
ArrayList<JavaModuleWrapper> javaModules = new ArrayList<>();
for (Map.Entry<Class<? extends NativeModule>, ModuleHolder> entry : mModules.entrySet()) {
Class<?> type = entry.getKey();
if (!CxxModuleWrapper.class.isAssignableFrom(type)) {
javaModules.add(new JavaModuleWrapper(catalystInstanceImpl, entry.getValue()));
}
}
return javaModules;
}
/* package */ Collection<CxxModuleWrapper> getCxxModules() {
ArrayList<CxxModuleWrapper> cxxModules = new ArrayList<>();
for (Map.Entry<Class<? extends NativeModule>, ModuleHolder> entry : mModules.entrySet()) {
Class<?> type = entry.getKey();
ModuleHolder moduleHolder = entry.getValue();
if (BaseJavaModule.class.isAssignableFrom(type)) {
javaModules.add(new JavaModuleWrapper(catalystInstanceImpl, moduleHolder));
} else if (CxxModuleWrapper.class.isAssignableFrom(type)) {
cxxModules.add((CxxModuleWrapper) moduleHolder.getModule());
} else {
throw new IllegalArgumentException("Unknown module type " + type);
if (CxxModuleWrapper.class.isAssignableFrom(type)) {
cxxModules.add((CxxModuleWrapper) entry.getValue().getModule());
}
}
return new ModuleRegistryHolder(catalystInstanceImpl, javaModules, cxxModules);
return cxxModules;
}
/* package */ void notifyCatalystInstanceDestroy() {