diff --git a/.gitignore b/.gitignore
index 3da7d15..5809d6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@ buildNumber.properties
/.factorypath
/.classpath
/.project
+FrankConfig.xsd
\ No newline at end of file
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..32010bb
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frank-runner.properties b/frank-runner.properties
new file mode 100644
index 0000000..9fb306d
--- /dev/null
+++ b/frank-runner.properties
@@ -0,0 +1,3 @@
+maven=true
+jdbc.migrator.active=true
+ignore.double.jars=true
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 9c56103..2d6107e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
UTF-8
- 7.5-SNAPSHOT
+ 7.7-RC1
${maven.build.timestamp}
yyyy-MM-dd HH:mm
diff --git a/script/.gitignore b/script/.gitignore
index aca7914..1c659fd 100644
--- a/script/.gitignore
+++ b/script/.gitignore
@@ -1 +1,2 @@
/~$allIbisVersions.xlsx
+pythonHelp/__pycache__/
\ No newline at end of file
diff --git a/script/allIbisVersions.xlsx b/script/allIbisVersions.xlsx
index b91faa5..021e2bf 100644
Binary files a/script/allIbisVersions.xlsx and b/script/allIbisVersions.xlsx differ
diff --git a/script/graphs.py b/script/graphs.py
new file mode 100644
index 0000000..cc21a42
--- /dev/null
+++ b/script/graphs.py
@@ -0,0 +1,72 @@
+# This script produces graphs from the output file of
+# the ibis4pta Frank config. See the global variables at
+# the top of this script for settings.
+#
+# This is a Python script that works with Python 3. Please
+# install the following before running:
+#
+# pip3 install numpy
+# pip3 install matplotlib
+
+from matplotlib import pyplot as plt
+import numpy as np
+import csv
+from pythonHelp import pythonHelp
+
+fileToProcess = "../work/output.csv"
+# adapter = "HandlePviewsDispatcher"
+# adapter = "HandlePViewsGetData"
+# adapter = "HandlePViewsOrchestrate"
+# adapter = "HandlePviewsStore"
+adapter = "TestXSLTPipe"
+
+plottedFields = ["min", "max", "first", "last", "p50", "stdDev"]
+
+rows = []
+with open(fileToProcess, newline="") as csvFile:
+ reader = csv.DictReader(csvFile, dialect="excel", delimiter=";")
+ for row in reader:
+ rows.append(row)
+
+rowsOfAdapter = [selectedRow for selectedRow in rows if selectedRow["adapter"].strip() == adapter.strip()]
+rowsOfAdapter = sorted(rowsOfAdapter, key=lambda row: pythonHelp.sortableVersionKey(pythonHelp.SortableVersion(row["ibisversion"])))
+
+def getLabel(previous, current):
+ newVersion = (previous.getMinor() != current.getMinor()) or (previous.getMajor() != current.getMajor())
+ newType = (previous.getKind() != current.getKind())
+ if newVersion and (current.getKind() != pythonHelp.SNAPSHOT):
+ return "N"
+ if newVersion and (current.getKind() == pythonHelp.SNAPSHOT):
+ return str(current.getMajor()) + "." + str(current.getMinor())
+ if (not newVersion) and newType:
+ if(current.getKind() == pythonHelp.CANDIDATE):
+ return "C"
+ if(current.getKind() == pythonHelp.RELEASE):
+ return "R"
+ return None
+
+tickIdx = []
+tickLabel = []
+if(len(rowsOfAdapter) >= 2):
+ for i in range(1, len(rowsOfAdapter)):
+ label = getLabel(pythonHelp.SortableVersion(rowsOfAdapter[i-1]["ibisversion"]), pythonHelp.SortableVersion(rowsOfAdapter[i]["ibisversion"]))
+ if label is not None:
+ tickIdx.append(i)
+ tickLabel.append(label)
+
+x = np.arange(0, len(rowsOfAdapter))
+yraw = []
+for f in plottedFields:
+ yraw.append([float(row[f]) for row in rowsOfAdapter])
+ymax = max(max(yraw))
+for currentY in yraw:
+ y = np.array(currentY)
+ plt.plot(x,y)
+plt.legend(plottedFields)
+plt.ylim(0, ymax)
+plt.xlabel("version")
+plt.ylabel(adapter)
+plt.title('Performance trend')
+plt.xticks(tickIdx, tickLabel)
+plt.grid("on")
+plt.show()
diff --git a/script/larvaout.txt b/script/larvaout.txt
deleted file mode 100644
index ec117f7..0000000
--- a/script/larvaout.txt
+++ /dev/null
@@ -1,357 +0,0 @@
-
-
-
-
-
-
-
-
-
- Larva Test Tool
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step1.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step2.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step3.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step4.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step5.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step6.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step7.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step8.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step9.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step10.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step11.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step12.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step13.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step14.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step15.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step16.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step17.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step18.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step19.java.XsltPipe.write - scenario01/in.xml' passed
-
-
-
-
Step 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - step20.java.XsltPipe.read - scenario01/out.txt' passed
-
-
-
Scenario 'ta\script\..\..\ibis4gerrit\src\test\testtool\XsltPerfTest\scenario01 - XsltPipe scenario GenericFunctions' passed (0/1/1)
-
-
-
-
-All scenarios passed (1 scenario executed in 1128 ms)
-
-
-
-
-
-
-
-
-
-
-
diff --git a/script/perfex.bat b/script/perfex.bat
index 0b0503a..5f74a59 100644
--- a/script/perfex.bat
+++ b/script/perfex.bat
@@ -19,21 +19,23 @@ set pauseBeforeShutdown=no
-set tomcat4ibis_dir=%workspace_dir%\tomcat4ibis
-set tomcat4ibis_start="%tomcat4ibis_dir%\tomcat4ibis.bat"
-set tomcat4ibis_stop="%tomcat4ibis_dir%\shutdown.bat"
+set tomcat4ibis_dir=%workspace_dir%\frank-runner
+set tomcat4ibis_start="%tomcat4ibis_dir%\start.bat"
+set tomcat4ibis_stop="%tomcat4ibis_dir%\stop.bat"
rem setting application server type is required for versions 7.5-20191204.142425 .. 7.5-20191209.181404
set tomcat4ibis_options=-Dapplication.server.type=TOMCAT -Dtesttool.enabled=false -Dlog.level=INFO
rem The following settings have appropriate values when using tomcat4ibis
rem location where ibis under test can be reached
-set ibis_url=http://localhost/ibis
+set ibis_url=http://localhost
rem location where larva of ibis under test can be reached
set larva_url=%ibis_url%/larva/index.jsp
rem output file of larva tests. The contents of the file are not used by the script
set larva_outputfile=%workdir%\larvaout.txt
+rem no longer used - If there is only one scenarios root, we do not need an extra arg to select it
set larva_scenariosrootdirectory=%workspace_dir%\%ibisInstance%\src\test\testtool\
-set larva_execute=%larva_scenariosrootdirectory%
+rem same as scenariosroot6.directory
+set larva_execute=C:/Users/martijn/PerformanceTest/ibis4pt/src/test/testtool
set larva_waitbeforecleanup=100
set iteration=0
@@ -67,8 +69,8 @@ set logDirWin=%logDirBaseWin%\%ibisVersion%
del /q %logDirWin%\*
echo i=%iteration%: building %ibisInstance% with framework version %ibisVersion%
-echo i=%iteration%: call %tomcat4ibis_start% %tomcat4ibis_options% -Dproject.dir=%ibisInstance% -Dibis.version=%ibisVersion% -Dlog.dir=%logDirUnx%
-call %tomcat4ibis_start% %tomcat4ibis_options% -Dibis.version=%ibisVersion% -Dlog.dir=%logDirUnx%
+echo i=%iteration%: call %tomcat4ibis_start% %tomcat4ibis_options% -Dproject.dir=%ibisInstance% -Dff.version=%ibisVersion% -Dlog.dir=%logDirUnx%
+call %tomcat4ibis_start% %tomcat4ibis_options% -Dproject.dir=%ibisInstance% -Dff.version=%ibisVersion% -Dlog.dir=%logDirUnx% -Dlog.level=DEBUG
rem do a call to the console, to wait for tomcat to startup
:WaitForTomcatReady
@@ -82,7 +84,7 @@ if %pauseBeforeExecutingTests%==yes pause
for /l %%x in (1, 1, %numLarvaCycles%) do (
echo i=%iteration%, j=%%x/%numLarvaCycles%: execute larva tests
- curl -X POST %larva_url% -d "execute=%larva_execute%&scenariosrootdirectory=%larva_scenariosrootdirectory%&waitbeforecleanup=%larva_waitbeforecleanup%" > %larva_outputfile%
+ curl -X POST %larva_url% -d "execute=%larva_execute%&waitbeforecleanup=%larva_waitbeforecleanup%" > %larva_outputfile%
if ERRORLEVEL 1 (
pause
)
@@ -98,6 +100,7 @@ if %pauseBeforeShutdown%==yes pause
call %tomcat4ibis_stop%
echo i=%iteration%: waiting %tomcatShutdownWait% seconds for tomcat to shutdown version %ibisVersion%...
timeout /t %tomcatShutdownWait%
+
ENDLOCAL
EXIT /B 0
diff --git a/script/pythonHelp/pythonHelp.py b/script/pythonHelp/pythonHelp.py
new file mode 100644
index 0000000..6bd939d
--- /dev/null
+++ b/script/pythonHelp/pythonHelp.py
@@ -0,0 +1,102 @@
+# Helper functions for graphs.py
+
+# Sorting version strings. Here are two examples of version strings:
+# - 7.4-20190711.123301
+# - 7.5-RC4
+# - 7.4
+#
+
+import re
+from operator import methodcaller
+
+SNAPSHOT = 0
+CANDIDATE = 1
+RELEASE = 2
+
+REGEX_SNAPSHOT = re.compile(r'(\d*)\.(\d*)-(\d{8})\.(\d{6})')
+REGEX_CANDIDATE = re.compile(r'(\d*)\.(\d*)-RC(\d*)')
+REGEX_RELEASE = re.compile(r'(\d*)\.(\d*)')
+
+class SortableVersion:
+ def __init__(self, versionString):
+ self._versionString = versionString
+ if REGEX_SNAPSHOT.match(versionString):
+ self._kind = SNAPSHOT
+ m = REGEX_SNAPSHOT.match(versionString)
+ self._major = int(m.group(1))
+ self._minor = int(m.group(2))
+ self._dateStr = m.group(3)
+ self._timeStr = m.group(4)
+ self._rc = -1
+ elif REGEX_CANDIDATE.match(versionString):
+ self._kind = CANDIDATE
+ m = REGEX_CANDIDATE.match(versionString)
+ self._major = int(m.group(1))
+ self._minor = int(m.group(2))
+ self._rc = int(m.group(3))
+ self._dateStr = ""
+ self._timeStr = ""
+ elif REGEX_RELEASE.match(versionString):
+ self._kind = RELEASE
+ m = REGEX_RELEASE.match(versionString)
+ self._major = int(m.group(1))
+ self._minor = int(m.group(2))
+ self._rc = -1
+ self._dateStr = ""
+ self._timeStr = ""
+ else:
+ raise Exception("Unknown type of version string: {0}".format(versionString))
+
+ def getVersionString(self):
+ return self._versionString
+ def getKind(self):
+ return self._kind
+ def getMajor(self):
+ return self._major
+ def getMinor(self):
+ return self._minor
+ def getRc(self):
+ return self._rc
+ def getDateStr(self):
+ return self._dateStr
+ def getTimeStr(self):
+ return self._timeStr
+
+sortableVersionKey = lambda s: (s.getMajor(), s.getMinor(), s.getKind(), s.getRc(), s.getDateStr(), s.getTimeStr())
+
+def sortSortableVersions(l):
+ return sorted(l, key=sortableVersionKey)
+
+if __name__ == "__main__":
+ from unittest import TestCase
+ from unittest import main
+
+ class SortableVersionTest(TestCase):
+ def testSnapshot(self):
+ instance = SortableVersion("11.24-20190711.123301")
+ self.assertEqual(SNAPSHOT, instance.getKind())
+ self.assertEqual(11, instance.getMajor())
+ self.assertEqual(24, instance.getMinor())
+ self.assertEqual("20190711", instance.getDateStr())
+ self.assertEqual("123301", instance.getTimeStr())
+ def testCandidate(self):
+ instance = SortableVersion("71.53-RC112")
+ self.assertEqual(CANDIDATE, instance.getKind())
+ self.assertEqual(71, instance.getMajor())
+ self.assertEqual(53, instance.getMinor())
+ self.assertEqual(112, instance.getRc())
+ def testRelease(self):
+ instance = SortableVersion("12.14")
+ self.assertEqual(RELEASE, instance.getKind())
+ self.assertEqual(12, instance.getMajor())
+ self.assertEqual(14, instance.getMinor())
+ def testSorting(self):
+ instances = [SortableVersion("7.5"), SortableVersion("7.5-20120711.133131"), SortableVersion("7.5-RC4"), SortableVersion("7.4")]
+ sortedInstances = sortSortableVersions(instances)
+ self.assertEqual(4, len(sortedInstances))
+ self.assertEqual("7.4", sortedInstances[0].getVersionString())
+ self.assertEqual("7.5-20120711.133131", sortedInstances[1].getVersionString())
+ self.assertEqual("7.5-RC4", sortedInstances[2].getVersionString())
+ self.assertEqual("7.5", sortedInstances[3].getVersionString())
+
+ main()
\ No newline at end of file
diff --git a/script/testversions - allemaal.txt b/script/testversions - allemaal.txt
deleted file mode 100644
index c14fb34..0000000
--- a/script/testversions - allemaal.txt
+++ /dev/null
@@ -1,151 +0,0 @@
-7.0-RC3
-7.1
-7.2
-7.3
-7.4
-7.5-20190827.172416
-7.5-20190930.110029
-7.5-20191031.185342
-7.5-20191129.134232
-7.5-20191211.164845
-7.0-RC1
-7.0-RC2
-7.1-B1
-7.1-B3
-7.1-B4
-7.3-RC1
-7.4-20190711.123301
-7.4-20190808.154826
-7.5-20190809.094412
-7.5-20190925.181956
-7.5-20191018.182604
-7.5-20191108.165146
-7.5-20190904.172658
-7.5-20190919.131623
-7.5-20191009.101852
-7.5-20191029.152702
-7.5-20191118.162420
-7.5-20191209.182015
-7.5-20190808.164950
-7.5-20190821.101503
-7.5-20190823.095329
-7.5-20190826.171750
-7.5-20190902.103843
-7.5-20190910.165759
-7.5-20190911.155215
-7.5-20190916.164322
-7.5-20190917.172539
-7.5-20190918.183145
-7.5-20190923.172505
-7.5-20191001.094540
-7.5-20191004.145201
-7.5-20191005.130452
-7.5-20191007.153321
-7.5-20191008.162216
-7.5-20191010.173339
-7.5-20191011.161103
-7.5-20191014.125641
-7.5-20191015.132647
-7.5-20191022.181143
-7.5-20191023.111705
-7.5-20191028.172441
-7.5-20191030.133813
-7.5-20191105.152517
-7.5-20191111.161754
-7.5-20191112.132749
-7.5-20191115.152805
-7.5-20191120.165913
-7.5-20191122.183029
-7.5-20191125.160256
-7.5-20191126.144933
-7.5-20191202.142210
-7.5-20191203.164425
-7.5-20191204.153535
-7.5-20191206.135311
-7.5-20191203.095743
-7.5-20191204.095102
-7.5-20191206.094107
-7.5-20190826.152742
-7.5-20190826.170453
-7.5-20190827.132227
-7.5-20190827.132716
-7.5-20190827.154856
-7.5-20190904.163125
-7.5-20190904.163801
-7.5-20190910.165150
-7.5-20190911.115810
-7.5-20190916.101542
-7.5-20190916.154543
-7.5-20190917.134336
-7.5-20190917.143155
-7.5-20190917.144736
-7.5-20190917.145238
-7.5-20190917.171945
-7.5-20190923.142514
-7.5-20190923.143124
-7.5-20190930.105510
-7.5-20191004.111320
-7.5-20191004.131133
-7.5-20191007.143825
-7.5-20191007.151500
-7.5-20191008.103430
-7.5-20191008.111911
-7.5-20191011.110310
-7.5-20191011.110912
-7.5-20191011.111533
-7.5-20191011.135006
-7.5-20191018.142254
-7.5-20191028.101455
-7.5-20191028.102452
-7.5-20191028.102934
-7.5-20191028.115543
-7.5-20191028.120351
-7.5-20191028.123643
-7.5-20191028.124134
-7.5-20191029.104001
-7.5-20191029.104440
-7.5-20191029.145530
-7.5-20191105.114454
-7.5-20191105.152020
-7.5-20191111.153938
-7.5-20191111.154527
-7.5-20191112.125545
-7.5-20191112.130134
-7.5-20191112.132248
-7.5-20191118.100630
-7.5-20191120.131020
-7.5-20191120.131612
-7.5-20191120.140652
-7.5-20191120.142439
-7.5-20191122.134831
-7.5-20191122.135456
-7.5-20191122.140042
-7.5-20191122.154615
-7.5-20191122.174253
-7.5-20191122.175907
-7.5-20191125.133338
-7.5-20191125.134547
-7.5-20191125.141147
-7.5-20191129.120112
-7.5-20191129.120700
-7.5-20191129.121251
-7.5-20191129.133648
-7.5-20191203.100330
-7.5-20191203.130859
-7.5-20191203.140244
-7.5-20191203.155034
-7.5-20191203.155639
-7.5-20191203.160301
-7.5-20191203.163819
-7.5-20191204.142425
-7.5-20191204.143025
-7.5-20191206.102025
-7.5-20191206.102632
-7.5-20191206.134711
-7.5-20191209.140914
-7.5-20191209.151352
-7.5-20191209.152221
-7.5-20191209.152828
-7.5-20191209.181404
-7.5-20191211.155847
-7.5-20191211.164250
diff --git a/script/testversions.txt b/script/testversions.txt
index 91ad0c3..264886b 100644
--- a/script/testversions.txt
+++ b/script/testversions.txt
@@ -1,27 +1,40 @@
-7.4-20190715.155219
-7.4-20190726.173158
-7.4-20190801.134202
-7.4-20190807.102628
-7.0-RC3
-7.1
-7.2
-7.3
-7.3-RC1
-7.4
-7.4-20190711.123301
-7.4-20190808.154826
-7.5-20190827.172416
-7.5-20190930.110029
-7.5-20191031.185342
-7.5-20191129.134232
-7.5-20191211.164845
-7.5-20190809.094412
-7.5-20190925.181956
-7.5-20191018.182604
-7.5-20191108.165146
-7.5-20190904.172658
-7.5-20190919.131623
-7.5-20191009.101852
-7.5-20191029.152702
-7.5-20191118.162420
-7.5-20191209.182015
+7.6.3
+7.6.4-20220124.135322
+7.6.4-20220126.102858
+7.6.4-20220202.142857
+7.7-20220104.143424
+7.7-20220104.143424
+7.7-20220110.185459
+7.7-20220110.185459
+7.7-20220113.084005
+7.7-20220113.084005
+7.7-20220114.094240
+7.7-20220114.094240
+7.7-20220119.181824
+7.7-20220119.181824
+7.7-20220121.132247
+7.7-20220121.132247
+7.7-20220125.112844
+7.7-20220125.112844
+7.7-20220128.110040
+7.7-20220128.110040
+7.7-20220131.103955
+7.7-20220131.103955
+7.7-20220202.144505
+7.7-20220202.144505
+7.7-RC2-20220211.161840
+7.7-RC2-20220214.124423
+7.7-RC2-20220217.140124
+7.7-RC2-20220224.162721
+7.7-RC2-20220308.094342
+7.8-20220209.124814
+7.8-20220209.124814
+7.8-20220211.135739
+7.8-20220211.135739
+7.8-20220214.151507
+7.8-20220214.151507
+7.8-20220218.173348
+7.8-20220221.105419
+7.8-20220224.165728
+7.8-20220307.153507
+7.8-20220309.165538
\ No newline at end of file
diff --git a/src/main/resources/CollectStatistics/jsonStatisticsToCsv.xslt b/src/main/resources/CollectStatistics/jsonStatisticsToCsv.xslt
index 95490ff..9a1b3f4 100644
--- a/src/main/resources/CollectStatistics/jsonStatisticsToCsv.xslt
+++ b/src/main/resources/CollectStatistics/jsonStatisticsToCsv.xslt
@@ -7,39 +7,40 @@
_statistics_
;
"
-
+
-
-
-
+
+
+
;
-
+ $quot,j:string[@key='error'],$quot)" />
+ ;
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
;
+ j:*[@key='count'],$sep,
+ j:*[@key='min'],$sep,
+ j:*[@key='max'],$sep,
+ j:*[@key='avg'],$sep,
+ j:*[@key='stdDev'],$sep,
+ j:*[@key='sum'],$sep,
+ j:*[@key='first'],$sep,
+ j:*[@key='last'],$sep,
+ j:*[@key='p50'],$sep,
+ j:*[@key='p90'],$sep,
+ j:*[@key='p95'],$sep,
+ j:*[@key='p98'])" />
+ ;
-
+
\ No newline at end of file
diff --git a/src/main/resources/DeploymentSpecifics.properties b/src/main/resources/DeploymentSpecifics.properties
index 32eb87b..526249d 100644
--- a/src/main/resources/DeploymentSpecifics.properties
+++ b/src/main/resources/DeploymentSpecifics.properties
@@ -16,7 +16,8 @@ jdbc.convertFieldnamesToUppercase=true
#Ibis4Template
CollectStatistics.active=true
-CollectStatistics.rootFolder=C:/Gerrit/Workspaces/eclipse/ibis4pta/work
+#CollectStatistics.rootFolder=C:/Gerrit/Workspaces/eclipse/ibis4pta/work
+CollectStatistics.rootFolder=c:/Users/martijn/PerformanceTest/ibis4pta/work
CollectStatistics.inputFolder=Input
CollectStatistics.processedFolder=Done
CollectStatistics.errorFolder=Error
diff --git a/src/main/webapp/.gitignore b/src/main/webapp/.gitignore
new file mode 100644
index 0000000..f59ec20
--- /dev/null
+++ b/src/main/webapp/.gitignore
@@ -0,0 +1 @@
+*
\ No newline at end of file
diff --git a/work/.gitignore b/work/.gitignore
new file mode 100644
index 0000000..b722e9e
--- /dev/null
+++ b/work/.gitignore
@@ -0,0 +1 @@
+!.gitignore
\ No newline at end of file