KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > LiteralAutoLockTestApp


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;
5
6 import EDU.oswego.cs.dl.util.concurrent.CyclicBarrier;
7
8 import com.tc.object.config.ConfigVisitor;
9 import com.tc.object.config.DSOClientConfigHelper;
10 import com.tc.object.config.TransparencyClassSpec;
11 import com.tc.object.config.spec.CyclicBarrierSpec;
12 import com.tc.simulator.app.ApplicationConfig;
13 import com.tc.simulator.listener.ListenerProvider;
14 import com.tctest.runner.AbstractTransparentApp;
15
16 import java.util.HashSet JavaDoc;
17 import java.util.Set JavaDoc;
18
19 public class LiteralAutoLockTestApp extends AbstractTransparentApp {
20   private Set JavaDoc nodes = new HashSet JavaDoc();
21   private CyclicBarrier barrier = new CyclicBarrier(2);
22
23   public LiteralAutoLockTestApp(String JavaDoc appId, ApplicationConfig cfg, ListenerProvider listenerProvider) {
24     super(appId, cfg, listenerProvider);
25   }
26
27   public void run() {
28     int size = 0;
29     synchronized ("Steve") {
30       nodes.add(new Object JavaDoc());
31       size = nodes.size();
32     }
33     try {
34       System.out.println("barrier:" + size);
35       barrier.barrier();
36       System.out.println("barrier out:" + size);
37     } catch (InterruptedException JavaDoc ie) {
38       notifyError(ie);
39     }
40   }
41
42   public static void visitL1DSOConfig(ConfigVisitor visitor, DSOClientConfigHelper config) {
43     String JavaDoc testClass = LiteralAutoLockTestApp.class.getName();
44     TransparencyClassSpec spec = config.getOrCreateSpec(testClass);
45
46     String JavaDoc methodExpression = "* " + testClass + "*.*(..)";
47     config.addWriteAutolock(methodExpression);
48     spec.addRoot("nodes", "nodes");
49     spec.addRoot("barrier", "barrier");
50     new CyclicBarrierSpec().visit(visitor, config);
51   }
52 }
53
Popular Tags