Skip to content

Commit d0010d9

Browse files
committed
Updated the Tester.java to retrieve tester version number from pom.xml istead of hardcoding it.
1 parent 5bf1aa9 commit d0010d9

1 file changed

Lines changed: 56 additions & 13 deletions

File tree

src/tester/Tester.java

Lines changed: 56 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
package tester;
22

33
//import java.lang.annotation.Annotation;
4-
import java.lang.reflect.*;
5-
import java.util.*;
6-
import java.io.*;
4+
import java.io.BufferedReader;
5+
import java.io.File;
6+
import java.io.FileReader;
7+
import java.io.InputStream;
8+
import java.io.InputStreamReader;
9+
import java.io.PrintWriter;
10+
import java.io.StringWriter;
11+
import java.lang.reflect.Array;
12+
import java.lang.reflect.Constructor;
13+
import java.lang.reflect.Method;
14+
import java.util.ArrayList;
15+
import java.util.Comparator;
16+
import java.util.Set;
17+
import java.util.regex.Matcher;
18+
import java.util.regex.Pattern;
719

820
//import org.apache.log4j.Logger;
921

@@ -24,18 +36,19 @@
2436
* <P>Displays the data even if no tests are present.</P>
2537
*
2638
* @author Viera K. Proulx, Weston Jossey, Shayne Caswell, Sachin Venugopalan
39+
* Virag Shah
2740
* @since 21 March 2008, 11 June 2008, 24 June 2008, 16 October 2008, 11
2841
* November 2008, 23 November 2008, 12 December 2008, 20 January 2009,
2942
* 18 May 2009, 19 October 2009, 10 November 2009, 16 November 2009,
3043
* 5 February 2010, 15 March 2010, 12 May 2010, 5 October 2010,
31-
* 18 February 2011, 5 July 2011, 12 January 2012, 17 June 2012
44+
* 18 February 2011, 5 July 2011, 12 January 2012, 17 June 2012,
45+
* 20 September 2012
3246
*/
3347
public class Tester {
3448
// private static final Logger logger = Logger.getLogger(Tester.class);
3549

36-
/** A <code>String</code> that reports the current tester version */
37-
private String version = "Tester Prima v.1.5.1 - 17 June 2012\n" +
38-
"-----------------------------------";
50+
/** A <code>String</code> that reports the current tester version */
51+
private static String version;
3952

4053
/** A <code>String</code> that records the results for all failed tests */
4154
protected StringBuilder failedResults = new StringBuilder(
@@ -62,11 +75,41 @@ public class Tester {
6275

6376
/** start with no tests and no failures */
6477
public Tester() {
65-
Inspector.TOLERANCE = 0.001;
66-
this.numberOfTests = 0;
67-
this.errors = 0;
68-
this.warnings = 0;
69-
this.testname = "";
78+
Inspector.TOLERANCE = 0.001;
79+
this.numberOfTests = 0;
80+
this.errors = 0;
81+
this.warnings = 0;
82+
this.testname = "";
83+
}
84+
85+
/** Read the current version of tester from the pom.xml file **/
86+
static {
87+
try {
88+
InputStream inputStream = Tester.class.getClassLoader().getResourceAsStream("META-INF/maven/ccs.neu.edu/tester/pom.xml");
89+
BufferedReader br;
90+
91+
if(inputStream == null)
92+
br = new BufferedReader(new FileReader(new File("pom.xml")));
93+
else
94+
br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
95+
96+
String line;
97+
StringBuilder sb = new StringBuilder();
98+
99+
while((line = br.readLine()) != null) {
100+
sb.append(line.trim());
101+
}
102+
103+
Pattern p = Pattern.compile("<version>(.*?)</version>");
104+
Matcher m = p.matcher(sb);
105+
m.find();
106+
107+
version = "Tester Prima v." + m.group(1) + "\n-----------------------------------";
108+
109+
} catch(Exception e) {
110+
System.out.println("** Failed to read tester version from pom.xml file. **");
111+
e.printStackTrace();
112+
}
70113
}
71114

72115
/*--------------------------------------------------------------------*/
@@ -136,7 +179,7 @@ protected void runAnyTests(Object f, boolean full, boolean printall) {
136179
this.numberOfTests = 0; // number of tests run
137180
boolean failed = false; // any tests failed?
138181

139-
System.out.println(this.version);
182+
System.out.println(version);
140183
// print the name of the 'Examples' class
141184
System.out.println("Tests defined in the class: " + f.getClass().getName() +
142185
":\n---------------------------");

0 commit comments

Comments
 (0)