1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.kandula.coordinator.at;
18
19 import org.apache.axis2.addressing.EndpointReference;
20 import org.apache.kandula.Constants;
21 import org.apache.kandula.context.AbstractContext;
22 import org.apache.kandula.context.impl.ATActivityContext;
23 import org.apache.kandula.faults.AbstractKandulaException;
24 import org.apache.kandula.faults.InvalidProtocolException;
25
26 /***
27 * @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a>
28 */
29 public class ATSubCoordinator extends ATCoordinator {
30
31 public EndpointReference addParticipant(AbstractContext context,
32 String protocol, EndpointReference participantEPR)
33 throws AbstractKandulaException {
34 ATActivityContext atContext = (ATActivityContext) context;
35 if (protocol.equals(Constants.WS_AT_DURABLE2PC)) {
36 if (!atContext.getSubDurableRegistered()) {
37
38 atContext.setSubDurableRegistered(true);
39 }
40 return atContext.addParticipant(participantEPR, protocol);
41 }
42
43 else if (protocol.equals(Constants.WS_AT_VOLATILE2PC)) {
44 if (!atContext.getSubDurableRegistered()) {
45
46 atContext.setSubDurableRegistered(true);
47 }
48 return atContext.addParticipant(participantEPR, protocol);
49 } else
50 throw new InvalidProtocolException();
51 }
52
53 public void commitOperation(String id) throws AbstractKandulaException {
54 throw new InvalidProtocolException(
55 "This activity is a Sub Ordinate activity. Completion Protocol not supported.");
56 }
57
58 public void rollbackOperation(String id) throws AbstractKandulaException {
59 throw new InvalidProtocolException(
60 "This activity is a Sub Ordinate activity. Completion Protocol not supported.");
61 }
62
63 }