Skip to content

Commit 7f7b911

Browse files
committed
Made TestScanner initializion lazy to avoid issues with systems not having java compiler and working on non java course
1 parent 9e4b941 commit 7f7b911

File tree

15 files changed

+41
-21
lines changed

15 files changed

+41
-21
lines changed

build-tools/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>fi.helsinki.cs.tmc</groupId>
44
<artifactId>build-tools</artifactId>
5-
<version>0.3.1-SNAPSHOT</version>
5+
<version>0.3.2-SNAPSHOT</version>
66
<name>build-tools</name>
77

88
<!-- Deploy to maven.testmycode.net/nexus -->

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>fi.helsinki.cs.tmc</groupId>
55
<artifactId>tmc-langs</artifactId>
6-
<version>0.3.1-SNAPSHOT</version>
6+
<version>0.3.2-SNAPSHOT</version>
77
<packaging>pom</packaging>
88
<name>tmc-langs</name>
99
<url>http://testmycode.net</url>

tmc-langs-cli/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<artifactId>tmc-langs</artifactId>
66
<groupId>fi.helsinki.cs.tmc</groupId>
7-
<version>0.3.1-SNAPSHOT</version>
7+
<version>0.3.2-SNAPSHOT</version>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>
1010

tmc-langs-framework/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>fi.helsinki.cs.tmc</groupId>
66
<artifactId>tmc-langs</artifactId>
7-
<version>0.3.1-SNAPSHOT</version>
7+
<version>0.3.2-SNAPSHOT</version>
88
<relativePath>../</relativePath>
99
</parent>
1010
<properties>

tmc-langs-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>fi.helsinki.cs.tmc</groupId>
66
<artifactId>tmc-langs</artifactId>
7-
<version>0.3.1-SNAPSHOT</version>
7+
<version>0.3.2-SNAPSHOT</version>
88
</parent>
99

1010
<properties>

tmc-langs-java/src/main/java/fi/helsinki/cs/tmc/langs/java/AbstractJavaPlugin.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ public abstract class AbstractJavaPlugin extends AbstractLanguagePlugin {
4646

4747
private final TestResultParser resultParser = new TestResultParser();
4848
private final Path testFolderPath;
49-
private final TestScanner testScanner;
49+
private final LazyTestScanner testScanner;
5050

5151
/**
5252
* Creates a new AbstractJavaPlugin.
5353
*/
5454
public AbstractJavaPlugin(
55-
Path testFolderPath, SubmissionProcessor submissionProcessor, TestScanner testScanner) {
55+
Path testFolderPath, SubmissionProcessor submissionProcessor, LazyTestScanner testScanner) {
5656
super(
5757
new ExerciseBuilder(),
5858
submissionProcessor,
@@ -108,13 +108,14 @@ public Optional<ExerciseDesc> scanExercise(Path path, String exerciseName) {
108108
stb.append(cp.toString());
109109
stb.append(":");
110110
}
111-
testScanner.setClassPath(stb.toString());
111+
TestScanner scanner = testScanner.get();
112+
scanner.setClassPath(stb.toString());
112113
for (File sourceFile : sourceFiles.getSources()) {
113-
testScanner.addSource(sourceFile);
114+
scanner.addSource(sourceFile);
114115
}
115116

116-
List<TestMethod> tests = testScanner.findTests();
117-
testScanner.clearSources();
117+
List<TestMethod> tests = scanner.findTests();
118+
scanner.clearSources();
118119

119120
return Optional.of(ExerciseDesc.from(exerciseName, tests));
120121
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package fi.helsinki.cs.tmc.langs.java;
2+
3+
import fi.helsinki.cs.tmc.testscanner.TestScanner;
4+
5+
/**
6+
* Creates testscanner only when needed, to avoid issues whre no java compiler is present.
7+
*/
8+
public class LazyTestScanner {
9+
10+
private TestScanner testScanner;
11+
12+
public TestScanner get() {
13+
if (this.testScanner == null) {
14+
this.testScanner = new TestScanner();
15+
}
16+
return this.testScanner;
17+
}
18+
}

tmc-langs-java/src/main/java/fi/helsinki/cs/tmc/langs/java/ant/AntPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import fi.helsinki.cs.tmc.langs.io.sandbox.StudentFileAwareSubmissionProcessor;
88
import fi.helsinki.cs.tmc.langs.java.AbstractJavaPlugin;
99
import fi.helsinki.cs.tmc.langs.java.ClassPath;
10+
import fi.helsinki.cs.tmc.langs.java.LazyTestScanner;
1011
import fi.helsinki.cs.tmc.langs.java.TestRunFileAndLogs;
1112
import fi.helsinki.cs.tmc.langs.java.exception.TestRunnerException;
1213
import fi.helsinki.cs.tmc.langs.java.exception.TestScannerException;
13-
import fi.helsinki.cs.tmc.testscanner.TestScanner;
1414

1515
import com.google.common.base.Optional;
1616
import com.google.common.base.Preconditions;
@@ -70,7 +70,7 @@ public class AntPlugin extends AbstractJavaPlugin {
7070
* Create a new AntPlugin.
7171
*/
7272
public AntPlugin() {
73-
super(TEST_DIR, new StudentFileAwareSubmissionProcessor(), new TestScanner());
73+
super(TEST_DIR, new StudentFileAwareSubmissionProcessor(), new LazyTestScanner());
7474
}
7575

7676
@Override

tmc-langs-java/src/main/java/fi/helsinki/cs/tmc/langs/java/maven/MavenPlugin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import fi.helsinki.cs.tmc.langs.io.sandbox.StudentFileAwareSubmissionProcessor;
77
import fi.helsinki.cs.tmc.langs.java.AbstractJavaPlugin;
88
import fi.helsinki.cs.tmc.langs.java.ClassPath;
9+
import fi.helsinki.cs.tmc.langs.java.LazyTestScanner;
910
import fi.helsinki.cs.tmc.langs.java.TestRunFileAndLogs;
1011
import fi.helsinki.cs.tmc.langs.java.exception.TestRunnerException;
1112
import fi.helsinki.cs.tmc.langs.java.exception.TestScannerException;
@@ -41,7 +42,7 @@ public final class MavenPlugin extends AbstractJavaPlugin {
4142
* Creates a new MavenPlugin.
4243
*/
4344
public MavenPlugin() {
44-
super(TEST_FOLDER, new StudentFileAwareSubmissionProcessor(), new TestScanner());
45+
super(TEST_FOLDER, new StudentFileAwareSubmissionProcessor(), new LazyTestScanner());
4546
}
4647

4748
@Override

tmc-langs-java/src/test/java/fi/helsinki/cs/tmc/langs/java/AbstractJavaPluginTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ private class StubLanguagePlugin extends AbstractJavaPlugin {
4444
public StubLanguagePlugin(
4545
Path testFolderPath,
4646
SubmissionProcessor submissionProcessor,
47-
TestScanner testScanner) {
47+
LazyTestScanner testScanner) {
4848
super(testFolderPath, submissionProcessor, testScanner);
4949
}
5050

5151
public StubLanguagePlugin(Path testFolderPath) {
52-
super(testFolderPath, new StudentFileAwareSubmissionProcessor(), new TestScanner());
52+
super(testFolderPath, new StudentFileAwareSubmissionProcessor(), new LazyTestScanner());
5353
}
5454

5555
@Override

0 commit comments

Comments
 (0)