KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > performance > throughput > SingleQueueThroughputTestApp


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tctest.performance.throughput;
5
6 import com.tc.object.config.ConfigVisitor;
7 import com.tc.object.config.DSOApplicationConfig;
8 import com.tc.object.config.DSOClientConfigHelper;
9 import com.tc.object.config.TransparencyClassSpec;
10 import com.tc.simulator.app.ApplicationConfig;
11 import com.tc.simulator.listener.ListenerProvider;
12 import com.tctest.performance.generate.load.Metronome;
13
14 import java.util.concurrent.BlockingQueue JavaDoc;
15 import java.util.concurrent.LinkedBlockingQueue JavaDoc;
16
17 public final class SingleQueueThroughputTestApp extends AbstractSingleQueueThroughputTestApp {
18
19   private final BlockingQueue JavaDoc rootQueue;
20
21   public SingleQueueThroughputTestApp(String JavaDoc appId, ApplicationConfig cfg, ListenerProvider listenerProvider) {
22     super(appId, cfg, listenerProvider);
23     rootQueue = new LinkedBlockingQueue JavaDoc();
24   }
25
26   public static void visitL1DSOConfig(ConfigVisitor visitor, DSOClientConfigHelper config) {
27     TransparencyClassSpec spec = config.getOrCreateSpec(Metronome.class.getName());
28     String JavaDoc className = SingleQueueThroughputTestApp.class.getName();
29     spec = config.getOrCreateSpec(className);
30     String JavaDoc methodExpression = "* " + className + "*.*(..)";
31     config.addWriteAutolock(methodExpression);
32     spec.addRoot("rootQueue", "rootQueue");
33   }
34   
35   public static void visitDSOApplicationConfig(ConfigVisitor visitor, DSOApplicationConfig config) {
36     config.addIncludePattern(Metronome.class.getName());
37     String JavaDoc className = SingleQueueThroughputTestApp.class.getName();
38     config.addIncludePattern(className);
39     String JavaDoc methodExpression = "* " + className + "*.*(..)";
40     config.addWriteAutolock(methodExpression);
41     config.addRoot("rootQueue", className + ".rootQueue");
42   }
43
44   protected void populate(Object JavaDoc data) throws InterruptedException JavaDoc {
45     if (data instanceof Metronome) {
46       synchronized (data) {
47         ((Metronome) data).starttime = System.nanoTime();
48       }
49     }
50     rootQueue.put(data);
51   }
52
53   protected void retrieve() throws InterruptedException JavaDoc {
54     Object JavaDoc data;
55     data = rootQueue.take();
56     if (data instanceof Metronome) {
57       synchronized (data) {
58         ((Metronome) data).endtime = System.nanoTime();
59       }
60       results().add(data);
61     }
62   }
63
64   protected String JavaDoc title() {
65     return "Single Shared Queue Throughput";
66   }
67 }
68
Popular Tags