1 package org.collectionspace.services.IntegrationTests.test;
3 import org.collectionspace.services.IntegrationTests.xmlreplay.ServiceResult;
4 import org.collectionspace.services.IntegrationTests.xmlreplay.XmlReplay;
5 import org.collectionspace.services.IntegrationTests.xmlreplay.XmlReplayTest;
6 import org.collectionspace.services.common.api.Tools;
8 import org.testng.annotations.Test;
10 import java.util.ArrayList;
11 import java.util.List;
14 Maven surefire doesn't let you pass stuff on the command line
15 unless you define -DforkMode=never inn the command-line args.
16 So be sure to use a command-line like:
17 mvn -e test -DxmlReplayMaster=dev-master.xml -DforkMode=never -Dtest=XmlReplayDevTest
20 * $LastChangedRevision: $
23 public class XmlReplayDevTest extends XmlReplayTest {
26 public void runMaster() throws Exception {
27 String masterFile = System.getProperty("xmlReplayMaster");
28 if (Tools.notEmpty(masterFile)){
29 System.out.println("Using masterFile specified in System property: "+masterFile);
31 masterFile = XmlReplay.DEFAULT_DEV_MASTER_CONTROL;
32 System.out.println("Using default masterFile: "+masterFile);
34 XmlReplay replay = createXmlReplayUsingIntegrationTestsModule("..");
35 if (replay.masterConfigFileExists(masterFile)){ // CSPACE-4027
36 List<List<ServiceResult>> list = replay.runMaster(masterFile);
37 logTestForGroup(list, "XmlReplayMasterTest");
39 System.out.println("XmlReplayDevTest skipping local dev test "+masterFile+" because it doesn't exist in "+replay.getBaseDir()+". This is expected behavior on a production installation.");
43 //used for testing load.
44 // bigLoop(masterFile);
47 private void bigLoop(String masterFile){
49 long start = System.currentTimeMillis();
50 for (int t=0; t<MAXWORKERS; t++){
51 Worker w = new Worker(masterFile, "Worker"+t, this);
52 synchronized (workers){
60 System.out.println("DONE. workers: "+MAXWORKERS+" time: "+(System.currentTimeMillis()-start));
62 System.out.println(""+l);
66 private List<Worker> workers = new ArrayList<Worker>();
67 private List<Long> stats = new ArrayList<Long>();
68 private volatile boolean quitNow = false;
69 protected void finished(Worker worker, Long time){
70 synchronized(workers){
71 workers.remove(worker);
73 if (workers.size()==0){
76 System.out.println("Workers left: "+workers.size());
82 public static class Worker extends Thread{
83 public Worker(String masterFile, String ID, XmlReplayDevTest dtest){
85 this.masterFile = masterFile;
88 private String masterFile;
89 private XmlReplayDevTest dtest;
93 long start = System.currentTimeMillis();
94 System.out.println("RUNNING Master in Worker: "+this.getName());
95 XmlReplay replay = createXmlReplayUsingIntegrationTestsModule("..");
96 List<List<ServiceResult>> list = replay.runMaster(masterFile);
97 logTestForGroup(list, "XmlReplayMasterTest");
98 long stop = System.currentTimeMillis();
99 dtest.finished(this, stop-start);
100 } catch (Exception e){
101 System.out.println("ERROR in Worker: "+e);