KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > cache > transaction > NotifyingTransactionManager


1 /*
2  * JBoss, Home of Professional Open Source
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  */

7 package org.jboss.cache.transaction;
8
9 import org.jboss.cache.TransactionManagerLookup;
10
11 import javax.transaction.NotSupportedException JavaDoc;
12 import javax.transaction.RollbackException JavaDoc;
13 import javax.transaction.SystemException JavaDoc;
14 import javax.transaction.Transaction JavaDoc;
15 import javax.transaction.TransactionManager JavaDoc;
16
17 /**
18  * A dummy transaction manager that notifies registered listeners of the various phases of a 2PC so exceptions, etc. can be injected.
19  *
20  * @author <a HREF="mailto:manik@jboss.org">Manik Surtani (manik@jboss.org)</a>
21  */

22 public class NotifyingTransactionManager extends DummyTransactionManager implements TransactionManagerLookup
23 {
24    public NotifyingTransactionManager()
25    {
26       super();
27    }
28
29    Notification notification;
30
31    public void begin() throws SystemException JavaDoc, NotSupportedException JavaDoc
32    {
33       super.begin();
34       try
35       {
36          System.out.println("Calling notification.notify()");
37          notification.notify(getTransaction());
38       }
39       catch (RollbackException JavaDoc e)
40       {
41          e.printStackTrace();
42       }
43    }
44
45    public TransactionManager JavaDoc getTransactionManager() throws Exception JavaDoc
46    {
47       return this;
48    }
49
50    public interface Notification
51    {
52       public void notify(Transaction JavaDoc tx) throws SystemException JavaDoc, RollbackException JavaDoc;
53    }
54
55 }
56
57
58
59
Popular Tags