You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by th...@apache.org on 2006/03/04 13:07:51 UTC
svn commit: r383098 - in /webservices/kandula/trunk/java:
src/org/apache/kandula/context/ src/org/apache/kandula/context/impl/
src/org/apache/kandula/coordinator/at/ src/org/apache/kandula/participant/
src/org/apache/kandula/utility/ src/org/apache/kan...
Author: thilina
Date: Sat Mar 4 04:07:50 2006
New Revision: 383098
URL: http://svn.apache.org/viewcvs?rev=383098&view=rev
Log:
Adding participant commited message support
A new callback mechanism based on reflection methods to coleect votes
Modified:
webservices/kandula/trunk/java/src/org/apache/kandula/context/AbstractContext.java
webservices/kandula/trunk/java/src/org/apache/kandula/context/impl/ATActivityContext.java
webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java
webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATParticipantInformation.java
webservices/kandula/trunk/java/src/org/apache/kandula/participant/KandulaResource.java
webservices/kandula/trunk/java/src/org/apache/kandula/participant/ParticipantTransactionCoordinator.java
webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java
webservices/kandula/trunk/java/src/org/apache/kandula/wsat/AbstractATNotifierStub.java
webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/CoordinatorPortTypeRawXMLSkeleton.java
webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/ParticipantPortTypeRawXMLSkeleton.java
webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationCoordinatorPortTypeRawXMLStub.java
webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationPortTypeRawXMLSkeleton.java
webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java
webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationRequesterPortTypeRawXMLSkeleton.java
webservices/kandula/trunk/java/test/org/apache/kandula/integration/CreateCoordinationContextTest.java
webservices/kandula/trunk/java/test/org/apache/kandula/integration/DummyResource.java
webservices/kandula/trunk/java/test/org/apache/kandula/integration/KandulaDemoServiceStub.java
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/context/AbstractContext.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/context/AbstractContext.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/context/AbstractContext.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/context/AbstractContext.java Sat Mar 4 04:07:50 2006
@@ -107,4 +107,5 @@
}
public abstract String getCoordinationType();
+
}
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/context/impl/ATActivityContext.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/context/impl/ATActivityContext.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/context/impl/ATActivityContext.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/context/impl/ATActivityContext.java Sat Mar 4 04:07:50 2006
@@ -16,6 +16,7 @@
*/
package org.apache.kandula.context.impl;
+import java.lang.reflect.Method;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedList;
@@ -52,6 +53,8 @@
private boolean subDurableRegistered = false;
private EndpointReference parentEPR;
+
+ private Method callBackMethod=null;
/**
* Used when creating new activities
@@ -116,6 +119,19 @@
}
}
+ public void removeParticipant(String enlistmentID)
+ {
+ //TODO: what to do if the participant is not found
+ if (durableParticipantsTable.containsKey(enlistmentID))
+ {
+ durableParticipantsTable.remove(enlistmentID);
+ }else if(volatileParticipantsTable.containsKey(enlistmentID))
+ {
+ volatileParticipantsTable.remove(enlistmentID);
+ }
+ }
+
+
public void addVolatileParticipant(EndpointReference participantEPR,
String enlistmentID) throws AbstractKandulaException {
if (volatileParticipantsTable.contains(participantEPR))
@@ -167,19 +183,48 @@
return completionParticipant;
}
- public void countPreparing() {
+ public synchronized void countPreparing() {
preparingParticipantsCount++;
}
- public void decrementPreparing() {
+ public synchronized void decrementPreparing() {
preparingParticipantsCount--;
}
- public boolean hasMorePreparing() {
+ public synchronized boolean hasMorePreparing() {
return (preparingParticipantsCount > 0);
}
+ public int getVolatileParticipantCount()
+ {
+ return volatileParticipantsTable.size();
+ }
+
+ public int getDurableParticipantCount()
+ {
+ return durableParticipantsTable.size();
+ }
+
+
+
+
+ public String getCoordinationType() {
+ return Constants.WS_AT;
+ }
+
+ /**
+ * @return Returns the callBackMethod.
+ */
+ public Method getCallBackMethod() {
+ return callBackMethod;
+ }
+ /**
+ * @param callBackMethod The callBackMethod to set.
+ */
+ public void setCallBackMethod(Method callBackMethod) {
+ this.callBackMethod = callBackMethod;
+ }
public boolean getSubVolatileRegistered() {
return subVolatileRegistered;
@@ -196,17 +241,4 @@
public void setSubDurableRegistered(boolean value) {
subDurableRegistered = value;
}
-
- // public void prepared(Participant participant)
- // {
- // if (participant.getStatus()==Status.ParticipantStatus.STATUS_ABORTED)
- // {
- // //throw new
- // }
- // }
-
- public String getCoordinationType() {
- return Constants.WS_AT;
- }
-
}
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java Sat Mar 4 04:07:50 2006
@@ -16,6 +16,7 @@
*/
package org.apache.kandula.coordinator.at;
+import java.lang.reflect.Method;
import java.util.Iterator;
import org.apache.axis2.addressing.EndpointReference;
@@ -27,6 +28,7 @@
import org.apache.kandula.coordinator.Registerable;
import org.apache.kandula.faults.AbstractKandulaException;
import org.apache.kandula.faults.InvalidStateException;
+import org.apache.kandula.faults.KandulaGeneralException;
import org.apache.kandula.participant.Vote;
import org.apache.kandula.storage.StorageFactory;
import org.apache.kandula.storage.Store;
@@ -112,7 +114,7 @@
case CoordinatorStatus.STATUS_PREPARING_DURABLE:
case CoordinatorStatus.STATUS_PREPARING_VOLATILE:
case CoordinatorStatus.STATUS_PREPARED_SUCCESS:
- //If prepared success Ignore this message
+ // If prepared success Ignore this message
atContext.unlock();
break;
case CoordinatorStatus.STATUS_COMMITTING:
@@ -124,23 +126,13 @@
case Status.CoordinatorStatus.STATUS_ACTIVE:
atContext.setStatus(Status.CoordinatorStatus.STATUS_PREPARING);
atContext.unlock();
- volatilePrepare(atContext);
- // wait till all the Volatile prepare()'s are done
- while (atContext.hasMorePreparing()) {
- if (atContext.getStatus() == Status.CoordinatorStatus.STATUS_ABORTING) {
- return;
- }
- }
- durablePrepare(atContext);
- //wait till all the Durable prepare()'s are done
- while (atContext.hasMorePreparing()) {
- if (atContext.getStatus() == Status.CoordinatorStatus.STATUS_ABORTING) {
- return;
- }
- }
- if (!(atContext.getStatus() == Status.CoordinatorStatus.STATUS_ABORTING)) {
- commitActivity(atContext);
+ if (atContext.getVolatileParticipantCount() > 0) {
+ volatilePrepare(atContext);
+
+ } else if (atContext.getDurableParticipantCount() > 0) {
+ durablePrepare(atContext);
}
+
break;
default:
atContext.unlock();
@@ -173,7 +165,7 @@
case CoordinatorStatus.STATUS_PREPARING_DURABLE:
case CoordinatorStatus.STATUS_PREPARING_VOLATILE:
case CoordinatorStatus.STATUS_PREPARED_SUCCESS:
- //If prepared success Ignoring
+ // If prepared success Ignoring
atContext.unlock();
break;
case CoordinatorStatus.STATUS_COMMITTING:
@@ -193,6 +185,37 @@
}
}
+ public void abortedOperation(String activityID, String enlistmentID) throws AbstractKandulaException {
+ ATActivityContext atContext = (ATActivityContext) store.get(activityID);
+ synchronized (atContext) {
+ atContext.lock();
+ switch (atContext.getStatus()) {
+ case CoordinatorStatus.STATUS_NONE:
+ atContext.unlock();
+ break;
+ case CoordinatorStatus.STATUS_ABORTING:
+ atContext.unlock();
+ atContext.removeParticipant(enlistmentID);
+ break;
+ case CoordinatorStatus.STATUS_PREPARING_DURABLE:
+ case CoordinatorStatus.STATUS_PREPARING_VOLATILE:
+ case Status.CoordinatorStatus.STATUS_ACTIVE:
+ atContext.unlock();
+ atContext.removeParticipant(enlistmentID);
+ abortActivity(atContext);
+ break;
+ case CoordinatorStatus.STATUS_PREPARED_SUCCESS:
+ case CoordinatorStatus.STATUS_COMMITTING:
+ // Invalid state
+ atContext.unlock();
+ break;
+ default:
+ atContext.unlock();
+ break;
+ }
+ }
+ }
+
/**
* @param context
* @throws Exception
@@ -208,33 +231,42 @@
ATActivityContext atContext = (ATActivityContext) context;
Iterator volatilePartipantIterator = atContext
.getRegistered2PCParticipants(Constants.WS_AT_VOLATILE2PC);
- if (volatilePartipantIterator.hasNext()) {
- atContext.lock();
- atContext
- .setStatus(Status.CoordinatorStatus.STATUS_PREPARING_VOLATILE);
- atContext.unlock();
- while (volatilePartipantIterator.hasNext()) {
- atContext.countPreparing();
- stub.prepareOperation(((ATParticipantInformation) volatilePartipantIterator
- .next()).getEpr());
+ synchronized (atContext) {
+ if (volatilePartipantIterator.hasNext()) {
+ atContext.lock();
+ atContext
+ .setStatus(Status.CoordinatorStatus.STATUS_PREPARING_VOLATILE);
+ atContext.unlock();
+ while (volatilePartipantIterator.hasNext()) {
+ atContext.countPreparing();
+ stub
+ .prepareOperation(((ATParticipantInformation) volatilePartipantIterator
+ .next()).getEpr());
+ }
+ }
+ if (atContext.getDurableParticipantCount() > 0) {
+ try {
+ Method method = ATCoordinator.class.getMethod(
+ "durablePrepare",
+ new Class[] { AbstractContext.class });
+ atContext.setCallBackMethod(method);
+ } catch (Exception e) {
+ throw new KandulaGeneralException(
+ "Internal Kandula Server Error ", e);
+ }
+ } else {
+ try {
+ Method method = ATCoordinator.class.getMethod(
+ "commitActivity",
+ new Class[] { AbstractContext.class });
+ atContext.setCallBackMethod(method);
+ } catch (Exception e) {
+ throw new KandulaGeneralException(
+ "Internal Kandula Server Error ", e);
+ }
}
}
- }
-
- public void countVote(String activityID, Vote vote, String enlistmentID)
- throws AbstractKandulaException {
- ATActivityContext context = (ATActivityContext) store.get(activityID);
- ATParticipantInformation participant = context.getParticipant(enlistmentID);
- if (Vote.PREPARED.equals(vote)) {
- participant.setStatus(Status.CoordinatorStatus.STATUS_PREPARED);
- } else if (Vote.READ_ONLY.equals(vote)) {
- participant.setStatus(Status.CoordinatorStatus.STATUS_READ_ONLY);
- } else if (Vote.ABORT.equals(vote)) {
- participant.setStatus(Status.ParticipantStatus.STATUS_ABORTED);
- abortActivity(context);
- }
- context.decrementPreparing();
}
/**
@@ -252,17 +284,31 @@
ATActivityContext atContext = (ATActivityContext) context;
Iterator durablePartipantIterator = atContext
.getRegistered2PCParticipants(Constants.WS_AT_DURABLE2PC);
- if (durablePartipantIterator.hasNext()) {
- atContext.lock();
- atContext
- .setStatus(Status.CoordinatorStatus.STATUS_PREPARING_DURABLE);
- atContext.unlock();
- while (durablePartipantIterator.hasNext()) {
- atContext.countPreparing();
- stub.prepareOperation(((ATParticipantInformation) durablePartipantIterator
- .next()).getEpr());
+
+ synchronized (atContext) {
+ if (durablePartipantIterator.hasNext()) {
+ atContext.lock();
+ atContext
+ .setStatus(Status.CoordinatorStatus.STATUS_PREPARING_DURABLE);
+ atContext.unlock();
+ while (durablePartipantIterator.hasNext()) {
+ atContext.countPreparing();
+ stub
+ .prepareOperation(((ATParticipantInformation) durablePartipantIterator
+ .next()).getEpr());
+ }
+ }
+
+ try {
+ Method method = ATCoordinator.class.getMethod("commitActivity",
+ new Class[] { AbstractContext.class });
+ atContext.setCallBackMethod(method);
+ } catch (Exception e) {
+ throw new KandulaGeneralException(
+ "Internal Kandula Server Error ", e);
}
}
+
}
/**
@@ -272,7 +318,7 @@
* registered for the Transaction Must check whether all the
* participants have replied to the prepare()
*/
- private void commitActivity(AbstractContext context)
+ public void commitActivity(AbstractContext context)
throws AbstractKandulaException {
// check whether all participants have prepared
ParticipantPortTypeRawXMLStub stub = new ParticipantPortTypeRawXMLStub();
@@ -283,7 +329,8 @@
atContext.unlock();
Iterator participants = atContext.getAll2PCParticipants();
while (participants.hasNext()) {
- ATParticipantInformation participant = (ATParticipantInformation) participants.next();
+ ATParticipantInformation participant = (ATParticipantInformation) participants
+ .next();
if (!(Status.CoordinatorStatus.STATUS_READ_ONLY == participant
.getStatus())) {
stub.commitOperation(participant.getEpr());
@@ -311,13 +358,64 @@
Iterator participants = atContext.getAll2PCParticipants();
while (participants.hasNext()) {
- stub
- .rollbackOperation(((ATParticipantInformation) participants.next())
- .getEpr());
+ stub.rollbackOperation(((ATParticipantInformation) participants
+ .next()).getEpr());
}
CompletionInitiatorPortTypeRawXMLStub completionStub = new CompletionInitiatorPortTypeRawXMLStub(
atContext.getCompletionParticipant());
completionStub.abortedOperation();
+
+ }
+
+ /**
+ *
+ * @param activityID
+ * @param vote
+ * @param enlistmentID
+ * @throws AbstractKandulaException
+ */
+ // TODO seperate these TWO and check states for each case
+ public void countVote(String activityID, Vote vote, String enlistmentID)
+ throws AbstractKandulaException {
+ ATActivityContext context = (ATActivityContext) store.get(activityID);
+ ATParticipantInformation participant = context
+ .getParticipant(enlistmentID);
+
+ if (Vote.PREPARED.equals(vote)) {
+ participant.setStatus(Status.CoordinatorStatus.STATUS_PREPARED);
+ } else if (Vote.READ_ONLY.equals(vote)) {
+ participant.setStatus(Status.CoordinatorStatus.STATUS_READ_ONLY);
+ }
+ /*
+ * There can be a two invocations of the callback methode due to race
+ * conditions at decrement preparing and count preparing
+ */
+ synchronized (context) {
+ context.decrementPreparing();
+ if (!context.hasMorePreparing()) {
+ context.lock();
+ if (!(context.getStatus() == Status.CoordinatorStatus.STATUS_ABORTING)) {
+ context.unlock();
+ Method method = context.getCallBackMethod();
+ try {
+ method.invoke(this, new Object[] { context });
+
+ } catch (Exception e) {
+ throw new KandulaGeneralException(
+ "Internal Server Error", e);
+ }
+ } else {
+ context.unlock();
+ }
+ }
+ }
+
+ }
+
+ public void countParticipantOutcome(String activityID, String enlistmentID)
+ throws AbstractKandulaException {
+ ATActivityContext context = (ATActivityContext) store.get(activityID);
+ context.removeParticipant(enlistmentID);
}
}
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATParticipantInformation.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATParticipantInformation.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATParticipantInformation.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATParticipantInformation.java Sat Mar 4 04:07:50 2006
@@ -17,13 +17,15 @@
package org.apache.kandula.coordinator.at;
import org.apache.axis2.addressing.EndpointReference;
-
/**
- * @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a> <p/>
+ * * @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a>
+ */
+/**
+ * <p/>
* Used to store the details about the participant & to store the
* runtime status of Participants in the coordinator.
*/
-//TODO see whether we can avoid this class
+
public class ATParticipantInformation {
private EndpointReference epr;
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/participant/KandulaResource.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/participant/KandulaResource.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/participant/KandulaResource.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/participant/KandulaResource.java Sat Mar 4 04:07:50 2006
@@ -20,7 +20,7 @@
* @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a>
*/
public interface KandulaResource {
- public void commit();
+ public boolean commit();
public void rollback();
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/participant/ParticipantTransactionCoordinator.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/participant/ParticipantTransactionCoordinator.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/participant/ParticipantTransactionCoordinator.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/participant/ParticipantTransactionCoordinator.java Sat Mar 4 04:07:50 2006
@@ -73,9 +73,18 @@
}
}
- public void commit(AbstractContext context) throws InvalidStateException {
+ public void commit(AbstractContext context) throws AbstractKandulaException {
ATParticipantContext atContext = (ATParticipantContext) context;
- atContext.getResource().commit();
+ boolean outcome = atContext.getResource().commit();
+ CoordinatorPortTypeRawXMLStub stub = new CoordinatorPortTypeRawXMLStub(atContext
+ .getCoordinationEPR());
+ if (outcome)
+ {
+ stub.committedOperation();
+ }else
+ {
+ stub.abortedOperation();
+ }
// ATParticipantContext atContext = (ATParticipantContext) context;
// atContext.lock();
// switch (context.getStatus()) {
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java Sat Mar 4 04:07:50 2006
@@ -23,6 +23,7 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.transport.http.SimpleHTTPServer;
@@ -47,7 +48,7 @@
private KandulaListener() throws IOException {
KandulaConfiguration configuration = KandulaConfiguration
.getInstance();
- responseConfigurationContext = new org.apache.axis2.context.ConfigurationContextFactory()
+ responseConfigurationContext = ConfigurationContextFactory
.createConfigurationContextFromFileSystem(
configuration.getKandulaListenerRepository(),
configuration.getKandulaListenerAxis2Xml());
@@ -94,7 +95,6 @@
* frequent case in reponses
*/
public void addService(AxisService service) throws AxisFault {
- AxisOperation responseOperationDesc;
service.setClassLoader(Thread.currentThread().getContextClassLoader());
HashMap allServices = responseConfigurationContext
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wsat/AbstractATNotifierStub.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wsat/AbstractATNotifierStub.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wsat/AbstractATNotifierStub.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wsat/AbstractATNotifierStub.java Sat Mar 4 04:07:50 2006
@@ -23,6 +23,7 @@
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.context.ServiceGroupContext;
@@ -58,8 +59,7 @@
//creating the configuration
this.service = service;
try {
- configurationContext = new org.apache.axis2.context.ConfigurationContextFactory()
- .createConfigurationContextFromFileSystem(axis2Home,
+ configurationContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(axis2Home,
axis2Xml);
configurationContext.getAxisConfiguration().addService(service);
} catch (DeploymentException e) {
@@ -93,7 +93,7 @@
try {
Options options = new Options();
messageContext = new MessageContext();
- OperationClient client = operations[opIndex].createClient(
+ final OperationClient client = operations[opIndex].createClient(
serviceContext, options);
SOAPFactory factory = OMAbstractFactory
@@ -115,7 +115,21 @@
// options.setTranportOut(org.apache.axis2.Constants.TRANSPORT_HTTP);
// System.out.println(operations[opIndex]);
client.addMessageContext(messageContext);
- client.execute(false);
+ /*
+ * hacking till we get fire and forget corretly in Axis2
+ */
+ Thread thread = new Thread(new Runnable() {
+ public void run() {
+ try {
+ client.execute(false);
+ } catch (AxisFault e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ thread.start();
+
} catch (AxisFault e) {
throw new KandulaGeneralException(e);
}
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/CoordinatorPortTypeRawXMLSkeleton.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/CoordinatorPortTypeRawXMLSkeleton.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/CoordinatorPortTypeRawXMLSkeleton.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/CoordinatorPortTypeRawXMLSkeleton.java Sat Mar 4 04:07:50 2006
@@ -19,7 +19,6 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.kandula.Constants;
-import org.apache.kandula.context.AbstractContext;
import org.apache.kandula.coordinator.at.ATCoordinator;
import org.apache.kandula.faults.AbstractKandulaException;
import org.apache.kandula.participant.Vote;
@@ -75,7 +74,7 @@
Constants.ENLISTMENT_ID_PARAMETER).getText();
ATCoordinator coordinator = new ATCoordinator();
try {
- coordinator.countVote(activityId, Vote.ABORT, enlistmentId);
+ coordinator.abortedOperation(activityId, enlistmentId);
} catch (AbstractKandulaException e) {
AxisFault fault = new AxisFault(e);
fault.setFaultCode(e.getFaultCode());
@@ -116,8 +115,19 @@
throws AxisFault {
StorageFactory.getInstance().setConfigurationContext(
msgContext.getServiceContext().getConfigurationContext());
- AbstractContext context;
- System.out.println("Visited Committed operation");
+ OMElement header = msgContext.getEnvelope().getHeader();
+ String activityId = header.getFirstChildWithName(
+ Constants.TRANSACTION_ID_PARAMETER).getText();
+ String enlistmentId = header.getFirstChildWithName(
+ Constants.ENLISTMENT_ID_PARAMETER).getText();
+ ATCoordinator coordinator = new ATCoordinator();
+ try {
+ coordinator.countParticipantOutcome(activityId, enlistmentId);
+ } catch (AbstractKandulaException e) {
+ AxisFault fault = new AxisFault(e);
+ fault.setFaultCode(e.getFaultCode());
+ throw fault;
+ }
return null;
}
@@ -128,7 +138,6 @@
public OMElement replayOperation(OMElement requestElement) throws AxisFault {
StorageFactory.getInstance().setConfigurationContext(
msgContext.getServiceContext().getConfigurationContext());
- AbstractContext context;
System.out.println("Visited Replay operation");
return null;
}
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/ParticipantPortTypeRawXMLSkeleton.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/ParticipantPortTypeRawXMLSkeleton.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/ParticipantPortTypeRawXMLSkeleton.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wsat/twopc/ParticipantPortTypeRawXMLSkeleton.java Sat Mar 4 04:07:50 2006
@@ -65,9 +65,9 @@
Constants.REQUESTER_ID_PARAMETER).getText();
Store store = StorageFactory.getInstance().getStore();
AbstractContext context = (AbstractContext) store.get(requesterID);
- ParticipantTransactionCoordinator txManager = new ParticipantTransactionCoordinator();
+ ParticipantTransactionCoordinator participantTxManager = new ParticipantTransactionCoordinator();
try {
- txManager.commit(context);
+ participantTxManager.commit(context);
} catch (AbstractKandulaException e) {
AxisFault fault = new AxisFault(e);
fault.setFaultCode(e.getFaultCode());
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationCoordinatorPortTypeRawXMLStub.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationCoordinatorPortTypeRawXMLStub.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationCoordinatorPortTypeRawXMLStub.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationCoordinatorPortTypeRawXMLStub.java Sat Mar 4 04:07:50 2006
@@ -26,6 +26,7 @@
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.context.ServiceGroupContext;
@@ -76,7 +77,7 @@
this.toEPR = targetEndpoint;
service = new AxisService("ActivationCoordinatorPortType");
try {
- configurationContext = new org.apache.axis2.context.ConfigurationContextFactory()
+ configurationContext = ConfigurationContextFactory
.createConfigurationContextFromFileSystem(axis2Home,
axis2Xml);
configurationContext.getAxisConfiguration().addService(service);
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationPortTypeRawXMLSkeleton.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationPortTypeRawXMLSkeleton.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationPortTypeRawXMLSkeleton.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/ActivationPortTypeRawXMLSkeleton.java Sat Mar 4 04:07:50 2006
@@ -42,8 +42,6 @@
}
/**
- * Auto generated method signature
- *
* @param requestElement
* @throws AbstractKandulaException
*/
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java Sat Mar 4 04:07:50 2006
@@ -26,6 +26,7 @@
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.context.ServiceGroupContext;
@@ -77,7 +78,7 @@
this.toEPR = targetEndpoint;
service = new AxisService("RegistrationCoordinatorPortType");
try {
- configurationContext = new org.apache.axis2.context.ConfigurationContextFactory()
+ configurationContext =ConfigurationContextFactory
.createConfigurationContextFromFileSystem(axis2Home,
axis2Xml);
configurationContext.getAxisConfiguration().addService(service);
Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationRequesterPortTypeRawXMLSkeleton.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationRequesterPortTypeRawXMLSkeleton.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationRequesterPortTypeRawXMLSkeleton.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationRequesterPortTypeRawXMLSkeleton.java Sat Mar 4 04:07:50 2006
@@ -17,7 +17,6 @@
package org.apache.kandula.wscoor;
import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.kandula.Constants;
import org.apache.kandula.context.AbstractContext;
@@ -46,9 +45,6 @@
Constants.REQUESTER_ID_PARAMETER).getText();
EndpointReference coordinatorService = EndpointReferenceFactory
.endpointFromOM(response.getFirstElement());
- // TODO: remove this
- ConfigurationContext configurationContext = StorageFactory
- .getInstance().getConfigurationContext();
AbstractContext context;
context = (AbstractContext) StorageFactory.getInstance()
Modified: webservices/kandula/trunk/java/test/org/apache/kandula/integration/CreateCoordinationContextTest.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/test/org/apache/kandula/integration/CreateCoordinationContextTest.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/test/org/apache/kandula/integration/CreateCoordinationContextTest.java (original)
+++ webservices/kandula/trunk/java/test/org/apache/kandula/integration/CreateCoordinationContextTest.java Sat Mar 4 04:07:50 2006
@@ -38,8 +38,6 @@
private SimpleHTTPServer server;
- private boolean finish = false;
-
public CreateCoordinationContextTest() {
super(CreateCoordinationContextTest.class.getName());
}
@@ -49,14 +47,13 @@
}
protected void setUp() throws Exception {
- ConfigurationContextFactory erfac = new ConfigurationContextFactory();
- File file = new File(repository);
+ File file = new File(repository);
File configFile = new File(repository + "/axis2.xml");
if (!file.exists()) {
throw new Exception("repository directory "
+ file.getAbsolutePath() + " does not exists");
}
- ConfigurationContext er = erfac
+ ConfigurationContext er = ConfigurationContextFactory
.createConfigurationContextFromFileSystem(file
.getAbsolutePath(), configFile.getAbsolutePath());
@@ -92,7 +89,7 @@
KandulaDemoServiceStub stub = new KandulaDemoServiceStub(
"target/initiator-repository",
new EndpointReference(
- "http://localhost:8081/axis2/services/KandulaDemoService"));
+ "http://127.0.0.1:8085/Transactions_Service_Indigo/TransactionalService.svc"));
stub.creditOperation();
// try{
tm.commit();
Modified: webservices/kandula/trunk/java/test/org/apache/kandula/integration/DummyResource.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/test/org/apache/kandula/integration/DummyResource.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/test/org/apache/kandula/integration/DummyResource.java (original)
+++ webservices/kandula/trunk/java/test/org/apache/kandula/integration/DummyResource.java Sat Mar 4 04:07:50 2006
@@ -33,9 +33,9 @@
// TODO Auto-generated constructor stub
}
- public void commit() {
+ public boolean commit() {
System.out.println("Commited");
-
+ return true;
}
public void rollback() {
Modified: webservices/kandula/trunk/java/test/org/apache/kandula/integration/KandulaDemoServiceStub.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/test/org/apache/kandula/integration/KandulaDemoServiceStub.java?rev=383098&r1=383097&r2=383098&view=diff
==============================================================================
--- webservices/kandula/trunk/java/test/org/apache/kandula/integration/KandulaDemoServiceStub.java (original)
+++ webservices/kandula/trunk/java/test/org/apache/kandula/integration/KandulaDemoServiceStub.java Sat Mar 4 04:07:50 2006
@@ -23,6 +23,7 @@
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.context.ServiceGroupContext;
@@ -74,14 +75,14 @@
EndpointReference targetEndpoint) throws java.lang.Exception {
this.toEPR = targetEndpoint;
// creating the configuration
- configurationContext = new org.apache.axis2.context.ConfigurationContextFactory()
+ configurationContext = ConfigurationContextFactory
.createConfigurationContextFromFileSystem(axis2Home, axis2Home
+ "/axis2.xml");
// configurationContext.getAxisConfiguration().engageModule(new
// QName("addressing"));
configurationContext.getAxisConfiguration().addService(_service);
ServiceGroupContext sgc = new ServiceGroupContext(
- this.configurationContext, (AxisServiceGroup) this._service
+ this.configurationContext, (AxisServiceGroup)_service
.getParent());
this.serviceContext = new ServiceContext(_service, sgc);
@@ -89,7 +90,6 @@
public void creditOperation() throws IOException {
- EndpointReference replyToEpr;
Options options = new Options();
MessageContext messageContext = new MessageContext();
messageContext.setProperty(AddressingConstants.WS_ADDRESSING_VERSION,
@@ -99,8 +99,9 @@
// _service.engageModule("addressing");
- options.setAction("creditOperation");
+ options.setAction("http://tempuri.org/ITransactionalService/Commit");
options.setTo(this.toEPR);
+
// messageSender
// .setSenderTransport(org.apache.axis2.Constants.TRANSPORT_HTTP);
OperationClient client = operations[0].createClient(serviceContext,
---------------------------------------------------------------------
To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: kandula-dev-help@ws.apache.org