remove all @ReactModule runtime annotation processing

Summary: Runtime annotation processing uses reflection which is slow. We'll use build time annotation processing instead and create at build time static ModuleInfo classes which have "name", "canOverrideExistingModule", "supportsWebWorkers", "needsEagerInit".

Reviewed By: lexs

Differential Revision: D3752243

fbshipit-source-id: 3518c6f38087d8799a61410864007041389c0e15
This commit is contained in:
Aaron Chiu
2016-08-23 18:57:08 -07:00
committed by Facebook Github Bot 5
parent 1557325e4a
commit 288934398b
2 changed files with 22 additions and 30 deletions

View File

@@ -9,9 +9,11 @@
package com.facebook.react.bridge;
import com.facebook.react.common.build.ReactBuildConfig;
import org.junit.Rule;
import org.junit.runner.RunWith;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
@@ -19,9 +21,6 @@ import org.powermock.modules.junit4.rule.PowerMockRule;
import org.powermock.reflect.Whitebox;
import org.robolectric.RobolectricTestRunner;
import com.facebook.react.bridge.annotations.ReactModule;
import com.facebook.react.common.build.ReactBuildConfig;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
@@ -77,20 +76,31 @@ public class ModuleSpecTest {
assertThat(contextModule.getReactApplicationContext()).isSameAs(context);
}
@ReactModule(name = "ComplexModule")
public static class ComplexModule extends BaseJavaModule {
public ComplexModule(int a, int b) {
}
public String getName() {
return "ComplexModule";
}
}
@ReactModule(name = "SimpleModule")
public static class SimpleModule extends BaseJavaModule {
public String getName() {
return "SimpleModule";
}
}
@ReactModule(name = "SimpleContextModule")
public static class SimpleContextModule extends ReactContextBaseJavaModule {
public SimpleContextModule(ReactApplicationContext context) {
super(context);
}
public String getName() {
return "SimpleContextModule";
}
}
}