Author: dasarath
Date: Fri Jan 6 21:32:13 2006
New Revision: 366670
URL: http://svn.apache.org/viewcvs?rev=366670&view=rev
Log: (empty)
Modified:
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinator.java
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionCoordinatorImpl.java
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantImpl.java
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantStub.java
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/TransactionImpl.java
Modified:
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinator.java
URL:
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinator.java?rev=366670&r1=366669&r2=366670&view=diff
==============================================================================
---
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinator.java
(original)
+++
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinator.java
Fri Jan 6 21:32:13 2006
@@ -24,6 +24,7 @@
public interface ATCoordinator extends Coordinator, CoordinatorPortType,
CompletionCoordinatorPortType {
+
final QName PARTICIPANT_REF = new QName("http://ws.apache.org/kandula",
"ParticipantRef");
Modified:
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionCoordinatorImpl.java
URL:
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionCoordinatorImpl.java?rev=366670&r1=366669&r2=366670&view=diff
==============================================================================
---
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionCoordinatorImpl.java
(original)
+++
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionCoordinatorImpl.java
Fri Jan 6 21:32:13 2006
@@ -6,7 +6,7 @@
import java.rmi.RemoteException;
-import org.apache.ws.transaction.utility.CallbackRegistry;
+import org.apache.ws.transaction.coordinator.CallbackRegistry;
import org.apache.ws.transaction.wsat.CompletionCoordinatorPortType;
import org.apache.ws.transaction.wsat.Notification;
@@ -18,13 +18,13 @@
public void commitOperation(Notification params) throws RemoteException
{
ATCoordinator c = (ATCoordinator)
CallbackRegistry.getInstance().correlateMessage(
- CallbackRegistry.COORDINATOR_REF, false);
+ CallbackRegistry.CALLBACK_REF, false);
c.commitOperation(params);
}
public void rollbackOperation(Notification params) throws
RemoteException {
ATCoordinator c = (ATCoordinator)
CallbackRegistry.getInstance().correlateMessage(
- CallbackRegistry.COORDINATOR_REF, false);
+ CallbackRegistry.CALLBACK_REF, false);
c.rollbackOperation(params);
}
Modified:
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantImpl.java
URL:
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantImpl.java?rev=366670&r1=366669&r2=366670&view=diff
==============================================================================
---
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantImpl.java
(original)
+++
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantImpl.java
Fri Jan 6 21:32:13 2006
@@ -6,7 +6,7 @@
import java.rmi.RemoteException;
-import org.apache.ws.transaction.utility.CallbackRegistry;
+import org.apache.ws.transaction.coordinator.CallbackRegistry;
import org.apache.ws.transaction.wsat.Notification;
import org.apache.ws.transaction.wsat.ParticipantPortType;
Modified:
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantStub.java
URL:
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantStub.java?rev=366670&r1=366669&r2=366670&view=diff
==============================================================================
---
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantStub.java
(original)
+++
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ParticipantStub.java
Fri Jan 6 21:32:13 2006
@@ -20,6 +20,9 @@
import java.net.URL;
import org.apache.axis.AxisFault;
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.ws.transaction.coordinator.CoordinationService;
+import org.apache.ws.transaction.utility.AddressingHeaders;
import org.apache.ws.transaction.utility.Service;
import org.apache.ws.transaction.utility.TCPSnifferHelper;
import org.apache.ws.transaction.wsat.ParticipantBindingStub;
@@ -31,11 +34,19 @@
*/
public class ParticipantStub extends ParticipantBindingStub {
- public ParticipantStub(
- org.apache.axis.message.addressing.EndpointReference
epr)
- throws AxisFault, MalformedURLException {
+ public ParticipantStub(ATCoordinator coordinator, String participantRef,
+ EndpointReference epr) throws AxisFault,
MalformedURLException {
super(new
URL(TCPSnifferHelper.redirect(epr.getAddress().toString())),
- new Service(epr));
+ new Service());
+
+ CoordinationService cs = CoordinationService.getInstance();
+
+ AddressingHeaders headers = new AddressingHeaders(epr,
+ cs.getCoordinatorService(coordinator,
participantRef));
+ headers.setFaultTo(cs.getFaultDispatcherService(coordinator,
+ participantRef));
+ ((Service) service).setAddressingHeaders(headers);
+
}
}
Modified:
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/TransactionImpl.java
URL:
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/TransactionImpl.java?rev=366670&r1=366669&r2=366670&view=diff
==============================================================================
---
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/TransactionImpl.java
(original)
+++
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/TransactionImpl.java
Fri Jan 6 21:32:13 2006
@@ -16,15 +16,19 @@
*/
package org.apache.ws.transaction.coordinator.at;
+import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.transaction.RollbackException;
+import javax.xml.soap.Name;
+import org.apache.axis.AxisFault;
+import org.apache.axis.components.uuid.UUIDGenFactory;
import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.ws.transaction.coordinator.Callback;
import org.apache.ws.transaction.coordinator.CoordinationContext;
-import org.apache.ws.transaction.coordinator.ParticipantService;
+import org.apache.ws.transaction.coordinator.CoordinationService;
import org.apache.ws.transaction.coordinator.TimedOutException;
-import org.apache.ws.transaction.utility.Callback;
import org.apache.ws.transaction.wsat.CompletionInitiatorPortType;
import org.apache.ws.transaction.wsat.Notification;
import org.apache.ws.transaction.wscoor.Expires;
@@ -58,23 +62,31 @@
if (ex != null)
timeout = ex.get_value().longValue();
callback = new CompletionInitiatorCallback();
+ EndpointReference epr =
CoordinationService.getInstance().getCompletionInitiatorService(
+ callback, timeout);
+ callback.setEndpointReference(epr);
eprOfCompletionCoordinator = ctx.register(
- ATCoordinator.PROTOCOL_ID_COMPLETION,
-
ParticipantService.getInstance().getCompletionInitiatorService(
- callback, timeout));
+ ATCoordinator.PROTOCOL_ID_COMPLETION, epr);
canInitiateCompletion = true;
}
private class CompletionInitiatorCallback implements
CompletionInitiatorPortType, Callback {
- public synchronized void committedOperation(Notification
parameters)
- throws RemoteException {
+
+ private String id;
+
+ private EndpointReference epr;
+
+ public CompletionInitiatorCallback() {
+ id = "uuid:" + UUIDGenFactory.getUUIDGen().nextUUID();
+ }
+
+ public synchronized void committedOperation(Notification
parameters) {
committed = true;
notify();
}
- public synchronized void abortedOperation(Notification
parameters)
- throws RemoteException {
+ public synchronized void abortedOperation(Notification
parameters) {
aborted = true;
notify();
}
@@ -83,6 +95,22 @@
timedOut = true;
notify();
}
+
+ public synchronized void onFault(Name code) {
+ notify();
+ }
+
+ public String getID() {
+ return id;
+ }
+
+ public void setEndpointReference(EndpointReference epr) {
+ this.epr = epr;
+ }
+
+ public EndpointReference getEndpointReference() {
+ return epr;
+ }
}
protected CoordinationContext getCoordinationContex() {
@@ -112,7 +140,7 @@
if (!aborted) {
if (committed)
throw new
IllegalStateException();
- new
CompletionCoordinatorStub(eprOfCompletionCoordinator).rollbackOperation(null);
+
getCompletionCoordinatorStub().rollbackOperation(null);
callback.wait();
}
}
@@ -120,7 +148,7 @@
throw new TimedOutException();
if (!aborted)
throw new RollbackException();
- } catch (RemoteException e) {
+ } catch (RemoteException e) {
throw e;
} catch (Exception e) {
e.printStackTrace();
@@ -130,6 +158,12 @@
}
}
+ private CompletionCoordinatorStub getCompletionCoordinatorStub()
+ throws AxisFault, MalformedURLException {
+ return new CompletionCoordinatorStub(callback,
+ eprOfCompletionCoordinator);
+ }
+
public void commit() throws RemoteException {
TransactionManagerImpl tm =
TransactionManagerImpl.getInstance();
TransactionImpl tx = tm.suspend();
@@ -142,7 +176,7 @@
if (!committed) {
if (aborted)
throw new
IllegalStateException();
- new
CompletionCoordinatorStub(eprOfCompletionCoordinator).commitOperation(null);
+
getCompletionCoordinatorStub().commitOperation(null);
callback.wait();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]