Skip to content

Commit 0fad20e

Browse files
author
Quang Tran
committed
IDE-2453: Register test file extensions n4js and n4jsx in headless compiler
1 parent 449299b commit 0fad20e

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

plugins/eu.numberfour.n4js.tester/src/eu/numberfour/n4js/tester/extension/TestFileExtensionsRegistry.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
import org.eclipse.core.runtime.IExtensionRegistry;
2020
import org.eclipse.core.runtime.RegistryFactory;
2121

22-
import eu.numberfour.n4js.N4JSGlobals;
22+
import com.google.inject.Singleton;
2323

2424
/**
2525
* This class collect test file extensions from extensions to extension point.
2626
*/
27+
@Singleton
2728
public class TestFileExtensionsRegistry {
2829
private final static Logger log = Logger.getLogger(TesterRegistry.class);
2930

@@ -33,6 +34,14 @@ public class TestFileExtensionsRegistry {
3334
private boolean isInitialized = false;
3435
private final Collection<String> testFileExtensions = new ArrayList<>();
3536

37+
/**
38+
* Register a test file extension. This method should only be invoked by client code directly in headless mode. When
39+
* running in Eclipse, test file extensions will be registered via the 'testFileExtension' extension point.
40+
*/
41+
public void register(String testFileExtension) {
42+
testFileExtensions.add(testFileExtension);
43+
}
44+
3645
/**
3746
* Return test file extensions
3847
*/
@@ -65,12 +74,7 @@ private void initialize() {
6574
ex);
6675
}
6776
}
68-
} else {
69-
// Headless compiler does not use extension points. Set default file extension of tests to .n4js
70-
// TODO: better way to handle this?
71-
testFileExtensions.add(N4JSGlobals.N4JS_FILE_EXTENSION);
7277
}
73-
7478
}
7579

7680
}

tools/eu.numberfour.n4js.hlc/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@ Require-Bundle: eu.numberfour.n4js,
2121
eu.numberfour.n4js.tester.nodejs,
2222
eu.numberfour.n4js.tests.helper,
2323
eu.numberfour.n4js.external.libraries,
24-
org.eclipse.core.runtime
24+
org.eclipse.core.runtime,
25+
eu.numberfour.n4jsx
2526
Bundle-RequiredExecutionEnvironment: JavaSE-1.8

tools/eu.numberfour.n4js.hlc/src/main/java/eu/numberfour/n4js/hlc/N4jsc.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import com.google.inject.Provider;
5454
import com.google.inject.util.Modules;
5555

56+
import eu.numberfour.n4js.N4JSGlobals;
5657
import eu.numberfour.n4js.N4JSRuntimeModule;
5758
import eu.numberfour.n4js.N4JSStandaloneSetup;
5859
import eu.numberfour.n4js.binaries.BinariesPreferenceStore;
@@ -87,13 +88,15 @@
8788
import eu.numberfour.n4js.tester.TesterFrontEnd;
8889
import eu.numberfour.n4js.tester.TesterModule;
8990
import eu.numberfour.n4js.tester.extension.ITesterDescriptor;
91+
import eu.numberfour.n4js.tester.extension.TestFileExtensionsRegistry;
9092
import eu.numberfour.n4js.tester.extension.TesterRegistry;
9193
import eu.numberfour.n4js.tester.nodejs.NodeTester.NodeTesterDescriptorProvider;
9294
import eu.numberfour.n4js.ts.TypeExpressionsStandaloneSetup;
9395
import eu.numberfour.n4js.ts.TypesStandaloneSetup;
9496
import eu.numberfour.n4js.ts.typeRefs.TypeRefsPackage;
9597
import eu.numberfour.n4js.ts.types.TypesPackage;
9698
import eu.numberfour.n4js.utils.io.FileDeleter;
99+
import eu.numberfour.n4jsx.N4JSXGlobals;
97100

98101
/**
99102
* N4JS Compiler.
@@ -310,6 +313,9 @@ public class N4jsc {
310313
@Inject
311314
private TypeDefinitionGitLocationProvider gitLocationProvider;
312315

316+
@Inject
317+
private TestFileExtensionsRegistry testFileExtensionRegister;
318+
313319
/**
314320
* Entry point to start the compiler. Parses the Parameters.
315321
*
@@ -375,9 +381,11 @@ void doMain(String[] args) throws ExitCodeException {
375381
// help.
376382
initInjection(refProperties());
377383

378-
// Wire up available runners and testers.
384+
// Wire up available runners and testers and test file extensions
379385
runnerRegistry.register(nodeRunnerDescriptorProvider.get());
380386
testerRegistry.register(nodeTesterDescriptorProvider.get());
387+
testFileExtensionRegister.register(N4JSGlobals.N4JS_FILE_EXTENSION);
388+
testFileExtensionRegister.register(N4JSXGlobals.N4JSX_FILE_EXTENSION);
381389

382390
if (listRunners) {
383391
printAvailableRunners(System.out);

0 commit comments

Comments
 (0)