KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > transaction > manager > MockResourceManager


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 package org.apache.geronimo.transaction.manager;
19
20 import java.util.HashMap JavaDoc;
21 import java.util.HashSet JavaDoc;
22 import java.util.Map JavaDoc;
23 import java.util.Set JavaDoc;
24
25 import javax.transaction.SystemException JavaDoc;
26 import javax.transaction.xa.XAException JavaDoc;
27 import javax.transaction.xa.XAResource JavaDoc;
28 import javax.transaction.xa.Xid JavaDoc;
29
30 /**
31  *
32  *
33  * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
34  */

35 public class MockResourceManager implements ResourceManager {
36     private boolean willCommit;
37     private Map JavaDoc xids = new HashMap JavaDoc();
38
39     private NamedXAResource resources;
40     private NamedXAResource returnedResources;
41
42     public MockResourceManager(boolean willCommit) {
43         this.willCommit = willCommit;
44     }
45
46     public MockResource getResource(String JavaDoc xaResourceName) {
47         MockResource mockResource = new MockResource(this, xaResourceName);
48         resources = mockResource;
49         return mockResource;
50     }
51
52     public void join(Xid JavaDoc xid, XAResource JavaDoc xaRes) throws XAException JavaDoc {
53         Set JavaDoc resSet = (Set JavaDoc) xids.get(xid);
54         if (resSet == null) {
55             throw new XAException JavaDoc(XAException.XAER_NOTA);
56         }
57         resSet.add(xaRes);
58     }
59
60     public void newTx(Xid JavaDoc xid, XAResource JavaDoc xaRes) throws XAException JavaDoc {
61         if (xids.containsKey(xid)) {
62             throw new XAException JavaDoc(XAException.XAER_DUPID);
63         }
64         Set JavaDoc resSet = new HashSet JavaDoc();
65         resSet.add(xaRes);
66         xids.put(xid, resSet);
67     }
68
69     public void forget(Xid JavaDoc xid, XAResource JavaDoc xaRes) throws XAException JavaDoc {
70         if (xids.remove(xid) == null) {
71             throw new XAException JavaDoc(XAException.XAER_NOTA);
72         }
73     }
74
75     public NamedXAResource getRecoveryXAResources() throws SystemException JavaDoc {
76         return resources;
77     }
78
79     public void returnResource(NamedXAResource xaResource) {
80         returnedResources = xaResource;
81     }
82
83     public boolean areAllResourcesReturned() {
84         return returnedResources != null && returnedResources == resources;
85     }
86 }
87
Popular Tags