KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > patterns > readwritelock > JUnitTestReadWriteLockAspects


1 /*
2  * JBoss, Home of Professional Open Source.
3  * Copyright 2006, Red Hat Middleware LLC, and individual contributors
4  * as indicated by the @author tags. See the copyright.txt file in the
5  * distribution for a full listing of individual contributors.
6  *
7  * This is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as
9  * published by the Free Software Foundation; either version 2.1 of
10  * the License, or (at your option) any later version.
11  *
12  * This software is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this software; if not, write to the Free
19  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21  */

22 package test.patterns.readwritelock;
23 import junit.framework.TestCase;
24
25 /**
26  *
27  * @version <tt>$Revision: 57186 $</tt>
28  * @author <a HREF="mailto:chussenet@yahoo.com">{Claude Hussenet Independent Consultant}</a>.
29  */

30 public class JUnitTestReadWriteLockAspects
31     extends TestCase
32       {
33     public JUnitTestReadWriteLockAspects(String JavaDoc arg0) {
34         super(arg0);
35
36     }
37
38     public static void testProcessReadWriteLockPattern()
39     {
40
41     Account accountWithoutReadWriteLock = new Account(1000);
42     processReadWriteLockPattern(accountWithoutReadWriteLock);
43
44     assertTrue("No Concurrent Issue without ReadWriteLock Aspect !",1000!=accountWithoutReadWriteLock.getBalance());
45     Account accountWithReadWriteLock = new AccountWithReadWriteLock(1000);
46     processReadWriteLockPattern(accountWithReadWriteLock);
47     assertTrue("Concurrent Issue with ReadWriteLock Aspect !",1000==accountWithReadWriteLock.getBalance());
48
49     }
50
51        public static void processReadWriteLockPattern(Account account)
52        {
53
54          new Thread JavaDoc(new ProcessTransaction(account,100)).start();
55          new Thread JavaDoc(new ProcessTransaction(account,300)).start();
56          new Thread JavaDoc(new ProcessTransaction(account,-150)).start();
57          new Thread JavaDoc(new ProcessTransaction(account,-250)).start();
58
59          try
60          {
61              Thread.sleep(500);
62          }
63          catch (Exception JavaDoc e)
64          {
65            System.out.println(e);
66          }
67        }
68
69
70
71
72
73
74
75
76 }
Popular Tags