KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > cms > stress > Client


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.test.cms.stress;
10
11 import org.jboss.portal.cms.NodeFactory;
12 import org.apache.log4j.Logger;
13
14 import java.util.List JavaDoc;
15 import java.util.ArrayList JavaDoc;
16 import java.util.Collection JavaDoc;
17 import java.util.Iterator JavaDoc;
18 import java.io.StringWriter JavaDoc;
19 import java.io.PrintWriter JavaDoc;
20
21 /**
22  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
23  * @version $Revision: 1.1 $
24  */

25 public class Client implements Runnable JavaDoc
26 {
27
28    protected int id;
29
30    protected int loops;
31
32    protected Command[] scenario;
33
34    protected List JavaDoc results;
35
36    protected long waitTimeBetweenScenariosMillis;
37
38    protected NodeFactory factory;
39
40    protected Logger log;
41
42    public Client(int id, int loops, Command[] scenario, long waitTimeBetweenScenariosMillis, NodeFactory factory)
43    {
44       this.log = Logger.getLogger(Client.class.getName() + "." + id);
45       this.id = id;
46       this.loops = loops;
47       this.scenario = scenario;
48       this.waitTimeBetweenScenariosMillis = waitTimeBetweenScenariosMillis;
49       this.factory = factory;
50       this.results = new ArrayList JavaDoc();
51    }
52
53    public List JavaDoc getResults()
54    {
55       return results;
56    }
57
58    public void run()
59    {
60       while (loops-- > 0)
61       {
62          try
63          {
64             play();
65             Thread.sleep(waitTimeBetweenScenariosMillis);
66          }
67          catch (InterruptedException JavaDoc e)
68          {
69             e.printStackTrace();
70          }
71       }
72    }
73
74    protected void play()
75    {
76       Result result = new Result();
77
78       //
79
for (int i = 0; i < scenario.length; i++)
80       {
81          try
82          {
83             Command command = scenario[i];
84             log.info("Executing " + command);
85             command.execute(result, factory);
86          }
87          catch (Exception JavaDoc e)
88          {
89             e.printStackTrace();
90             StringWriter JavaDoc swriter = new StringWriter JavaDoc();
91             PrintWriter JavaDoc pwriter = new PrintWriter JavaDoc(swriter);
92             e.printStackTrace(pwriter);
93             result.addFailure(new Failure(Failure.EXCEPTION, swriter.toString()));
94          }
95       }
96
97       //
98
results.add(result);
99    }
100
101    public static class Result
102    {
103
104       private final List JavaDoc failures;
105
106       public Collection JavaDoc getFailures()
107       {
108          return failures;
109       }
110
111       private Result()
112       {
113          this.failures = new ArrayList JavaDoc();
114       }
115
116       private void addFailure(Failure failure)
117       {
118          failures.add(failure);
119       }
120
121       public void assertTrue(boolean b, String JavaDoc msg)
122       {
123          if (!b)
124          {
125             failures.add(new Failure(Failure.ASSERT, msg));
126          }
127       }
128
129       public void assertFalse(boolean b, String JavaDoc msg)
130       {
131          assertTrue(!b, msg);
132       }
133    }
134 }
135
Popular Tags