com.arjuna.wst.messaging.engines
Class CoordinatorEngine

java.lang.Object
  extended bycom.arjuna.wst.messaging.engines.CoordinatorEngine
All Implemented Interfaces:
com.arjuna.webservices.wsat.CoordinatorInboundEvents

public class CoordinatorEngine
extends java.lang.Object
implements com.arjuna.webservices.wsat.CoordinatorInboundEvents

The coordinator state engine

Author:
kevin

Constructor Summary
CoordinatorEngine(java.lang.String id, boolean durable, com.arjuna.webservices.wsaddr.EndpointReferenceType participant)
          Construct the initial engine for the coordinator.
CoordinatorEngine(java.lang.String id, boolean durable, com.arjuna.webservices.wsaddr.EndpointReferenceType participant, com.arjuna.webservices.wsat.State state)
          Construct the engine for the coordinator in a specified state.
 
Method Summary
 void aborted(com.arjuna.webservices.wsat.NotificationType aborted, com.arjuna.webservices.wsaddr.AddressingContext addressingContext, com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
          Handle the aborted event.
 com.arjuna.webservices.wsat.State commit()
          Handle the commit event.
 void committed(com.arjuna.webservices.wsat.NotificationType committed, com.arjuna.webservices.wsaddr.AddressingContext addressingContext, com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
          Handle the committed event.
 java.lang.String getId()
          Get the coordinator id.
 com.arjuna.webservices.wsaddr.EndpointReferenceType getParticipant()
          Get the participant endpoint reference
 boolean isDurable()
          Is the participant durable?
 boolean isReadOnly()
          Was this a read only response?
 com.arjuna.webservices.wsat.State prepare()
          Handle the prepare event.
 void prepared(com.arjuna.webservices.wsat.NotificationType prepared, com.arjuna.webservices.wsaddr.AddressingContext addressingContext, com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
          Handle the prepared event.
 void readOnly(com.arjuna.webservices.wsat.NotificationType readOnly, com.arjuna.webservices.wsaddr.AddressingContext addressingContext, com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
          Handle the readOnly event.
 void replay(com.arjuna.webservices.wsat.NotificationType aborted, com.arjuna.webservices.wsaddr.AddressingContext addressingContext, com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
          Handle the replay event.
 com.arjuna.webservices.wsat.State rollback()
          Handle the rollback event.
 void soapFault(com.arjuna.webservices.SoapFault soapFault, com.arjuna.webservices.wsaddr.AddressingContext addressingContext, com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
          Handle the soap fault event.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CoordinatorEngine

public CoordinatorEngine(java.lang.String id,
                         boolean durable,
                         com.arjuna.webservices.wsaddr.EndpointReferenceType participant)
Construct the initial engine for the coordinator.

Parameters:
id - The coordinator id.
durable - true if the participant is durable, false if volatile.
participant - The participant endpoint reference.

CoordinatorEngine

public CoordinatorEngine(java.lang.String id,
                         boolean durable,
                         com.arjuna.webservices.wsaddr.EndpointReferenceType participant,
                         com.arjuna.webservices.wsat.State state)
Construct the engine for the coordinator in a specified state.

Parameters:
id - The coordinator id.
durable - true if the participant is durable, false if volatile.
participant - The participant endpoint reference.
state - The initial state.
Method Detail

aborted

public void aborted(com.arjuna.webservices.wsat.NotificationType aborted,
                    com.arjuna.webservices.wsaddr.AddressingContext addressingContext,
                    com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
Handle the aborted event.

Specified by:
aborted in interface com.arjuna.webservices.wsat.CoordinatorInboundEvents
Parameters:
aborted - The aborted notification.
addressingContext - The addressing context.
arjunaContext - The arjuna context. None -> None (ignore) Active -> Aborting (forget) Preparing -> Aborting (forget) PreparedSuccess -> PreparedSuccess (invalid state) Committing -> Committing (invalid state) Aborting -> Aborting (forget)

committed

public void committed(com.arjuna.webservices.wsat.NotificationType committed,
                      com.arjuna.webservices.wsaddr.AddressingContext addressingContext,
                      com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
Handle the committed event.

Specified by:
committed in interface com.arjuna.webservices.wsat.CoordinatorInboundEvents
Parameters:
committed - The committed notification.
addressingContext - The addressing context.
arjunaContext - The arjuna context. None -> None (ignore) Active -> Aborting (invalid state) Preparing -> Aborting (invalid state) PreparedSuccess -> PreparedSuccess (invalid state) Committing -> Committing (forget) Aborting -> Aborting (invalid state)

prepared

public void prepared(com.arjuna.webservices.wsat.NotificationType prepared,
                     com.arjuna.webservices.wsaddr.AddressingContext addressingContext,
                     com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
Handle the prepared event.

Specified by:
prepared in interface com.arjuna.webservices.wsat.CoordinatorInboundEvents
Parameters:
prepared - The prepared notification.
addressingContext - The addressing context.
arjunaContext - The arjuna context. None -> Durable: (send rollback), Volatile: Invalid state: none Active -> Aborting (invalid state) Preparing -> PreparedSuccess (Record Vote) PreparedSuccess -> PreparedSuccess (ignore) Committing -> Committing (resend Commit) Aborting -> Aborting (resend Rollback and forget)

readOnly

public void readOnly(com.arjuna.webservices.wsat.NotificationType readOnly,
                     com.arjuna.webservices.wsaddr.AddressingContext addressingContext,
                     com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
Handle the readOnly event.

Specified by:
readOnly in interface com.arjuna.webservices.wsat.CoordinatorInboundEvents
Parameters:
readOnly - The readOnly notification.
addressingContext - The addressing context.
arjunaContext - The arjuna context. None -> None (ignore) Active -> Active (forget) Preparing -> Preparing (forget) PreparedSuccess -> PreparedSuccess (invalid state) Committing -> Committing (invalid state) Aborting -> Aborting (forget)

replay

public void replay(com.arjuna.webservices.wsat.NotificationType aborted,
                   com.arjuna.webservices.wsaddr.AddressingContext addressingContext,
                   com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
Handle the replay event.

Specified by:
replay in interface com.arjuna.webservices.wsat.CoordinatorInboundEvents
Parameters:
addressingContext - The addressing context.
arjunaContext - The arjuna context. None -> Durable: (send rollback), Volatile: Invalid state: none Active -> Aborting (send rollback) Preparing -> Aborting (send rollback) PreparedSuccess -> PreparedSuccess (ignore) Committing -> Committing (send commit) Aborting -> Aborting (send rollback)

soapFault

public void soapFault(com.arjuna.webservices.SoapFault soapFault,
                      com.arjuna.webservices.wsaddr.AddressingContext addressingContext,
                      com.arjuna.webservices.wsarj.ArjunaContext arjunaContext)
Handle the soap fault event.

Specified by:
soapFault in interface com.arjuna.webservices.wsat.CoordinatorInboundEvents
Parameters:
soapFault - The soap fault.
addressingContext - The addressing context.
arjunaContext - The arjuna context.

prepare

public com.arjuna.webservices.wsat.State prepare()
Handle the prepare event. None -> None (invalid state) Active -> Preparing (send prepare) Preparing -> Preparing (resend prepare) PreparedSuccess -> PreparedSuccess (do nothing) Committing -> Committing (invalid state) Aborting -> Aborting (invalid state)


commit

public com.arjuna.webservices.wsat.State commit()
Handle the commit event. None -> None (invalid state) Active -> Active (invalid state) Preparing -> Preparing (invalid state) PreparedSuccess -> Committing (send commit) Committing -> Committing (resend commit) Aborting -> Aborting (invalid state)


rollback

public com.arjuna.webservices.wsat.State rollback()
Handle the rollback event. None -> None (invalid state) Active -> Aborting (send rollback) Preparing -> Aborting (send rollback) PreparedSuccess -> Aborting (send rollback) Committing -> Committing (invalid state) Aborting -> Aborting (do nothing)


getId

public java.lang.String getId()
Get the coordinator id.

Returns:
The coordinator id.

getParticipant

public com.arjuna.webservices.wsaddr.EndpointReferenceType getParticipant()
Get the participant endpoint reference

Returns:
The participant endpoint reference

isDurable

public boolean isDurable()
Is the participant durable?

Returns:
true if durable, false otherwise.

isReadOnly

public boolean isReadOnly()
Was this a read only response?

Returns:
true if a read only response, false otherwise.