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