You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kandula-dev@ws.apache.org by da...@apache.org on 2006/01/07 06:31:50 UTC

svn commit: r366669 - in /webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at: AbstractParticipant.java CompletionInitiatorImpl.java CompletionInitiatorStub.java CoordinatorStub.java

Author: dasarath
Date: Fri Jan  6 21:31:48 2006
New Revision: 366669

URL: http://svn.apache.org/viewcvs?rev=366669&view=rev
Log: (empty)

Modified:
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AbstractParticipant.java
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorImpl.java
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorStub.java
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CoordinatorStub.java

Modified: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AbstractParticipant.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AbstractParticipant.java?rev=366669&r1=366668&r2=366669&view=diff
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AbstractParticipant.java (original)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AbstractParticipant.java Fri Jan  6 21:31:48 2006
@@ -10,13 +10,15 @@
 
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
+import javax.xml.soap.Name;
 
+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.CoordinationService;
 import org.apache.ws.transaction.coordinator.Coordinator;
-import org.apache.ws.transaction.coordinator.ParticipantService;
 import org.apache.ws.transaction.coordinator.TimedOutException;
-import org.apache.ws.transaction.utility.Callback;
 import org.apache.ws.transaction.wsat.CoordinatorPortType;
 import org.apache.ws.transaction.wsat.Notification;
 import org.apache.ws.transaction.wsat.ParticipantPortType;
@@ -29,6 +31,10 @@
 public abstract class AbstractParticipant implements ParticipantPortType,
 		Callback {
 
+	private String id;
+
+	private EndpointReference epr;
+
 	private static Timer timer = new Timer();
 
 	public static final int RETRY_DELAY_MILLIS = 10 * 1000;
@@ -45,14 +51,22 @@
 
 	protected abstract int getStatus();
 
+	protected AbstractParticipant() {
+		id = "uuid:" + UUIDGenFactory.getUUIDGen().nextUUID();
+	}
+
+	public String getID() {
+		return id;
+	}
+
 	protected void register(boolean durable, CoordinationContext ctx)
 			throws RemoteException {
 		long timeout = 0;
 		Expires ex = ctx.getExpires();
 		if (ex != null)
 			timeout = ex.get_value().longValue();
-		EndpointReference epr = ParticipantService.getInstance().getParticipantService(
-			this, timeout);
+		epr = CoordinationService.getInstance().getParticipantService(this,
+			timeout);
 		eprOfCoordinator = ctx.register(
 			durable ? ATCoordinator.PROTOCOL_ID_DURABLE_2PC
 					: ATCoordinator.PROTOCOL_ID_VOLATILE_2PC, epr);
@@ -60,7 +74,7 @@
 
 	protected CoordinatorPortType getCoordinator() {
 		try {
-			return new CoordinatorStub(eprOfCoordinator);
+			return new CoordinatorStub(this, eprOfCoordinator);
 		} catch (Exception e) {
 			e.printStackTrace();
 			throw new RuntimeException(e);
@@ -98,8 +112,9 @@
 									p.preparedOperation(null);
 								} catch (RemoteException e) {
 									// TODO:
-									// identify wscoor:InvalidState Soap fault and stop
-									e.printStackTrace();								
+									// identify wscoor:InvalidState Soap fault
+									// and stop
+									e.printStackTrace();
 								}
 							}
 						}
@@ -194,6 +209,7 @@
 	public synchronized void timeout() throws TimedOutException {
 		System.out.println("[AbstractParticipant] timeout "
 				+ AT2PCStatus.getStatusName(getStatus()));
+
 		if (getStatus() == AT2PCStatus.NONE)
 			return;
 		try {
@@ -204,5 +220,22 @@
 			e.printStackTrace();
 		}
 		throw new TimedOutException();
+	}
+
+	public synchronized void onFault(Name code) {
+		System.out.println("[AbstractParticipant] onFault: " + code);
+
+		// FIXME:
+		try {
+			rollback();
+			forget();
+		} catch (XAException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	public EndpointReference getEndpointReference() {
+		return epr;
 	}
 }

Modified: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorImpl.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorImpl.java?rev=366669&r1=366668&r2=366669&view=diff
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorImpl.java (original)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorImpl.java Fri Jan  6 21:31:48 2006
@@ -1,6 +1,6 @@
 package org.apache.ws.transaction.coordinator.at;
 
-import org.apache.ws.transaction.utility.CallbackRegistry;
+import org.apache.ws.transaction.coordinator.CallbackRegistry;
 import org.apache.ws.transaction.wsat.CompletionInitiatorPortType;
 
 public class CompletionInitiatorImpl implements CompletionInitiatorPortType {

Modified: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorStub.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorStub.java?rev=366669&r1=366668&r2=366669&view=diff
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorStub.java (original)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CompletionInitiatorStub.java Fri Jan  6 21:31:48 2006
@@ -20,6 +20,8 @@
 import java.net.URL;
 
 import org.apache.axis.AxisFault;
+import org.apache.axis.message.addressing.EndpointReference;
+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.CompletionInitiatorBindingStub;
@@ -31,11 +33,14 @@
  */
 public class CompletionInitiatorStub extends CompletionInitiatorBindingStub {
 
-	public CompletionInitiatorStub(
-			org.apache.axis.message.addressing.EndpointReference epr)
-			throws AxisFault, MalformedURLException {
+	public CompletionInitiatorStub(EndpointReference epr) throws AxisFault,
+			MalformedURLException {
 		super(new URL(TCPSnifferHelper.redirect(epr.getAddress().toString())),
-				new Service(epr));
+				new Service());
+		// FIXME:
+		AddressingHeaders headers = new AddressingHeaders(epr, null);
+		((Service) service).setAddressingHeaders(headers);
+
 	}
 
 }

Modified: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CoordinatorStub.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CoordinatorStub.java?rev=366669&r1=366668&r2=366669&view=diff
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CoordinatorStub.java (original)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/CoordinatorStub.java Fri Jan  6 21:31:48 2006
@@ -20,6 +20,10 @@
 import java.net.URL;
 
 import org.apache.axis.AxisFault;
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.ws.transaction.coordinator.Callback;
+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.CoordinatorBindingStub;
@@ -31,11 +35,14 @@
  */
 public class CoordinatorStub extends CoordinatorBindingStub {
 
-	public CoordinatorStub(
-			org.apache.axis.message.addressing.EndpointReference epr)
+	public CoordinatorStub(Callback participant, 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, participant.getEndpointReference());
+		headers.setFaultTo(cs.getFaultDispatcherService(participant));
+		((Service) service).setAddressingHeaders(headers);
 	}
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: kandula-dev-help@ws.apache.org